Gerando CRUD de Recurrence no CrazyStack Node.js
Nesta aula, você aprenderá como criar as funcionalidades básicas de um CRUD (Create, Read, Update e Delete) para o recurso "Recurrence". O objetivo é que você possa aplicar o mesmo padrão utilizado na criação do CRUD de "Categoria" e assim, possa desenvolver CRUDs para outros recursos da aplicação com facilidade. Serão criadas as seguintes interfaces de repositório:
- addRecurrenceRepository
- loadRecurrenceRepository
- loadRecurrenceByPageRepository
- deleteRecurrenceRepository
- updateRecurrenceRepository
Além disso, serão criados os seguintes casos de uso:
- addRecurrence
- loadRecurrence
- loadRecurrenceByPage
- deleteRecurrence
- updateRecurrence
Você também poderá aplicar as técnicas de validação de dados e tratamento de erros aprendidas nas aulas anteriores. Ao final desta aula, você terá uma base sólida para o desenvolvimento de futuros recursos da aplicação.
export type RecurrenceData = {
_id?: string;
createdById: string;
name: string;
active?: boolean;
createdAt?: Date;
updatedAt?: Date;
type: number; //0 is weekly 1 is monthly
accept: boolean;
appointmentsWasInserted: boolean;
frequency: number;
initDate: Date;
endDate: Date;
professionalId: string;
requestId: string;
clientId: string;
ownerId: string;
serviceId: string;
};
export type RecurrencePaginated = {
recurrences: RecurrenceData[];
total: number;
};
export class RecurrenceEntity {
createdById: string;
name: string;
active?: boolean;
createdAt?: Date;
updatedAt?: Date;
type: number; //0 is weekly 1 is monthly
accept: boolean;
appointmentsWasInserted: boolean;
frequency: number;
initDate: Date;
endDate: Date;
professionalId: string;
requestId: string;
clientId: string;
ownerId: string;
serviceId: string;
constructor(data: RecurrenceData) {
this.createdById = data.createdById;
this.name = data.name;
this.active = false;
this.createdAt = new Date();
this.updatedAt = new Date();
this.accept = data.accept;
this.appointmentsWasInserted = data.appointmentsWasInserted;
this.frequency = data.frequency;
this.initDate = data.initDate;
this.endDate = data.endDate;
this.professionalId = data.professionalId;
this.requestId = data.requestId;
this.clientId = data.clientId;
this.ownerId = data.ownerId;
this.serviceId = data.serviceId;
this.type = data.type;
}
}
A classe RecurrenceEntity representa uma entidade de recorrência de agendamentos. Ela é usada para armazenar informações sobre agendamentos que devem ser repetidos com uma certa frequência, como agendamentos semanais ou mensais. Essa entidade contém informações como o tipo de recorrência (semanal ou mensal), a frequência da recorrência, as datas de início e fim da recorrência, o ID do profissional responsável pelo agendamento, o ID do cliente, o ID do proprietário e o ID do serviço. A entidade também contém informações sobre se a recorrência foi aceita e se os agendamentos foram inseridos. Essa entidade é usada para gerenciar recorrências de agendamentos e pode ser usada para automatizar a criação de agendamentos recorrentes e garantir que eles sejam criados de maneira consistente e precisa.