Files
doneit-web/src/app/services/Repositorys/Agenda/agendaDataModels.ts
T

152 lines
5.2 KiB
TypeScript
Raw Normal View History

2024-05-27 14:20:05 +01:00
import { z } from 'zod';
2024-05-27 15:53:13 +01:00
export const AttachCommunicationInputDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
attachmentId: z.string().uuid(),
description: z.string().nullable().optional(),
typeSharing: z.number().int(),
dateViewExpire: z.string().datetime().nullable().optional(),
}).strict();
2024-05-27 15:53:13 +01:00
export const AttachmentInputDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
sourceId: z.string().nullable().optional(),
sourceName: z.string().nullable().optional(),
description: z.string().nullable().optional(),
applicationId: z.number().int(),
}).strict();
2024-05-27 15:53:13 +01:00
export const AttendeeCommunicationInputDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
attendeeId: z.string().uuid(),
message: z.string().nullable().optional(),
}).strict();
2024-05-27 15:53:13 +01:00
export const AttendeeExternalInputDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
name: z.string().min(1),
emailAddress: z.string().email().nullable().optional(),
message: z.string().nullable().optional(),
}).strict();
2024-05-27 15:53:13 +01:00
export const AttendeeInputDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
name: z.string().min(1),
emailAddress: z.string().nullable().optional(),
2024-05-29 15:43:37 +01:00
attendeeType: z.number(),
2024-05-27 14:20:05 +01:00
wxUserId: z.number().int(),
}).strict();
2024-05-29 15:43:37 +01:00
const EAttendeeTypeDTO = z.number();
2024-05-27 14:20:05 +01:00
2024-05-29 15:43:37 +01:00
const EEventCategoryDTO = z.number();
2024-05-27 14:20:05 +01:00
2024-05-29 15:43:37 +01:00
const EEventFilterCategoryDTO = z.number();
2024-05-27 14:20:05 +01:00
2024-05-29 15:43:37 +01:00
const EEventFilterStatusDTO = z.number();
2024-05-27 14:20:05 +01:00
2024-05-29 15:43:37 +01:00
const EEventFilterTypeDTO = z.number();
2024-05-27 14:20:05 +01:00
2024-05-29 15:43:37 +01:00
const EEventOwnerTypeDTO = z.number();
2024-05-27 14:20:05 +01:00
2024-05-29 15:43:37 +01:00
const EEventStatusDTO = z.number();
2024-05-27 14:20:05 +01:00
2024-05-29 15:43:37 +01:00
const EEventTypeDTO = z.number();
2024-05-27 14:20:05 +01:00
2024-05-29 15:43:37 +01:00
const ERecurringTypeDTO = z.number();
2024-05-27 14:20:05 +01:00
2024-05-27 15:53:13 +01:00
const EventAddAttachmentDTOSchema = z.object({
attachments: z.array(AttachmentInputDTOSchema),
2024-05-27 14:20:05 +01:00
}).strict();
2024-05-27 15:53:13 +01:00
const EventAddAttendeeDTOSchema = z.object({
attendees: z.array(AttendeeInputDTOSchema),
2024-05-27 14:20:05 +01:00
}).strict();
2024-05-27 15:53:13 +01:00
export const EventCommunicationInputDTOSchema = z.object({
attachs: z.array(AttachCommunicationInputDTOSchema).nullable().optional(),
attendees: z.array(AttendeeCommunicationInputDTOSchema).nullable().optional(),
externalAttendees: z.array(AttendeeExternalInputDTOSchema).nullable().optional(),
2024-05-27 14:20:05 +01:00
}).strict();
2024-05-27 15:53:13 +01:00
export const EventInputDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
userId: z.number().int(),
2024-05-27 15:53:13 +01:00
ownerType: EEventOwnerTypeDTO,
2024-05-27 14:20:05 +01:00
subject: z.string().min(1),
body: z.string().min(1),
location: z.string().nullable().optional(),
startDate: z.string(),
endDate: z.string(),
2024-05-27 15:53:13 +01:00
type: EEventTypeDTO,
category: EEventCategoryDTO,
attendees: z.array(AttendeeInputDTOSchema).nullable().optional(),
attachments: z.array(AttachmentInputDTOSchema).nullable().optional(),
2024-05-27 14:20:05 +01:00
recurrence: z.object({
2024-05-29 15:43:37 +01:00
frequency: z.number().int(),
2024-06-07 14:10:17 +01:00
until: z.string(),
2024-05-27 14:20:05 +01:00
}),
organizerId: z.number().int(),
isAllDayEvent: z.boolean(),
}).strict();
2024-05-27 15:53:13 +01:00
export const EventRecurrenceInputDTOSchema = z.object({
2024-05-29 15:43:37 +01:00
frequency: z.number().int(),
2024-05-27 14:20:05 +01:00
occurrences: z.number().int(),
}).strict();
2024-05-27 15:53:13 +01:00
export const EventRemoveAttachmentDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
attachments: z.array(z.string().uuid()),
}).strict();
2024-05-27 15:53:13 +01:00
export const EventRemoveAttendeeDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
attendees: z.array(z.string().uuid()),
}).strict();
2024-05-27 15:53:13 +01:00
export const EventUpdateDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
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({
2024-05-29 15:43:37 +01:00
frequency: z.number().int(),
2024-05-27 14:20:05 +01:00
occurrences: z.number().int(),
}),
}).strict();
2024-05-27 15:53:13 +01:00
export const EventUpdateStatusDTOSchema = z.object({
status: EEventStatusDTO,
2024-05-27 14:20:05 +01:00
comment: z.string().nullable().optional(),
}).strict();
2024-05-27 15:53:13 +01:00
export const ProblemDetailsDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
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();
2024-05-27 15:53:13 +01:00
export const ResponseSimpleDTOSchema = z.object({
2024-05-27 14:20:05 +01:00
success: z.boolean(),
message: z.string().nullable().optional(),
data: z.any().nullable().optional(),
2024-05-27 15:53:13 +01:00
})
export type AttachCommunicationInputDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type AttachmentInputDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type AttendeeCommunicationInputDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type AttendeeExternalInputDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type AttendeeInputDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type EventAddAttachmentDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type EventAddAttendeeDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type EventCommunicationInputDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type EventInputDTO = z.infer<typeof EventInputDTOSchema>;
export type EventRecurrenceInputDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type EventRemoveAttachmentDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type EventRemoveAttendeeDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type EventUpdateDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type EventUpdateStatusDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type ProblemDetailsDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;
export type ResponseSimpleDTO = z.infer<typeof AttachCommunicationInputDTOSchema>;