import { TaskStatus, ProjectRole, RequirementStatus } from './enums';

export interface Product {
  id: string;
  name: string;
  description: string;
  createdAt: Date;
  updatedAt: Date;
}

export interface Project {
  id: string;
  productId: string;
  name: string;
  description: string;
  createdAt: Date;
  updatedAt: Date;
}

export interface Task {
  id: string;
  projectId: string;
  sprintId: string | null;
  versionId: string | null;
  parentId: string | null;
  title: string;
  description: string;
  status: TaskStatus;
  assigneeId: string | null;
  creatorId: string;
  priority: number;
  startDate: Date | null;
  dueDate: Date | null;
  createdAt: Date;
  updatedAt: Date;
}

export interface Requirement {
  id: string;
  productId: string;
  title: string;
  description: string;
  status: RequirementStatus;
  priority: number;
  creatorId: string;
  createdAt: Date;
  updatedAt: Date;
}

export interface Version {
  id: string;
  productId: string;
  name: string;
  description: string;
  releaseDate: Date | null;
  createdAt: Date;
  updatedAt: Date;
}

export interface Sprint {
  id: string;
  projectId: string;
  name: string;
  startDate: Date;
  endDate: Date;
  createdAt: Date;
  updatedAt: Date;
}
