import { IsDateString, IsEnum, IsNumber, IsOptional, IsString, Min } from "class-validator";

export enum ContractStatusEnum {
  DRAFT = "DRAFT",
  PENDING_SIGNATURE = "PENDING_SIGNATURE",
  SIGNED = "SIGNED",
  EXPIRED = "EXPIRED",
  TERMINATED = "TERMINATED",
}

export class CreateContractDto {
  @IsString()
  customerId!: string;

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

  @IsString()
  title!: string;

  @IsDateString()
  startDate!: string;

  @IsDateString()
  endDate!: string;

  @IsNumber()
  @Min(0)
  value!: number;

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

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

  @IsOptional()
  @IsEnum(ContractStatusEnum)
  status?: ContractStatusEnum;
}
