import {
  IsString,
  IsOptional,
  IsInt,
  IsNumber,
  IsIn,
  IsDateString,
  MaxLength,
} from 'class-validator';
import { Type } from 'class-transformer';

export class CreateProjectDto {
  @IsString()
  @MaxLength(300)
  name: string;

  @IsOptional()
  @IsString()
  @MaxLength(300)
  nameEn?: string;

  @IsOptional()
  @Type(() => Number)
  @IsInt()
  clientId?: number;

  @IsOptional()
  @IsString()
  @IsIn([
    'estimate-in-progress',
    'contract-completed',
    'tax-invoice-issued',
    'payment-pending',
    'payment-completed',
    'on-hold',
    'cancelled',
  ])
  status?: string;

  @IsOptional()
  @Type(() => Number)
  @IsNumber()
  value?: number;

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

  @IsOptional()
  @IsDateString()
  endDate?: string;

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