lrj
3 天以前 c61d4fe27c97d2ecc907756aa571a4ef14a7b9b6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# 比赛管理 GraphQL Schema
 
# 比赛响应类型
type Activity {
    id: ID!
    pid: ID!
    path: String!
    name: String!
    description: String
    signupDeadline: String!
    matchTime: String
    address: String
    ratingSchemeId: ID!
    playerMax: Int
    state: Int!
    createTime: String!
    updateTime: String!
    
    # 关联数据
    ratingScheme: RatingScheme
    stages: [Activity!]
    parent: Activity
    
    # 统计数据
    playerCount: Int!
    stateName: String!
}
 
# 比赛分页响应
type ActivityPageResponse {
    content: [Activity!]!
    totalElements: Int!
    page: Int!
    size: Int!
}
 
# 比赛输入类型
input ActivityInput {
    id: ID
    pid: ID
    name: String!
    description: String
    signupDeadline: String!
    matchTime: String
    address: String
    ratingSchemeId: ID!
    playerMax: Int
    state: Int
    stages: [ActivityStageInput!]
    judges: [ActivityJudgeInput!]
}
 
# 比赛阶段输入类型
input ActivityStageInput {
    id: ID
    name: String!
    description: String
    matchTime: String
    address: String
    ratingSchemeId: ID
    playerMax: Int
    state: Int
}
 
# 比赛评委输入类型
input ActivityJudgeInput {
    judgeId: ID!
    judgeName: String!
    stageIds: [ID!]
}
 
# 扩展查询
extend type Query {
    # 分页查询比赛列表
    activities(page: Int!, size: Int!, name: String): ActivityPageResponse!
    
    # 获取比赛详情
    activity(id: ID!): Activity
    
    # 获取所有比赛(用于下拉选择)
    allActivities: [Activity!]!
    
    # 获取比赛的所有阶段
    activityStages(competitionId: ID!): [Activity!]!
    
    # 获取进行中的比赛
    ongoingActivities: [Activity!]!
}
 
# 扩展变更
extend type Mutation {
    # 保存比赛(新增或编辑)
    saveActivity(input: ActivityInput!): Activity!
    
    # 删除比赛
    deleteActivity(id: ID!): Boolean!
}