"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAllProviders = getAllProviders; exports.getProviderById = getProviderById; exports.createProvider = createProvider; exports.updateProvider = updateProvider; exports.deleteProvider = deleteProvider; const prisma_js_1 = __importDefault(require("../lib/prisma.js")); async function getAllProviders(includeInactive = false) { const where = includeInactive ? {} : { isActive: true }; return prisma_js_1.default.provider.findMany({ where, orderBy: { name: 'asc' }, include: { tariffs: { where: includeInactive ? {} : { isActive: true }, orderBy: { name: 'asc' }, }, _count: { select: { contracts: true, tariffs: true }, }, }, }); } async function getProviderById(id) { return prisma_js_1.default.provider.findUnique({ where: { id }, include: { tariffs: { orderBy: { name: 'asc' }, }, _count: { select: { contracts: true }, }, }, }); } async function createProvider(data) { return prisma_js_1.default.provider.create({ data: { ...data, isActive: true, }, }); } async function updateProvider(id, data) { return prisma_js_1.default.provider.update({ where: { id }, data, }); } async function deleteProvider(id) { // Check if provider is used by any contracts const count = await prisma_js_1.default.contract.count({ where: { providerId: id }, }); if (count > 0) { throw new Error(`Anbieter kann nicht gelöscht werden, da er von ${count} Verträgen verwendet wird`); } return prisma_js_1.default.provider.delete({ where: { id } }); } //# sourceMappingURL=provider.service.js.map