71 lines
1.8 KiB
JavaScript
71 lines
1.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.findMany = findMany;
|
|
exports.findById = findById;
|
|
exports.create = create;
|
|
exports.updateById = updateById;
|
|
exports.deleteById = deleteById;
|
|
const prisma_1 = require("../../lib/prisma");
|
|
const COMPLAINT_INCLUDE = {
|
|
reservation: {
|
|
select: {
|
|
id: true,
|
|
startDate: true,
|
|
endDate: true,
|
|
status: true,
|
|
vehicle: { select: { make: true, model: true, year: true } },
|
|
},
|
|
},
|
|
customer: {
|
|
select: {
|
|
id: true,
|
|
firstName: true,
|
|
lastName: true,
|
|
email: true,
|
|
phone: true,
|
|
},
|
|
},
|
|
review: {
|
|
select: {
|
|
id: true,
|
|
overallRating: true,
|
|
comment: true,
|
|
},
|
|
},
|
|
};
|
|
async function findMany(companyId, where, skip, take) {
|
|
const baseWhere = { companyId, ...where };
|
|
return Promise.all([
|
|
prisma_1.prisma.complaint.findMany({
|
|
where: baseWhere,
|
|
include: COMPLAINT_INCLUDE,
|
|
skip,
|
|
take,
|
|
orderBy: { createdAt: 'desc' },
|
|
}),
|
|
prisma_1.prisma.complaint.count({ where: baseWhere }),
|
|
]);
|
|
}
|
|
async function findById(id, companyId) {
|
|
return prisma_1.prisma.complaint.findFirst({
|
|
where: { id, companyId },
|
|
include: COMPLAINT_INCLUDE,
|
|
});
|
|
}
|
|
async function create(data) {
|
|
return prisma_1.prisma.complaint.create({
|
|
data: data,
|
|
include: COMPLAINT_INCLUDE,
|
|
});
|
|
}
|
|
async function updateById(id, data) {
|
|
return prisma_1.prisma.complaint.update({
|
|
where: { id },
|
|
data,
|
|
include: COMPLAINT_INCLUDE,
|
|
});
|
|
}
|
|
async function deleteById(id) {
|
|
return prisma_1.prisma.complaint.delete({ where: { id } });
|
|
}
|
|
//# sourceMappingURL=complaint.repo.js.map
|