"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAllContractCategories = getAllContractCategories; exports.getContractCategoryById = getContractCategoryById; exports.getContractCategoryByCode = getContractCategoryByCode; exports.createContractCategory = createContractCategory; exports.updateContractCategory = updateContractCategory; exports.deleteContractCategory = deleteContractCategory; const prisma_js_1 = __importDefault(require("../lib/prisma.js")); async function getAllContractCategories(includeInactive = false) { return prisma_js_1.default.contractCategory.findMany({ where: includeInactive ? {} : { isActive: true }, orderBy: [{ sortOrder: 'asc' }, { name: 'asc' }], include: { _count: { select: { contracts: true }, }, }, }); } async function getContractCategoryById(id) { return prisma_js_1.default.contractCategory.findUnique({ where: { id }, include: { _count: { select: { contracts: true }, }, }, }); } async function getContractCategoryByCode(code) { return prisma_js_1.default.contractCategory.findUnique({ where: { code }, }); } async function createContractCategory(data) { return prisma_js_1.default.contractCategory.create({ data, include: { _count: { select: { contracts: true }, }, }, }); } async function updateContractCategory(id, data) { return prisma_js_1.default.contractCategory.update({ where: { id }, data, include: { _count: { select: { contracts: true }, }, }, }); } async function deleteContractCategory(id) { // Check if category has contracts const category = await prisma_js_1.default.contractCategory.findUnique({ where: { id }, include: { _count: { select: { contracts: true } } }, }); if (category && category._count.contracts > 0) { throw new Error(`Kategorie kann nicht gelöscht werden, da ${category._count.contracts} Verträge zugeordnet sind.`); } return prisma_js_1.default.contractCategory.delete({ where: { id } }); } //# sourceMappingURL=contractCategory.service.js.map