Files
alrahma_sunday_school_api/apps/api/dist/modules/complaints/complaint.repo.js
T
2026-06-11 03:22:12 -04:00

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