import { RequirementStatus } from '@ftb/shared';
import { IsArray, IsIn, IsNotEmpty, IsOptional, IsString } from 'class-validator';

export class CreateRequirementDto {
  @IsString()
  @IsOptional()
  code?: string;

  @IsString()
  @IsNotEmpty()
  title!: string;

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

  @IsOptional()
  priority?: string | number;

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

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

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

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

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

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

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

  @IsArray()
  @IsOptional()
  platforms?: string[];

  @IsIn(Object.values(RequirementStatus))
  @IsOptional()
  status?: RequirementStatus;

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