// ==================== Common Types ==================== export type WorkItemStatus = 'Backlog' | 'Todo' | 'InProgress' | 'Done'; export type WorkItemPriority = 'Low' | 'Medium' | 'High' | 'Critical'; // ==================== Project ==================== export interface Project { id: string; name: string; key: string; description?: string; tenantId: string; createdAt: string; updatedAt: string; } export interface CreateProjectDto { name: string; key: string; description?: string; } export interface UpdateProjectDto { name: string; key: string; description?: string; } // ==================== Epic ==================== export interface Epic { id: string; name: string; // Changed from 'title' to match backend API description?: string; projectId: string; status: WorkItemStatus; priority: WorkItemPriority; estimatedHours?: number; actualHours?: number; assigneeId?: string; createdBy: string; // Added to match backend API (required field) tenantId: string; createdAt: string; updatedAt: string; } export interface CreateEpicDto { projectId: string; name: string; // Changed from 'title' to match backend API description?: string; priority: WorkItemPriority; estimatedHours?: number; createdBy: string; // Added to match backend API (required field) } export interface UpdateEpicDto { name?: string; // Changed from 'title' to match backend API description?: string; priority?: WorkItemPriority; estimatedHours?: number; actualHours?: number; } // ==================== Story ==================== export interface Story { id: string; title: string; description?: string; epicId: string; projectId: string; status: WorkItemStatus; priority: WorkItemPriority; estimatedHours?: number; actualHours?: number; assigneeId?: string; tenantId: string; createdAt: string; updatedAt: string; } export interface CreateStoryDto { epicId: string; projectId: string; title: string; description?: string; priority: WorkItemPriority; estimatedHours?: number; createdBy: string; // Required field matching backend API } export interface UpdateStoryDto { title?: string; description?: string; priority?: WorkItemPriority; estimatedHours?: number; actualHours?: number; } // ==================== Task ==================== export interface Task { id: string; title: string; description?: string; storyId: string; projectId: string; status: WorkItemStatus; priority: WorkItemPriority; estimatedHours?: number; actualHours?: number; assigneeId?: string; tenantId: string; createdAt: string; updatedAt: string; } export interface CreateTaskDto { storyId: string; title: string; description?: string; priority: WorkItemPriority; estimatedHours?: number; } export interface UpdateTaskDto { title?: string; description?: string; priority?: WorkItemPriority; estimatedHours?: number; actualHours?: number; } // ==================== Legacy Types (for backward compatibility) ==================== // Keep old type names as aliases for gradual migration export type TaskStatus = WorkItemStatus; export type TaskPriority = WorkItemPriority;