miinventario-v2/apps/backend/src/modules/admin/dto/package.dto.ts
rckrdmrd 1a53b5c4d3 [MIINVENTARIO] feat: Initial commit - Sistema de inventario con análisis de video IA
- Backend NestJS con módulos de autenticación, inventario, créditos
- Frontend React con dashboard y componentes UI
- Base de datos PostgreSQL con migraciones
- Tests E2E configurados
- Configuración de Docker y deployment

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 02:25:48 -06:00

81 lines
1.1 KiB
TypeScript

import { IsString, IsNumber, IsBoolean, IsOptional, Min, Max, Length } from 'class-validator';
export class CreatePackageDto {
@IsString()
@Length(2, 100)
name: string;
@IsOptional()
@IsString()
@Length(0, 500)
description?: string;
@IsNumber()
@Min(1)
credits: number;
@IsNumber()
@Min(0)
priceMxn: number;
@IsOptional()
@IsNumber()
@Min(0)
priceUsd?: number;
@IsOptional()
@IsBoolean()
isPopular?: boolean;
@IsOptional()
@IsNumber()
@Min(0)
@Max(100)
discountPercentage?: number;
@IsOptional()
@IsBoolean()
isActive?: boolean;
}
export class UpdatePackageDto {
@IsOptional()
@IsString()
@Length(2, 100)
name?: string;
@IsOptional()
@IsString()
@Length(0, 500)
description?: string;
@IsOptional()
@IsNumber()
@Min(1)
credits?: number;
@IsOptional()
@IsNumber()
@Min(0)
priceMxn?: number;
@IsOptional()
@IsNumber()
@Min(0)
priceUsd?: number;
@IsOptional()
@IsBoolean()
isPopular?: boolean;
@IsOptional()
@IsNumber()
@Min(0)
@Max(100)
discountPercentage?: number;
@IsOptional()
@IsBoolean()
isActive?: boolean;
}