This commit is contained in:
2026-10-04 13:23:26 +07:00
parent 88307ed402
commit c663fbb504
20 changed files with 2125 additions and 502 deletions
+7
View File
@@ -18,6 +18,7 @@ import (
"evening_detective_server/internal/repos/applications_repo"
"evening_detective_server/internal/repos/game_map_repo"
"evening_detective_server/internal/repos/game_reviews_repo"
"evening_detective_server/internal/repos/game_screen_plans_repo"
"evening_detective_server/internal/repos/games_repo"
"evening_detective_server/internal/repos/health_repo"
"evening_detective_server/internal/repos/refresh_tokens_repo"
@@ -36,6 +37,7 @@ import (
"evening_detective_server/internal/services/mcp_service"
"evening_detective_server/internal/services/participation_service"
"evening_detective_server/internal/services/scenarios_service"
"evening_detective_server/internal/services/screen_plan_service"
"evening_detective_server/internal/services/screen_service"
"evening_detective_server/internal/services/team_service"
"evening_detective_server/internal/services/ticket_service"
@@ -134,6 +136,10 @@ func main() {
answersRepo := team_answers_repo.NewTeamAnswersRepo(dbpool)
screenRepo := screen_sessions_repo.NewScreenSessionsRepo(dbpool)
screenService := screen_service.NewScreenService(screenRepo)
screenPlanService := screen_plan_service.NewScreenPlanService(
game_screen_plans_repo.NewGameScreenPlansRepo(dbpool),
screenService,
)
mapService := map_service.NewMapService(game_map_repo.NewGameMapRepo(dbpool))
reviewsRepo := game_reviews_repo.NewGameReviewsRepo(dbpool)
gameService := game_service.NewGameService(
@@ -213,6 +219,7 @@ func main() {
ticketService,
participationService,
screenService,
screenPlanService,
mapService,
),
)
+198 -1
View File
@@ -1012,6 +1012,116 @@
]
}
},
"/api/games/{gameID}/screen-plan": {
"get": {
"summary": "Получить план экранов",
"operationId": "EveningDetectiveServer_GetScreenPlan",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/evening_detective_serverGetScreenPlanRsp"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "gameID",
"in": "path",
"required": true,
"type": "integer",
"format": "int32"
}
],
"tags": [
"Экраны"
]
},
"put": {
"summary": "Сохранить план экранов",
"operationId": "EveningDetectiveServer_SaveScreenPlan",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/evening_detective_serverSaveScreenPlanRsp"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "gameID",
"in": "path",
"required": true,
"type": "integer",
"format": "int32"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/EveningDetectiveServerSaveScreenPlanBody"
}
}
],
"tags": [
"Экраны"
]
}
},
"/api/games/{gameID}/screen-plan/step": {
"post": {
"summary": "Перейти на шаг плана экранов",
"operationId": "EveningDetectiveServer_SetScreenPlanStep",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/evening_detective_serverSetScreenPlanStepRsp"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "gameID",
"in": "path",
"required": true,
"type": "integer",
"format": "int32"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/EveningDetectiveServerSetScreenPlanStepBody"
}
}
],
"tags": [
"Экраны"
]
}
},
"/api/games/{gameID}/screens": {
"get": {
"summary": "Получить экраны игры",
@@ -3176,6 +3286,22 @@
"EveningDetectiveServerResetGameBody": {
"type": "object"
},
"EveningDetectiveServerSaveScreenPlanBody": {
"type": "object",
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/evening_detective_serverScreenPlanStep"
}
},
"currentStep": {
"type": "integer",
"format": "int32"
}
}
},
"EveningDetectiveServerSendScreenCommandBody": {
"type": "object",
"properties": {
@@ -3200,6 +3326,15 @@
}
}
},
"EveningDetectiveServerSetScreenPlanStepBody": {
"type": "object",
"properties": {
"currentStep": {
"type": "integer",
"format": "int32"
}
}
},
"EveningDetectiveServerSetScreenSoundBody": {
"type": "object",
"properties": {
@@ -3903,6 +4038,14 @@
}
}
},
"evening_detective_serverGetScreenPlanRsp": {
"type": "object",
"properties": {
"plan": {
"$ref": "#/definitions/evening_detective_serverScreenPlan"
}
}
},
"evening_detective_serverGetScreenResultsReq": {
"type": "object",
"properties": {
@@ -4261,6 +4404,14 @@
},
"description": "Вопрос в шапке итоговой таблицы: правильный ответ (поле answer сообщения\nQuestion) командам/таблице не передаётся — он виден только в панели оценки."
},
"evening_detective_serverSaveScreenPlanRsp": {
"type": "object",
"properties": {
"plan": {
"$ref": "#/definitions/evening_detective_serverScreenPlan"
}
}
},
"evening_detective_serverScenario": {
"type": "object",
"properties": {
@@ -4339,10 +4490,45 @@
"SCREEN_MODE_CONCLUSION",
"SCREEN_MODE_CONCLUSION_DONE",
"SCREEN_MODE_RESULTS",
"SCREEN_MODE_TIMER"
"SCREEN_MODE_TIMER",
"SCREEN_MODE_TEXT"
],
"default": "SCREEN_MODE_UNSPECIFIED"
},
"evening_detective_serverScreenPlan": {
"type": "object",
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/evening_detective_serverScreenPlanStep"
}
},
"currentStep": {
"type": "integer",
"format": "int32"
}
}
},
"evening_detective_serverScreenPlanStep": {
"type": "object",
"properties": {
"mode": {
"$ref": "#/definitions/evening_detective_serverScreenMode"
},
"text": {
"type": "string"
},
"timerLabel": {
"type": "string"
},
"timerDurationSeconds": {
"type": "string",
"format": "int64"
}
}
},
"evening_detective_serverScreenState": {
"type": "object",
"properties": {
@@ -4408,6 +4594,9 @@
},
"timerState": {
"$ref": "#/definitions/evening_detective_serverScreenTimerState"
},
"text": {
"type": "string"
}
}
},
@@ -4428,6 +4617,14 @@
"evening_detective_serverSetScreenModeRsp": {
"type": "object"
},
"evening_detective_serverSetScreenPlanStepRsp": {
"type": "object",
"properties": {
"plan": {
"$ref": "#/definitions/evening_detective_serverScreenPlan"
}
}
},
"evening_detective_serverSetScreenSoundRsp": {
"type": "object"
},