import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { IsBoolean, IsNumber, IsOptional, IsString, Min } from 'class-validator';

export class AdviseContractDutyDto {
  @ApiProperty({ description: 'Whether the customer must pay duty/tax' })
  @IsBoolean()
  dutyRequired!: boolean;

  @ApiPropertyOptional({ description: 'Duty amount (required when dutyRequired is true)' })
  @IsOptional()
  @IsNumber()
  @Min(0)
  amount?: number;

  @ApiPropertyOptional({ default: 'ETB' })
  @IsOptional()
  @IsString()
  currency?: string;

  @ApiPropertyOptional({ description: 'Declaration / payment reference code' })
  @IsOptional()
  @IsString()
  declarationSerial?: string;
}

export class ReleaseOrderDto {
  @ApiProperty({ description: 'Vessel departure date (ISO date YYYY-MM-DD)' })
  @IsString()
  vesselDepartureDate!: string;
}

export class RoAmendmentDto {
  @ApiPropertyOptional({ description: 'Note to customer / ET GL about the amendment request' })
  @IsOptional()
  @IsString()
  note?: string;
}

