export interface ApplicationData { dob: string; name: string; playtime: number; hobbies: string; military: boolean; communities: string; joinReason: string; milsimAttraction: string; referral: string; steamProfile: string; timezone: string; canAttendSaturday: boolean; interests: string; aknowledgeRules: boolean; } export interface ApplicationRow { id: number; member_id: number; app_version: number; app_data: ApplicationData; submitted_at: string; // ISO datetime from DB (e.g., "2025-08-25T18:04:29.000Z") updated_at: string | null; approved_at: string | null; denied_at: string | null; app_status: ApplicationStatus; // generated column decision_at: string | null; // generated column // present when you join members (e.g., SELECT a.*, m.name AS member_name) member_name: string; } export interface CommentRow { comment_id: number; post_content: string; poster_id: number; post_time: string; last_modified: string | null; poster_name: string; } export interface ApplicationFull { application: ApplicationRow; comments: CommentRow[]; } //for get all applications route export interface ApplicationListRow { id: number; member_id: number; member_name: string | null; // because LEFT JOIN means it might be null submitted_at: Date; app_status: string; // or enum if you have one } export enum ApplicationStatus { Pending = "Pending", Accepted = "Accepted", Denied = "Denied", }