import { IsOptional, IsString, IsInt, IsNumber, IsISO8601, Matches, Min } from 'class-validator';

export class CreateRentalDto {
  @IsInt()
  classroomId: number;

  @IsOptional()
  @IsInt()
  lessorOrganizationId?: number;

  @IsInt()
  lesseeOrganizationId: number;

  @Matches(/^\d{4}-\d{2}-\d{2}$/)
  @IsISO8601({ strict: true })
  startDate: string;

  @Matches(/^\d{4}-\d{2}-\d{2}$/)
  @IsISO8601({ strict: true })
  endDate: string;

  @IsOptional()
  @IsNumber()
  @Min(0.01)
  dailyRate?: number;

  @IsOptional()
  @IsNumber()
  @Min(0.01)
  totalAmount?: number;

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

export class UpdateRentalDto {
  @IsOptional()
  @IsInt()
  classroomId?: number;

  @IsOptional()
  @IsInt()
  lessorOrganizationId?: number;

  @IsOptional()
  @IsInt()
  lesseeOrganizationId?: number;

  @IsOptional()
  @Matches(/^\d{4}-\d{2}-\d{2}$/)
  @IsISO8601({ strict: true })
  startDate?: string;

  @IsOptional()
  @Matches(/^\d{4}-\d{2}-\d{2}$/)
  @IsISO8601({ strict: true })
  endDate?: string;

  @IsOptional()
  @IsNumber()
  @Min(0.01)
  dailyRate?: number;

  @IsOptional()
  @IsNumber()
  @Min(0.01)
  totalAmount?: number;

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