import { z } from 'zod'; export const AttachCommunicationInputDTOSchema = z.object({ attachmentId: z.string().uuid(), description: z.string().nullable().optional(), typeSharing: z.number().int(), dateViewExpire: z.string().datetime().nullable().optional(), }).strict(); export const AttachmentInputDTOSchema = z.object({ sourceId: z.string().nullable().optional(), sourceName: z.string().nullable().optional(), description: z.string().nullable().optional(), applicationId: z.number().int(), }).strict(); export const AttendeeCommunicationInputDTOSchema = z.object({ attendeeId: z.string().uuid(), message: z.string().nullable().optional(), }).strict(); export const AttendeeExternalInputDTOSchema = z.object({ name: z.string().min(1), emailAddress: z.string().email().nullable().optional(), message: z.string().nullable().optional(), }).strict(); export const AttendeeInputDTOSchema = z.object({ name: z.string().min(1), emailAddress: z.string().nullable().optional(), attendeeType: z.number(), wxUserId: z.number().int(), }).strict(); const EAttendeeTypeDTO = z.number(); const EEventCategoryDTO = z.number(); const EEventFilterCategoryDTO = z.number(); const EEventFilterStatusDTO = z.number(); const EEventFilterTypeDTO = z.number(); const EEventOwnerTypeDTO = z.number(); const EEventStatusDTO = z.number(); const EEventTypeDTO = z.number(); const ERecurringTypeDTO = z.number(); const EventAddAttachmentDTOSchema = z.object({ attachments: z.array(AttachmentInputDTOSchema), }).strict(); const EventAddAttendeeDTOSchema = z.object({ attendees: z.array(AttendeeInputDTOSchema), }).strict(); export const EventCommunicationInputDTOSchema = z.object({ attachs: z.array(AttachCommunicationInputDTOSchema).nullable().optional(), attendees: z.array(AttendeeCommunicationInputDTOSchema).nullable().optional(), externalAttendees: z.array(AttendeeExternalInputDTOSchema).nullable().optional(), }).strict(); export const EventInputDTOSchema = z.object({ userId: z.number().int(), ownerType: EEventOwnerTypeDTO, subject: z.string().min(1), body: z.string().min(1), location: z.string().nullable().optional(), startDate: z.string().datetime(), endDate: z.string().datetime(), type: EEventTypeDTO, category: EEventCategoryDTO, attendees: z.array(AttendeeInputDTOSchema).nullable().optional(), attachments: z.array(AttachmentInputDTOSchema).nullable().optional(), recurrence: z.object({ frequency: z.number().int(), until: z.string(), }), organizerId: z.number().int(), isAllDayEvent: z.boolean(), }).strict(); export const EventRecurrenceInputDTOSchema = z.object({ frequency: z.number().int(), occurrences: z.number().int(), }).strict(); export const EventRemoveAttachmentDTOSchema = z.object({ attachments: z.array(z.string().uuid()), }).strict(); export const EventRemoveAttendeeDTOSchema = z.object({ attendees: z.array(z.string().uuid()), }).strict(); export const EventUpdateDTOSchema = z.object({ subject: z.string().min(1), body: z.string().min(1), location: z.string().min(1), startDate: z.string().datetime(), endDate: z.string().datetime(), isAllDayEvent: z.boolean(), updateAllEvents: z.boolean(), recurrence: z.object({ frequency: z.number().int(), occurrences: z.number().int(), }), }).strict(); export const EventUpdateStatusDTOSchema = z.object({ status: EEventStatusDTO, comment: z.string().nullable().optional(), }).strict(); export const ProblemDetailsDTOSchema = z.object({ type: z.string().nullable().optional(), title: z.string().nullable().optional(), status: z.number().int().nullable().optional(), detail: z.string().nullable().optional(), instance: z.string().nullable().optional(), }).strict(); export const ResponseSimpleDTOSchema = z.object({ success: z.boolean(), message: z.string().nullable().optional(), data: z.any().nullable().optional(), }) export type AttachCommunicationInputDTO = z.infer; export type AttachmentInputDTO = z.infer; export type AttendeeCommunicationInputDTO = z.infer; export type AttendeeExternalInputDTO = z.infer; export type AttendeeInputDTO = z.infer; export type EventAddAttachmentDTO = z.infer; export type EventAddAttendeeDTO = z.infer; export type EventCommunicationInputDTO = z.infer; export type EventInputDTO = z.infer; export type EventRecurrenceInputDTO = z.infer; export type EventRemoveAttachmentDTO = z.infer; export type EventRemoveAttendeeDTO = z.infer; export type EventUpdateDTO = z.infer; export type EventUpdateStatusDTO = z.infer; export type ProblemDetailsDTO = z.infer; export type ResponseSimpleDTO = z.infer;