import { IsNotEmpty, IsIn, IsOptional, IsUUID } from 'class-validator';
import { validationMessages } from '../../../messages/validation-messages';
import { ApiProperty } from '@nestjs/swagger';
import { WhatsAppMessageDirection, WhatsAppRegistrationStatus } from 'src/entities/whatsapp-messages.entity';

export class WhatsAppMessageListQueryDto {
    @IsNotEmpty({ message: validationMessages.common.page_required })
    page: number;

    @ApiProperty({ required: false })
    search: string;

    per_page: number;

    sort_by: string;

    sort: string;

    @ApiProperty({ required: false, enum: WhatsAppMessageDirection })
    @IsOptional()
    @IsIn(Object.values(WhatsAppMessageDirection))
    direction: WhatsAppMessageDirection;

    @ApiProperty({ required: false })
    message_type: string;

    @ApiProperty({ required: false, enum: WhatsAppRegistrationStatus })
    @IsOptional()
    @IsIn(Object.values(WhatsAppRegistrationStatus))
    registration_status: WhatsAppRegistrationStatus;

    @ApiProperty({ required: false })
    @IsOptional()
    @IsUUID()
    user_id: string;

    @ApiProperty({ required: false })
    phone_number: string;

    @ApiProperty({ required: false })
    is_auto_reply: string;
}
