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

export enum ScheduleEventType {
  DELIVERY = "DELIVERY",
  RETURN = "RETURN",
  MAINTENANCE = "MAINTENANCE",
  INSPECTION = "INSPECTION",
}

export enum ScheduleEventStatus {
  SCHEDULED = "SCHEDULED",
  IN_TRANSIT = "IN_TRANSIT",
  COMPLETED = "COMPLETED",
  CANCELED = "CANCELED",
}

export class CreateScheduleEventDto {
  @IsString()
  @MinLength(3, { message: "O título deve ter pelo menos 3 caracteres." })
  title!: string;

  @IsEnum(ScheduleEventType)
  type!: ScheduleEventType;

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

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

  @IsDateString()
  startDate!: string;

  @IsDateString()
  endDate!: string;

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

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

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

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