Files
petmaster/api/src/clients/dto/client.dto.ts
T
Robert Perez 8d742518f8 feat: Full petmaster CRM with NestJS API and React frontend
- Client management (CRUD with JSONB custom fields)
- Pet profiles
- Service catalog with per-client pricing
- Booking calendar with recurring appointments
- Invoicing with Stripe integration
- Real-time messaging (WebSocket)
- Self-booking portal
- Staff assignment
- Docker multi-stage builds
- Prisma schema + seed
2026-07-11 00:17:49 +00:00

75 lines
1.0 KiB
TypeScript

import { IsEmail, IsOptional, IsString, IsBoolean } from 'class-validator';
export class CreateClientDto {
@IsString()
firstName: string;
@IsString()
lastName: string;
@IsEmail()
email: string;
@IsString()
@IsOptional()
phone?: string;
@IsString()
@IsOptional()
address?: string;
@IsString()
@IsOptional()
notes?: string;
@IsOptional()
customFields?: Record<string, any>;
}
export class UpdateClientDto {
@IsString()
@IsOptional()
firstName?: string;
@IsString()
@IsOptional()
lastName?: string;
@IsEmail()
@IsOptional()
email?: string;
@IsString()
@IsOptional()
phone?: string;
@IsString()
@IsOptional()
address?: string;
@IsString()
@IsOptional()
notes?: string;
@IsOptional()
customFields?: Record<string, any>;
}
export class ListClientsQueryDto {
@IsOptional()
@IsString()
search?: string;
@IsOptional()
@IsBoolean()
isActive?: boolean;
@IsOptional()
@IsString()
page?: string;
@IsOptional()
@IsString()
limit?: string;
}