chore : move all to root

This commit is contained in:
Thibault Pouch
2026-02-26 16:16:44 +01:00
parent 308a758e79
commit c2d94a349c
44 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,197 @@
// ── User & Auth ────────────────────────────────────────────────────────────────
export type UserRole = 'user' | 'dev' | 'com';
export interface User {
id: string;
username: string;
email: string;
role: UserRole;
isAdmin: boolean;
isBanned: boolean;
createdAt: string; // ISO 8601
avatarUrl?: string;
}
export interface AuthState {
user: User | null;
isAuthenticated: boolean;
}
// ── Forum ──────────────────────────────────────────────────────────────────────
export interface ForumCategory {
id: string;
name: string;
description: string;
icon: string;
threadCount: number;
lastActivity?: string;
}
export interface ForumThread {
id: string;
title: string;
authorId: string;
authorName: string;
categoryId: string;
categoryName: string;
content: string;
isPinned: boolean;
isLocked: boolean;
replyCount: number;
createdAt: string;
updatedAt: string;
lastReplyAuthor?: string;
}
export interface ForumReply {
id: string;
content: string;
authorId: string;
authorName: string;
threadId: string;
createdAt: string;
}
// ── Bug Reports ────────────────────────────────────────────────────────────────
export type BugSeverity = 'low' | 'medium' | 'high' | 'critical';
export type BugStatus = 'open' | 'in_progress' | 'resolved' | 'closed';
export interface BugReport {
id: string;
uniqueCode: string;
title: string;
description: string;
stepsToReproduce: string;
severity: BugSeverity;
gameVersion: string;
screenshotUrl?: string;
status: BugStatus;
submittedById: string;
submittedByName: string;
assignedToId?: string;
assignedToName?: string;
createdAt: string;
updatedAt: string;
notes?: BugReportNote[];
/** IDs of users who clicked "I have this too" */
meTooBugs: string[];
}
export interface BugComment {
id: string;
bugReportId: string;
authorId: string;
authorName: string;
content: string;
createdAt: string;
}
export interface BugReportNote {
id: string;
bugReportId: string;
authorId: string;
authorName: string;
content: string;
createdAt: string;
}
export interface BugReportFormData {
title: string;
description: string;
stepsToReproduce: string;
severity: BugSeverity;
gameVersion: string;
screenshotUrl?: string;
}
// ── Staff Feed ─────────────────────────────────────────────────────────────────
export interface StaffPost {
id: string;
authorId: string;
authorName: string;
authorRole: UserRole;
content: string;
createdAt: string;
}
// ── Events & Polls ─────────────────────────────────────────────────────────────
export type EventType = 'announcement' | 'update' | 'milestone' | 'poll';
export interface EventPost {
id: string;
type: EventType;
title: string;
content: string;
authorId: string;
authorName: string;
authorRole: UserRole;
createdAt: string;
updatedAt?: string;
isPublic: boolean; // whether visible to community
pollId?: string; // reference to poll if type is 'poll'
}
export interface PollOption {
id: string;
text: string;
votes: number;
votedUserIds: string[]; // track who voted for this option
}
export interface Poll {
id: string;
eventId: string;
question: string;
options: PollOption[];
isActive: boolean;
endsAt?: string; // ISO 8601
allowMultipleVotes: boolean;
createdAt: string;
}
// ── Team / Studio ──────────────────────────────────────────────────────────────
export interface TeamMember {
id: string;
name: string;
role: string;
bio?: string;
avatarInitials: string;
social?: {
twitter?: string;
github?: string;
};
}
// ── Forms ──────────────────────────────────────────────────────────────────────
export interface LoginFormData {
email: string;
password: string;
}
export interface RegisterFormData {
username: string;
email: string;
password: string;
confirmPassword: string;
}
export interface ChangePasswordFormData {
currentPassword: string;
newPassword: string;
confirmPassword: string;
}
// ── Filters ────────────────────────────────────────────────────────────────────
export interface BugFilters {
status: BugStatus | 'all';
severity: BugSeverity | 'all';
assignedTo: string | 'all';
}