"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAllContractDurations = getAllContractDurations; exports.getContractDurationById = getContractDurationById; exports.createContractDuration = createContractDuration; exports.updateContractDuration = updateContractDuration; exports.deleteContractDuration = deleteContractDuration; const client_1 = require("@prisma/client"); const prisma = new client_1.PrismaClient(); async function getAllContractDurations(includeInactive = false) { const where = includeInactive ? {} : { isActive: true }; return prisma.contractDuration.findMany({ where, orderBy: { code: 'asc' }, }); } async function getContractDurationById(id) { return prisma.contractDuration.findUnique({ where: { id }, include: { _count: { select: { contracts: true }, }, }, }); } async function createContractDuration(data) { return prisma.contractDuration.create({ data: { ...data, isActive: true, }, }); } async function updateContractDuration(id, data) { return prisma.contractDuration.update({ where: { id }, data, }); } async function deleteContractDuration(id) { // Check if contract duration is used by any contracts const count = await prisma.contract.count({ where: { contractDurationId: id }, }); if (count > 0) { throw new Error(`Laufzeit kann nicht gelöscht werden, da sie von ${count} Verträgen verwendet wird`); } return prisma.contractDuration.delete({ where: { id } }); } //# sourceMappingURL=contract-duration.service.js.map