import { IsString, IsNotEmpty, IsOptional, IsDateString, IsEnum } from 'class-validator';

export class CreateFollowupDto {
    @IsString()
    @IsNotEmpty()
    clientId: string;

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

    @IsString()
    @IsNotEmpty()
    userId: string; // Typically extracted from auth context, but simplified here

    @IsDateString()
    @IsNotEmpty()
    date: string;

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

    // Alias description for frontend compatibility if needed, but schema uses notes.
    // Frontend sends 'description', let's map it or support both.
    @IsString()
    @IsOptional()
    description?: string;

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

    @IsString()
    @IsOptional()
    type?: 'FOLLOWUP' | 'DEMO' | 'QUOTE' | 'NEGOTIATION';

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

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

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

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

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

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