lrj
1 天以前 93eb6b470773bc49ea6e1a9d4cbd914eb95d525b
backend/src/main/resources/graphql/player.graphqls
@@ -1,5 +1,5 @@
extend type Query {
  activityPlayerApplications(name: String, activityId: ID, page: Int, size: Int): [ActivityPlayerApplicationResponse!]!
  activityPlayerApplications(name: String, activityId: ID, state: Int, page: Int, size: Int): [ActivityPlayerApplicationResponse!]!
  activityPlayerDetail(id: ID!): ActivityPlayerDetailResponse
  
  # 报名状态查询
@@ -10,17 +10,32 @@
  currentJudgeRating(activityPlayerId: ID!): CurrentJudgeRatingResponse
  averageScoreForPlayer(activityPlayerId: ID!): Float
  currentJudgeInfo: CurrentJudgeInfoResponse
  # 比赛晋级相关查询
  promotionCompetitions(name: String, page: Int, size: Int): [PromotionCompetitionResponse!]!
  competitionParticipants(competitionId: ID!, page: Int, size: Int): [CompetitionParticipantResponse!]!
  promotableParticipants(currentStageId: ID!): PromotableParticipantsResponse!
}
extend type Mutation {
  saveActivityPlayerRating(input: ActivityPlayerRatingInput!): Boolean!
  submitActivityRegistration(input: ActivityRegistrationInput!): ActivityRegistrationResponse!
  updateActivityRegistration(activityPlayerId: ID!, input: ActivityRegistrationInput!): ActivityRegistrationResponse!
  # 审核相关mutations
  approveActivityPlayer(activityPlayerId: ID!, feedback: String): Boolean!
  rejectActivityPlayer(activityPlayerId: ID!, feedback: String!): Boolean!
  updatePlayerFeedback(activityPlayerId: ID!, feedback: String!): Boolean!
  # 比赛晋级相关mutations
  promoteParticipants(input: PromotionInput!): PromotionResult!
}
type ActivityPlayerApplicationResponse {
  id: ID
  playerName: String!
  activityName: String!
  projectName: String
  phone: String
  applyTime: String!
  state: Int
@@ -32,18 +47,26 @@
  playerInfo: PlayerInfoResponse!
  regionInfo: RegionInfoResponse
  activityName: String!
  projectName: String
  description: String
  feedback: String
  state: Int
  submissionFiles: [SubmissionMediaResponse!]!
  ratingForm: RatingFormResponse
}
# 学员信息响应
type PlayerInfoResponse {
  id: ID!
  name: String!
  phone: String
  description: String
  avatarUrl: String
    id: ID
    name: String
    phone: String
    description: String
    avatarUrl: String
    avatar: MediaResponse
    gender: Int
    birthday: String
    education: String
    introduction: String
}
# 区域信息响应
@@ -61,6 +84,7 @@
  fileExt: String
  fileSize: Int
  mediaType: Int
  thumbUrl: String
}
# 评分表单响应
@@ -177,4 +201,68 @@
  registrationTime: String
  reviewStatus: Int
  reviewComment: String
}
# 比赛晋级相关类型定义
# 比赛晋级列表响应类型
type PromotionCompetitionResponse {
  id: ID!
  competitionName: String!
  stageName: String!
  maxParticipants: Int
  currentCount: Int!
  status: Int!
  startTime: String
  endTime: String
  sortOrder: Int
  state: Int
}
# 比赛参赛者响应类型
type CompetitionParticipantResponse {
  id: ID!
  playerName: String!
  projectName: String
  phone: String
  averageScore: Float
  ratingCount: Int!
  applyTime: String!
  state: Int!
}
# 晋级操作输入类型
input PromotionInput {
  competitionId: ID!
  participantIds: [ID!]!
  targetStageId: ID
}
# 晋级操作结果类型
type PromotionResult {
  success: Boolean!
  message: String!
  promotedCount: Int!
}
# 可晋级参赛者响应类型
type PromotableParticipantResponse {
  id: ID!
  playerId: ID!
  playerName: String!
  projectName: String
  phone: String
  averageScore: Float
  ratingCount: Int!
  applyTime: String!
  state: Int!
}
# 可晋级参赛者列表响应类型
type PromotableParticipantsResponse {
  participants: [PromotableParticipantResponse!]!
  selectableCount: Int!
  totalCount: Int!
  previousStageName: String!
  currentStageName: String!
}