import { eq } from 'drizzle-orm'; import { db } from './index'; import { pricingConfig, catalogItems } from './schema'; import type { PricingConfig, CatalogItem, ManoObraKey } from '@/budget/types'; import { getCurrentTenantId as getTenantId } from '@/lib/auth/current-user'; const MANO_OBRA_DEFAULT: Record = { demolicion: 0, fontaneria: 0, electricidad: 0, mano_de_obra: 0, }; export async function getPricingConfig(): Promise { const tenantId = await getTenantId(); const [row] = await db .select() .from(pricingConfig) .where(eq(pricingConfig.tenantId, tenantId)) .limit(1); if (!row) { return { alturaTechoDefault: 2.5, factorZona: {}, manoObra: { ...MANO_OBRA_DEFAULT } }; } return { alturaTechoDefault: row.alturaTechoDefault, factorZona: row.factorZona, manoObra: { ...MANO_OBRA_DEFAULT, ...(row.manoObra as Record) }, }; } export async function getCatalog(): Promise { const tenantId = await getTenantId(); const rows = await db.select().from(catalogItems).where(eq(catalogItems.tenantId, tenantId)); return rows.map((r) => ({ id: r.id, categoria: r.categoria, nombre: r.nombre, calidad: r.calidad, precioUnit: r.precioUnit, unidad: r.unidad, descriptorRender: r.descriptorRender, esDefault: r.esDefault, sku: r.sku, })); } export { getTenantId };