Step 7 of x-check interactive workflow implementation: Frontend Integration: - GameplayPanel.vue: Add x_check_result_pending workflow state, show XCheckWizard when decision_phase is awaiting_x_check_result, handle interactive vs read-only mode based on active_team_id - store/game.ts: Add xCheckData and decideData state, add needsXCheckResult/needsDecide* getters, add set/clear actions for x-check and decide data - useWebSocket.ts: Handle decision_required events with x_check_result/decide_advance/decide_throw/decide_speed_check types, route to appropriate store actions, clear x-check/decide data on play_resolved - useGameActions.ts: Add submitXCheckResult(), submitDecideAdvance(), submitDecideThrow(), submitDecideResult() action wrappers - types: Export XCheckData, DecideAdvanceData, DecideThrowData, DecideSpeedCheckData, PendingXCheck, and new WebSocket request types Type fixes: - XCheckData: Allow readonly arrays for d6_individual and chart_row (store returns readonly refs) - GameplayPanel: Add userTeamId prop for determining interactive mode Tests: 460 passing, 28 failing (GameplayPanel.spec.ts needs Pinia setup - pre-existing issue) Next: Step 8 - End-to-end testing of basic x-check flow (no DECIDE)
133 lines
2.6 KiB
TypeScript
133 lines
2.6 KiB
TypeScript
/**
|
|
* Type Definitions Index
|
|
*
|
|
* Central export point for all TypeScript types.
|
|
* Import types from this file throughout the application.
|
|
*
|
|
* @example
|
|
* import type { GameState, SbaPlayer, TypedSocket } from '~/types'
|
|
*/
|
|
|
|
// Game types
|
|
export type {
|
|
GameStatus,
|
|
InningHalf,
|
|
GameMode,
|
|
GameVisibility,
|
|
LeagueId,
|
|
DecisionPhase,
|
|
LineupPlayerState,
|
|
GameState,
|
|
DefensiveDecision,
|
|
OffensiveDecision,
|
|
RollData,
|
|
PlayOutcome,
|
|
RunnerAdvancement,
|
|
PlayResult,
|
|
XCheckResult,
|
|
DecisionPrompt,
|
|
ManualOutcomeSubmission,
|
|
GameListItem,
|
|
CreateGameRequest,
|
|
CreateGameResponse,
|
|
// X-Check workflow types
|
|
XCheckData,
|
|
DecideAdvanceData,
|
|
DecideThrowData,
|
|
DecideSpeedCheckData,
|
|
PendingXCheck,
|
|
} from './game'
|
|
|
|
// Player types
|
|
export type {
|
|
SbaPlayer,
|
|
Lineup,
|
|
TeamLineup,
|
|
BenchPlayer,
|
|
LineupDataResponse,
|
|
SubstitutionType,
|
|
SubstitutionRequest,
|
|
SubstitutionResult,
|
|
SubstitutionErrorCode,
|
|
SubstitutionError,
|
|
} from './player'
|
|
|
|
// WebSocket types
|
|
export type {
|
|
SocketAuth,
|
|
ClientToServerEvents,
|
|
ServerToClientEvents,
|
|
TypedSocket,
|
|
// Request types
|
|
JoinGameRequest,
|
|
LeaveGameRequest,
|
|
DefensiveDecisionRequest,
|
|
OffensiveDecisionRequest,
|
|
RollDiceRequest,
|
|
SubmitManualOutcomeRequest,
|
|
PinchHitterRequest,
|
|
DefensiveReplacementRequest,
|
|
PitchingChangeRequest,
|
|
GetLineupRequest,
|
|
GetBoxScoreRequest,
|
|
RequestGameStateRequest,
|
|
// X-Check workflow request types
|
|
SubmitXCheckResultRequest,
|
|
SubmitDecideAdvanceRequest,
|
|
SubmitDecideThrowRequest,
|
|
SubmitDecideResultRequest,
|
|
// Event types
|
|
ConnectedEvent,
|
|
GameJoinedEvent,
|
|
UserConnectedEvent,
|
|
UserDisconnectedEvent,
|
|
DefensiveDecisionSubmittedEvent,
|
|
OffensiveDecisionSubmittedEvent,
|
|
DiceRolledEvent,
|
|
OutcomeAcceptedEvent,
|
|
InningChangeEvent,
|
|
GameEndedEvent,
|
|
SubstitutionConfirmedEvent,
|
|
BoxScoreDataEvent,
|
|
BattingStatLine,
|
|
PitchingStatLine,
|
|
GameStateSyncEvent,
|
|
ErrorEvent,
|
|
OutcomeRejectedEvent,
|
|
InvalidActionEvent,
|
|
ConnectionErrorEvent,
|
|
} from './websocket'
|
|
|
|
// API types
|
|
export type {
|
|
ApiError,
|
|
PaginatedResponse,
|
|
GameFilters,
|
|
DiscordAuthResponse,
|
|
DiscordUser,
|
|
JwtPayload,
|
|
Team,
|
|
UserTeamsResponse,
|
|
CreateGameRequestData,
|
|
CreateGameResponseData,
|
|
GetGameResponse,
|
|
GetActiveGamesResponse,
|
|
GetCompletedGamesResponse,
|
|
PlayHistoryItem,
|
|
GetPlayHistoryResponse,
|
|
DeleteGameResponse,
|
|
DiscordCallbackRequest,
|
|
DiscordCallbackResponse,
|
|
GetCurrentUserResponse,
|
|
RefreshTokenRequest,
|
|
RefreshTokenResponse,
|
|
} from './api'
|
|
|
|
// Schedule types
|
|
export type {
|
|
SbaCurrent,
|
|
SbaScheduledGame,
|
|
GetCurrentResponse,
|
|
GetScheduleGamesResponse,
|
|
} from './schedule'
|