Files
Michess/types/index.d.ts
Michess 7dac042d73 feat: Michess – Initiales Setup auf Basis von chessu
- Rebranding: chessu → Michess (Header, Footer, Metadata, Session-Cookie)
- Stockfish KI-Integration: 6 Schwierigkeitsgrade (Anfänger bis Meister)
- Admin-Panel: Nutzerverwaltung, Sperren/Entsperren, Git-Pull-Update
- Freundessystem: Anfragen, Freundesliste, Nutzersuche
- DB-Schema: role, banned, friend_request, friendship Tabellen
- Docker: NAS-optimiertes docker-compose.yml mit PostgreSQL Healthcheck
- Stockfish binary via apk im Alpine-Image installiert
- .env.example für einfaches Deployment
- scripts/update.sh für manuelles NAS-Update
- Brain.md + Plan.md als Projekt-Gedächtnis

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 10:02:52 +02:00

53 lines
1.1 KiB
TypeScript

export interface Game {
id?: number;
pgn?: string;
white?: User;
black?: User;
winner?: "white" | "black" | "draw";
endReason?: "draw" | "checkmate" | "stalemate" | "repetition" | "insufficient" | "abandoned";
host?: User;
code?: string;
unlisted?: boolean;
timeout?: number;
observers?: User[];
startedAt?: number;
endedAt?: number;
vsAi?: boolean;
aiLevel?: number;
}
export interface User {
id?: number | string; // string for guest IDs
name?: string | null;
email?: string;
wins?: number;
losses?: number;
draws?: number;
role?: "user" | "admin";
// mainly for players, not spectators
connected?: boolean;
disconnectedOn?: number;
}
export interface FriendRequest {
id?: number;
fromId?: number;
toId?: number;
fromName?: string;
toName?: string;
status?: "pending" | "accepted" | "rejected";
createdAt?: string;
}
export interface Friendship {
id?: number;
userId?: number;
friendId?: number;
friendName?: string;
wins?: number;
losses?: number;
draws?: number;
createdAt?: string;
}