
# ----------------------------------------------------------
# LIST ALL (admin/debug)
# ----------------------------------------------------------
query listStaffRoles(
  $offset: Int
  $limit: Int
) @auth(level: USER) {
  staffRoles(offset: $offset, limit: $limit) {
    id
    staffId
    roleId
    createdAt
    roleType

    staff {
      id
      fullName
      userId
      email
      phone
    }

    role {
      id
      name
      costPerHour
    }
  }
}

# ----------------------------------------------------------
# GET BY COMPOSITE KEY (staffId + roleId)
# ----------------------------------------------------------
query getStaffRoleByKey(
  $staffId: UUID!
  $roleId: UUID!
) @auth(level: USER) {
  staffRole(key: { staffId: $staffId, roleId: $roleId }) {
    id
    staffId
    roleId
    createdAt
    roleType

    staff {
      id
      fullName
      userId
      email
      phone
    }

    role {
      id
      name
      costPerHour
    }
  }
}

# ----------------------------------------------------------
# LIST BY STAFF (most common)
# ----------------------------------------------------------
query listStaffRolesByStaffId(
  $staffId: UUID!
  $offset: Int
  $limit: Int
) @auth(level: USER) {
  staffRoles(
    where: { staffId: { eq: $staffId } }
    offset: $offset
    limit: $limit
  ) {
    id
    staffId
    roleId
    createdAt
    roleType

    role {
      id
      name
      costPerHour
    }
  }
}

# ----------------------------------------------------------
# LIST BY ROLE (who has this skill)
# ----------------------------------------------------------
query listStaffRolesByRoleId(
  $roleId: UUID!
  $offset: Int
  $limit: Int
) @auth(level: USER) {
  staffRoles(
    where: { roleId: { eq: $roleId } }
    offset: $offset
    limit: $limit
  ) {
    id
    staffId
    roleId
    createdAt
    roleType

    staff {
      id
      fullName
      userId
      email
      phone
    }
  }
}

# ----------------------------------------------------------
# FILTER (optional)
# Useful when you want both conditions without using key lookup
# ----------------------------------------------------------
query filterStaffRoles(
  $staffId: UUID
  $roleId: UUID
  $offset: Int
  $limit: Int
) @auth(level: USER) {
  staffRoles(
    where: {
      staffId: { eq: $staffId }
      roleId: { eq: $roleId }
    }
    offset: $offset
    limit: $limit
  ) {
    id
    staffId
    roleId
    createdAt
    roleType
  }
}