/** * Goal Pilot API Types * Generated from API documentation * * Usage in your iOS/Swift project: * 1. Use a tool like quicktype.io to convert these TypeScript types to Swift * 2. Or use them as reference for creating your Swift models */ interface User { id: string; email: string; name: string; role: 'user' | 'admin'; status: 'pending' | 'approved' | 'rejected'; reason?: string; created_at: string; // ISO 8601 date updated_at: string; // ISO 8601 date } interface Task { id: string; userId: string; description: string; status: 'todo' | 'completed'; parent_id: string | null; priority: number; estimated_time_minutes: number | null; created_at: string; // ISO 8601 date updated_at: string; // ISO 8601 date completed_at: string | null; // ISO 8601 date } interface RegisterRequest { email: string; name: string; password: string; reason: string; } interface LoginRequest { email: string; password: string; } interface CreateTaskRequest { description: string; status?: 'todo' | 'completed'; // Default: 'todo' parent_id?: string; } interface UpdateTaskRequest { description?: string; status?: 'todo' | 'completed'; } interface UpdateProfileRequest { name?: string; email?: string; } interface UpdatePasswordRequest { currentPassword: string; newPassword: string; } interface BreakdownTaskRequest { prompt?: string; // Optional custom prompt for AI } interface AuthResponse { user: { id: string; email: string; name: string; role: 'user' | 'admin'; }; } interface RegisterResponse { message: string; user: { id: string; email: string; name: string; status: 'pending'; }; } interface TaskBreakdownResponse { message: string; subtasks: Array<{ id: string; description: string; estimated_time_minutes: number | null; }>; } interface ErrorResponse { error: string; details?: any; } interface HealthResponse { status: 'healthy' | 'unhealthy'; timestamp: string; database: 'connected' | 'disconnected'; } // Export all types export type { User, Task, RegisterRequest, LoginRequest, CreateTaskRequest, UpdateTaskRequest, UpdateProfileRequest, UpdatePasswordRequest, BreakdownTaskRequest, AuthResponse, RegisterResponse, TaskBreakdownResponse, ErrorResponse, HealthResponse };