"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreateTenantDto = exports.TenantSettingsDto = void 0; const class_validator_1 = require("class-validator"); const swagger_1 = require("@nestjs/swagger"); const class_transformer_1 = require("class-transformer"); class TenantSettingsDto { } exports.TenantSettingsDto = TenantSettingsDto; __decorate([ (0, swagger_1.ApiPropertyOptional)({ description: 'Timezone', example: 'America/Mexico_City' }), (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], TenantSettingsDto.prototype, "timezone", void 0); __decorate([ (0, swagger_1.ApiPropertyOptional)({ description: 'Locale', example: 'es-MX' }), (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], TenantSettingsDto.prototype, "locale", void 0); __decorate([ (0, swagger_1.ApiPropertyOptional)({ description: 'Industry', example: 'Technology' }), (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], TenantSettingsDto.prototype, "industry", void 0); __decorate([ (0, swagger_1.ApiPropertyOptional)({ description: 'Company size', example: '11-50' }), (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], TenantSettingsDto.prototype, "company_size", void 0); class CreateTenantDto { } exports.CreateTenantDto = CreateTenantDto; __decorate([ (0, swagger_1.ApiProperty)({ description: 'Tenant name', example: 'Acme Corporation' }), (0, class_validator_1.IsString)(), (0, class_validator_1.IsNotEmpty)({ message: 'El nombre es requerido' }), (0, class_validator_1.MinLength)(2, { message: 'El nombre debe tener al menos 2 caracteres' }), (0, class_validator_1.MaxLength)(255, { message: 'El nombre no puede exceder 255 caracteres' }), __metadata("design:type", String) ], CreateTenantDto.prototype, "name", void 0); __decorate([ (0, swagger_1.ApiProperty)({ description: 'Tenant slug (unique identifier for URL)', example: 'acme-corp', }), (0, class_validator_1.IsString)(), (0, class_validator_1.IsNotEmpty)({ message: 'El slug es requerido' }), (0, class_validator_1.MinLength)(3, { message: 'El slug debe tener al menos 3 caracteres' }), (0, class_validator_1.MaxLength)(50, { message: 'El slug no puede exceder 50 caracteres' }), (0, class_validator_1.Matches)(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/, { message: 'El slug solo puede contener letras minusculas, numeros y guiones, y debe comenzar y terminar con letra o numero', }), __metadata("design:type", String) ], CreateTenantDto.prototype, "slug", void 0); __decorate([ (0, swagger_1.ApiPropertyOptional)({ description: 'Custom domain', example: 'acme.com' }), (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), (0, class_validator_1.MaxLength)(255, { message: 'El dominio no puede exceder 255 caracteres' }), __metadata("design:type", String) ], CreateTenantDto.prototype, "domain", void 0); __decorate([ (0, swagger_1.ApiPropertyOptional)({ description: 'Logo URL', example: 'https://example.com/logo.png', }), (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsUrl)({}, { message: 'La URL del logo debe ser valida' }), (0, class_validator_1.MaxLength)(500, { message: 'La URL del logo no puede exceder 500 caracteres' }), __metadata("design:type", String) ], CreateTenantDto.prototype, "logo_url", void 0); __decorate([ (0, swagger_1.ApiPropertyOptional)({ description: 'Tenant settings', type: TenantSettingsDto, }), (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsObject)(), (0, class_validator_1.ValidateNested)(), (0, class_transformer_1.Type)(() => TenantSettingsDto), __metadata("design:type", TenantSettingsDto) ], CreateTenantDto.prototype, "settings", void 0); //# sourceMappingURL=create-tenant.dto.js.map