import { IsArray, IsBoolean, IsOptional, IsString } from 'class-validator';

export class CreateDevTaskDto {
  @IsString()
  @IsOptional()
  requirementId?: string;

  @IsString()
  @IsOptional()
  requirementProductId?: string;

  @IsString()
  @IsOptional()
  categoryId?: string;

  @IsString()
  @IsOptional()
  code?: string;

  @IsString()
  @IsOptional()
  taskNo?: string;

  @IsString()
  title!: string;

  @IsString()
  @IsOptional()
  description?: string;

  @IsString()
  @IsOptional()
  status?: string;

  @IsOptional()
  priority?: string | number;

  @IsString()
  @IsOptional()
  assigneeId?: string;

  @IsString()
  @IsOptional()
  creatorId?: string;

  @IsString()
  @IsOptional()
  createdBy?: string;

  @IsBoolean()
  @IsOptional()
  isBlocked?: boolean;

  @IsString()
  @IsOptional()
  blockReason?: string;

  @IsString()
  @IsOptional()
  expectedStartAt?: string;

  @IsString()
  @IsOptional()
  expectedEndAt?: string;

  @IsString()
  @IsOptional()
  actualStartAt?: string;

  @IsString()
  @IsOptional()
  actualEndAt?: string;

  @IsString()
  @IsOptional()
  startDate?: string;

  @IsString()
  @IsOptional()
  completedAt?: string;

  @IsOptional()
  estimateHours?: number;

  @IsOptional()
  aiEstimateHours?: number;

  @IsArray()
  @IsOptional()
  references?: unknown[];

  @IsBoolean()
  @IsOptional()
  aiDraft?: boolean;

  @IsString()
  @IsOptional()
  aiDraftAt?: string;
}
