refactor: strengthen type modeling with discriminated unions

This commit is contained in:
zetaloop
2026-02-20 20:48:43 +08:00
parent 1f316c2f61
commit 0d01e659a1
+15 -5
View File
@@ -15,7 +15,7 @@ export interface Game {
id: string
name: string
icon: string
category: string
category: "MOBA" | "FPS" | "动作" | "RPG"
}
export interface PlayerService {
@@ -26,7 +26,7 @@ export interface PlayerService {
title: string
description: string
price: number
unit: string
unit: "局" | "星" | "次"
rankRange?: string
availability: string[]
}
@@ -126,10 +126,8 @@ export interface Dispute {
createdAt: string
}
export interface ChatSession {
interface BaseChatSession {
id: string
type: "consultation" | "order"
orderId?: string
participants: { id: string; name: string; avatar: string }[]
lastMessage?: string
lastMessageAt?: string
@@ -137,6 +135,18 @@ export interface ChatSession {
readonly: boolean
}
export interface OrderChatSession extends BaseChatSession {
type: "order"
orderId: string
}
export interface ConsultationChatSession extends BaseChatSession {
type: "consultation"
orderId?: never
}
export type ChatSession = OrderChatSession | ConsultationChatSession
export interface ChatMessage {
id: string
sessionId: string