archetecture security fix
This commit is contained in:
+145
@@ -0,0 +1,145 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.findMany = findMany;
|
||||
exports.findById = findById;
|
||||
exports.findFirst = findFirst;
|
||||
exports.create = create;
|
||||
exports.updateById = updateById;
|
||||
exports.softDelete = softDelete;
|
||||
exports.setPublished = setPublished;
|
||||
exports.findReservationConflicts = findReservationConflicts;
|
||||
exports.findCalendarBlockConflicts = findCalendarBlockConflicts;
|
||||
exports.findCalendarEvents = findCalendarEvents;
|
||||
exports.createCalendarBlock = createCalendarBlock;
|
||||
exports.deleteCalendarBlock = deleteCalendarBlock;
|
||||
exports.findMaintenanceLogs = findMaintenanceLogs;
|
||||
exports.createMaintenanceLog = createMaintenanceLog;
|
||||
exports.findPricingConfiguration = findPricingConfiguration;
|
||||
exports.createPricingConfiguration = createPricingConfiguration;
|
||||
exports.updatePricingConfiguration = updatePricingConfiguration;
|
||||
exports.findPricingRule = findPricingRule;
|
||||
exports.createPricingRule = createPricingRule;
|
||||
exports.updatePricingRule = updatePricingRule;
|
||||
exports.deletePricingRule = deletePricingRule;
|
||||
exports.createPriceHistory = createPriceHistory;
|
||||
const prisma_1 = require("../../lib/prisma");
|
||||
async function findMany(where, skip, take) {
|
||||
return Promise.all([
|
||||
prisma_1.prisma.vehicle.findMany({ where, skip, take, orderBy: { createdAt: 'desc' } }),
|
||||
prisma_1.prisma.vehicle.count({ where }),
|
||||
]);
|
||||
}
|
||||
async function findById(id, companyId) {
|
||||
return prisma_1.prisma.vehicle.findFirst({ where: { id, companyId } });
|
||||
}
|
||||
async function findFirst(id, companyId) {
|
||||
return prisma_1.prisma.vehicle.findFirst({ where: { id, companyId } });
|
||||
}
|
||||
async function create(data) {
|
||||
return prisma_1.prisma.vehicle.create({ data });
|
||||
}
|
||||
async function updateById(id, data) {
|
||||
return prisma_1.prisma.vehicle.update({ where: { id }, data });
|
||||
}
|
||||
async function softDelete(id, companyId) {
|
||||
return prisma_1.prisma.vehicle.updateMany({ where: { id, companyId }, data: { status: 'OUT_OF_SERVICE', isPublished: false } });
|
||||
}
|
||||
async function setPublished(id, companyId, isPublished) {
|
||||
return prisma_1.prisma.vehicle.updateMany({ where: { id, companyId }, data: { isPublished } });
|
||||
}
|
||||
async function findReservationConflicts(vehicleId, companyId, start, end) {
|
||||
return prisma_1.prisma.reservation.findMany({
|
||||
where: {
|
||||
vehicleId,
|
||||
companyId,
|
||||
status: { in: ['CONFIRMED', 'ACTIVE'] },
|
||||
startDate: { lt: end },
|
||||
endDate: { gt: start },
|
||||
},
|
||||
select: { id: true, startDate: true, endDate: true, status: true },
|
||||
});
|
||||
}
|
||||
async function findCalendarBlockConflicts(vehicleId, start, end) {
|
||||
return prisma_1.prisma.vehicleCalendarBlock.findMany({
|
||||
where: { vehicleId, startDate: { lt: end }, endDate: { gt: start } },
|
||||
select: { id: true, startDate: true, endDate: true, type: true, reason: true },
|
||||
});
|
||||
}
|
||||
async function findCalendarEvents(vehicleId, companyId, rangeStart, rangeEnd) {
|
||||
return Promise.all([
|
||||
prisma_1.prisma.reservation.findMany({
|
||||
where: {
|
||||
vehicleId,
|
||||
companyId,
|
||||
status: { in: ['DRAFT', 'CONFIRMED', 'ACTIVE'] },
|
||||
startDate: { lt: rangeEnd },
|
||||
endDate: { gt: rangeStart },
|
||||
},
|
||||
select: {
|
||||
id: true, startDate: true, endDate: true, status: true,
|
||||
customer: { select: { firstName: true, lastName: true } },
|
||||
},
|
||||
orderBy: { startDate: 'asc' },
|
||||
}),
|
||||
prisma_1.prisma.vehicleCalendarBlock.findMany({
|
||||
where: { vehicleId, startDate: { lt: rangeEnd }, endDate: { gt: rangeStart } },
|
||||
orderBy: { startDate: 'asc' },
|
||||
}),
|
||||
]);
|
||||
}
|
||||
async function createCalendarBlock(data) {
|
||||
return prisma_1.prisma.vehicleCalendarBlock.create({ data });
|
||||
}
|
||||
async function deleteCalendarBlock(id, vehicleId) {
|
||||
return prisma_1.prisma.vehicleCalendarBlock.deleteMany({ where: { id, vehicleId } });
|
||||
}
|
||||
async function findMaintenanceLogs(vehicleId) {
|
||||
return prisma_1.prisma.maintenanceLog.findMany({ where: { vehicleId }, orderBy: { performedAt: 'desc' } });
|
||||
}
|
||||
async function createMaintenanceLog(data) {
|
||||
return prisma_1.prisma.maintenanceLog.create({ data });
|
||||
}
|
||||
async function findPricingConfiguration(vehicleId) {
|
||||
return prisma_1.prisma.vehiclePricingConfiguration.findUnique({
|
||||
where: { vehicleId },
|
||||
include: {
|
||||
rules: { orderBy: [{ sortOrder: 'asc' }, { startDate: 'asc' }, { createdAt: 'asc' }] },
|
||||
history: { orderBy: { createdAt: 'desc' }, take: 20 },
|
||||
},
|
||||
});
|
||||
}
|
||||
async function createPricingConfiguration(data) {
|
||||
return prisma_1.prisma.vehiclePricingConfiguration.create({
|
||||
data,
|
||||
include: {
|
||||
rules: { orderBy: [{ sortOrder: 'asc' }, { startDate: 'asc' }, { createdAt: 'asc' }] },
|
||||
history: { orderBy: { createdAt: 'desc' }, take: 20 },
|
||||
},
|
||||
});
|
||||
}
|
||||
async function updatePricingConfiguration(id, data) {
|
||||
return prisma_1.prisma.vehiclePricingConfiguration.update({
|
||||
where: { id },
|
||||
data,
|
||||
include: {
|
||||
rules: { orderBy: [{ sortOrder: 'asc' }, { startDate: 'asc' }, { createdAt: 'asc' }] },
|
||||
history: { orderBy: { createdAt: 'desc' }, take: 20 },
|
||||
},
|
||||
});
|
||||
}
|
||||
async function findPricingRule(id, configurationId) {
|
||||
return prisma_1.prisma.vehiclePricingRule.findFirst({ where: { id, configurationId } });
|
||||
}
|
||||
async function createPricingRule(data) {
|
||||
return prisma_1.prisma.vehiclePricingRule.create({ data });
|
||||
}
|
||||
async function updatePricingRule(id, data) {
|
||||
return prisma_1.prisma.vehiclePricingRule.update({ where: { id }, data });
|
||||
}
|
||||
async function deletePricingRule(id, configurationId) {
|
||||
return prisma_1.prisma.vehiclePricingRule.deleteMany({ where: { id, configurationId } });
|
||||
}
|
||||
async function createPriceHistory(data) {
|
||||
return prisma_1.prisma.vehiclePriceHistory.create({ data });
|
||||
}
|
||||
//# sourceMappingURL=vehicle.repo.js.map
|
||||
Reference in New Issue
Block a user