export type ProjectStatus = 'Active' | 'Archived' | 'OnHold'; export interface Project { id: string; name: string; description: string; key: string; status: ProjectStatus; ownerId: string; createdAt: string; updatedAt?: string; } export interface CreateProjectDto { name: string; description: string; key: string; ownerId?: string; // Optional in form, will be set automatically } export interface UpdateProjectDto { name?: string; description?: string; status?: ProjectStatus; } export interface Epic { id: string; name: string; description: string; projectId: string; status: TaskStatus; priority: TaskPriority; createdAt: string; createdBy: string; } export type TaskStatus = 'ToDo' | 'InProgress' | 'InReview' | 'Done' | 'Blocked'; export type TaskPriority = 'Low' | 'Medium' | 'High' | 'Urgent'; export interface Story { id: string; title: string; description: string; epicId: string; status: TaskStatus; priority: TaskPriority; estimatedHours?: number; actualHours?: number; assigneeId?: string; createdBy: string; createdAt: string; updatedAt?: string; } export interface Task { id: string; title: string; description: string; storyId: string; status: TaskStatus; priority: TaskPriority; estimatedHours?: number; actualHours?: number; assigneeId?: string; customFields?: Record; createdBy: string; createdAt: string; updatedAt?: string; } export interface CreateTaskDto { title: string; description: string; storyId: string; priority: TaskPriority; estimatedHours?: number; assigneeId?: string; } export interface UpdateTaskDto { title?: string; description?: string; status?: TaskStatus; priority?: TaskPriority; estimatedHours?: number; actualHours?: number; assigneeId?: string; customFields?: Record; }