"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAllProviders = getAllProviders; exports.getProviderById = getProviderById; exports.createProvider = createProvider; exports.updateProvider = updateProvider; exports.deleteProvider = deleteProvider; const client_1 = require("@prisma/client"); const prisma = new client_1.PrismaClient(); async function getAllProviders(includeInactive = false) { const where = includeInactive ? {} : { isActive: true }; return prisma.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.provider.findUnique({ where: { id }, include: { tariffs: { orderBy: { name: 'asc' }, }, _count: { select: { contracts: true }, }, }, }); } async function createProvider(data) { return prisma.provider.create({ data: { ...data, isActive: true, }, }); } async function updateProvider(id, data) { return prisma.provider.update({ where: { id }, data, }); } async function deleteProvider(id) { // Check if provider is used by any contracts const count = await prisma.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.provider.delete({ where: { id } }); } //# sourceMappingURL=provider.service.js.map