import { Type } from "class-transformer";
import { IsDate, IsEnum, IsInt, IsOptional, IsString, MaxLength, MinLength, ValidateIf } from "class-validator";
import { CylinderStatus } from "./create-cylinder.dto";

export class UpdateCylinderDto {
    // Optional: an empty value clears the tag, so only length-check real tags.
    @ValidateIf((o) => o.rfid !== undefined && o.rfid !== null && o.rfid !== "")
    @IsString()
    @MinLength(10, { message: "Minimum length should be 10" })
    @MaxLength(30, { message: "Maximum length should be 30" })
    rfid?: string;

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

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

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

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

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

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

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

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

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

    @IsDate()
    @Type(() => Date)
    @IsOptional()
    hydrostaticTestDate?: Date;

    @IsDate()
    @Type(() => Date)
    @IsOptional()
    hydrostaticDueDate?: Date;

    @IsEnum(CylinderStatus)
    @IsOptional()
    status?: CylinderStatus;

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

    @IsDate()
    @Type(() => Date)
    @IsOptional()
    manufacturingDate?: Date;





}
