CoompanionApp/shared/types.ts

71 lines
1.4 KiB
TypeScript
Raw Permalink Normal View History

2026-02-03 13:48:56 +01:00
export type SessionStatus = "lobby" | "active" | "ended";
export type PlayerRole = "banker" | "player";
export type Player = {
id: string;
name: string;
role: PlayerRole;
balance: number;
connected: boolean;
isDummy: boolean;
joinedAt: number;
lastActiveAt: number;
};
export type TransactionKind =
| "transfer"
| "banker_adjust"
| "banker_force_transfer";
export type Transaction = {
id: string;
kind: TransactionKind;
fromId: string | null;
toId: string | null;
amount: number;
note: string | null;
createdAt: number;
initiatedBy: PlayerRole;
};
export type ChatGroup = {
id: string;
name: string;
memberIds: string[];
createdAt: number;
createdBy: string;
};
export type ChatMessage = {
id: string;
fromId: string;
body: string;
createdAt: number;
groupId: string | null;
};
export type TakeoverRequest = {
id: string;
dummyId: string;
requesterId: string;
2026-02-03 16:35:01 +01:00
requesterName?: string | null;
requesterToken?: string | null;
2026-02-03 13:48:56 +01:00
createdAt: number;
status: "pending" | "approved" | "rejected";
};
export type SessionSnapshot = {
id: string;
code: string;
status: SessionStatus;
createdAt: number;
bankerId: string;
blackoutActive: boolean;
blackoutReason: string | null;
players: Player[];
transactions: Transaction[];
chats: ChatMessage[];
groups: ChatGroup[];
takeoverRequests: TakeoverRequest[];
};