Initial commit

This commit is contained in:
Jose Selesan
2026-04-08 22:53:11 -03:00
commit 9ae270609d
179 changed files with 28096 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
import { z } from 'zod'
export const complexSchema = z.object({
id: z.uuid(),
complexName: z.string(),
physicalAddress: z.string().nullable(),
complexSlug: z.string(),
adminEmail: z.email(),
planCode: z.string().max(10).nullable(),
createdAt: z.string().datetime(),
updatedAt: z.string().datetime(),
})
export const createComplexSchema = z.object({
complexName: z
.string()
.trim()
.min(3, 'El nombre del complejo debe tener al menos 3 caracteres.')
.max(120, 'El nombre del complejo no puede superar los 120 caracteres.'),
physicalAddress: z
.string()
.trim()
.min(5, 'La direccion debe tener al menos 5 caracteres.')
.max(200, 'La direccion no puede superar los 200 caracteres.'),
planCode: z
.string()
.trim()
.min(1, 'El planCode no puede estar vacío.')
.max(10, 'El planCode no puede superar los 10 caracteres.')
.optional(),
})
export const updateComplexSchema = z
.object({
complexName: z
.string()
.trim()
.min(3, 'El nombre del complejo debe tener al menos 3 caracteres.')
.max(120, 'El nombre del complejo no puede superar los 120 caracteres.')
.optional(),
physicalAddress: z
.string()
.trim()
.min(5, 'La direccion debe tener al menos 5 caracteres.')
.max(200, 'La direccion no puede superar los 200 caracteres.')
.nullable()
.optional(),
complexSlug: z
.string()
.trim()
.min(3, 'El slug del complejo debe tener al menos 3 caracteres.')
.max(120, 'El slug del complejo no puede superar los 120 caracteres.')
.optional(),
adminEmail: z.email('El adminEmail debe ser un email válido.').optional(),
planCode: z
.string()
.trim()
.min(1, 'El planCode no puede estar vacío.')
.max(10, 'El planCode no puede superar los 10 caracteres.')
.nullable()
.optional(),
})
.refine(
(payload) =>
Boolean(
payload.complexName ||
payload.physicalAddress !== undefined ||
payload.complexSlug ||
payload.adminEmail ||
payload.planCode !== undefined,
),
{
message: 'Debes enviar al menos un campo para actualizar.',
},
)
export type Complex = z.infer<typeof complexSchema>
export type CreateComplexInput = z.infer<typeof createComplexSchema>
export type UpdateComplexInput = z.infer<typeof updateComplexSchema>
export type CreateComplexPayload = CreateComplexInput
export type CreateComplexResponse = Complex
export type UpdateComplexPayload = UpdateComplexInput
export type UpdateComplexResponse = Complex