Gerando CRUD de Rating 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 "Rating". 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:
- addRatingRepository
- loadRatingRepository
- loadRatingByPageRepository
- deleteRatingRepository
- updateRatingRepository
Além disso, serão criados os seguintes casos de uso:
- addRating
- loadRating
- loadRatingByPage
- deleteRating
- updateRating
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 RatingStarsModel = {
rating: string;
stars: number;
};
export type RatingData = {
_id?: string;
createdById: string;
name: string;
active?: boolean;
createdAt?: Date;
updatedAt?: Date;
ratingType: string;
ratings: RatingStarsModel[];
};
export type RatingPaginated = {
ratings: RatingData[];
total: number;
};
export class RatingEntity {
_id?: string;
createdById: string;
name: string;
active?: boolean;
createdAt?: Date;
updatedAt?: Date;
ratingType: string;
ratings: RatingStarsModel[];
constructor(data: RatingData) {
this.createdById = data.createdById;
this.name = data.name;
this.active = false;
this.createdAt = new Date();
this.updatedAt = new Date();
this.ratingType = data.ratingType;
this.ratings = data.ratings;
}
}
A entidade RatingEntity é usada para armazenar informações sobre avaliações feitas por clientes. Ela possui campos como "ratingType" que armazena o tipo de avaliação, por exemplo "atendimento" ou "pontualidade", e "ratings" que armazena uma lista de objetos do tipo RatingStarsModel, que possuem a avaliação em si (em forma de estrelas) e uma descrição da avaliação. Esta entidade pode ser usada para armazenar avaliações feitas por clientes para os profissionais/prestadores de serviço e para os serviços oferecidos. Ela pode ser usada para calcular a média de avaliações, para identificar tendências e para fornecer feedback para os profissionais e proprietários.