import { Expose } from 'class-transformer';
import { IsEnum, IsNotEmpty, IsOptional, IsString, MaxLength } from 'class-validator';
import {
    TimeTrackingCategorizedHourApprovalStepReviewableStates,
    TimeTrackingCategorizedHourApprovalStepState,
} from '../../../infrastructure/constants/timeTracking/categorizedHourApprovalStepStates';

export class ReviewCategorizedHourApprovalStepVC {
    @IsNotEmpty()
    @IsEnum(TimeTrackingCategorizedHourApprovalStepReviewableStates)
    @Expose()
    state!: TimeTrackingCategorizedHourApprovalStepState.APPROVED | TimeTrackingCategorizedHourApprovalStepState.REJECTED;

    @IsOptional()
    @IsString()
    @MaxLength(1000)
    @Expose()
    comment?: string;
}
