/**
 * Seed: Plan de Cuentas Paraguay — NIIF adaptado
 * Estructura: codigo, descripcion, tipo, naturaleza, nivel, acepta_movimientos
 *
 * Uso: ContabilidadSeedService.seedPlanCuentas(empresaId?)
 * Si empresaId es null, se carga como plan maestro del sistema (empresa_id = null).
 */

export interface CuentaSeed {
  codigo: string;
  descripcion: string;
  tipo: 'ACTIVO' | 'PASIVO' | 'PATRIMONIO' | 'INGRESO' | 'COSTO' | 'GASTO';
  naturaleza: 'DEUDORA' | 'ACREEDORA';
  nivel: number;
  acepta_movimientos: boolean;
  acepta_cc?: boolean;
  moneda_fija?: string;
  // Si está seteado, la cuenta solo se crea cuando ese módulo está activo en la empresa.
  // Las cuentas sin `modulo` son del plan base y se crean siempre.
  modulo?: string;
}

export const PLAN_CUENTAS_PARAGUAY: CuentaSeed[] = [
  // ── 1. ACTIVO ──────────────────────────────────────────────────────────────
  { codigo: '1', descripcion: 'ACTIVO', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 1, acepta_movimientos: false },
  { codigo: '1.1', descripcion: 'Activo Corriente', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 2, acepta_movimientos: false },

  { codigo: '1.1.1', descripcion: 'Caja y Bancos', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '1.1.1.01', descripcion: 'Caja General', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.1.02', descripcion: 'Caja Chica', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.1.03', descripcion: 'Banco - Cuenta Corriente PYG', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.1.04', descripcion: 'Banco - Cuenta Corriente USD', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, moneda_fija: 'USD' },
  { codigo: '1.1.1.05', descripcion: 'Banco - Caja de Ahorro PYG', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.1.06', descripcion: 'Cheques en Cartera', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.1.07', descripcion: 'Cheques Depositados en Tránsito', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.1.08', descripcion: 'Fondo Fijo / Caja Chica', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '1.1.2', descripcion: 'Cuentas a Cobrar', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '1.1.2.01', descripcion: 'Clientes', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.2.02', descripcion: 'Documentos a Cobrar', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.2.03', descripcion: 'Anticipo a Proveedores', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.2.04', descripcion: 'Deudores Varios', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.2.05', descripcion: 'Notas de Crédito a Aplicar', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.2.06', descripcion: 'Anticipos y Préstamos al Personal', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, modulo: 'RRHH' },
  // 1.1.2.07 ya lo usa 'Anticipo para Viáticos' en varias empresas (viene de
  // fuera de este seed), y .11/.12 tambien estan tomados: se salta a .13.
  { codigo: '1.1.2.13', descripcion: 'Anticipos de Despacho', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, modulo: 'IMPORTACIONES' },

  { codigo: '1.1.3', descripcion: 'IVA Crédito Fiscal', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '1.1.3.01', descripcion: 'IVA Crédito Fiscal 10%', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.3.02', descripcion: 'IVA Crédito Fiscal 5%', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.3.03', descripcion: 'Retenciones de IVA a Favor', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.3.04', descripcion: 'Retenciones de Renta a Favor', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '1.1.4', descripcion: 'Inventarios', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '1.1.4.01', descripcion: 'Mercaderías', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.4.02', descripcion: 'Productos Terminados', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.4.03', descripcion: 'Materias Primas', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.4.04', descripcion: 'Importaciones en Curso', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, modulo: 'IMPORTACIONES' },

  { codigo: '1.1.5', descripcion: 'Gastos Pagados por Adelantado', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '1.1.5.01', descripcion: 'Seguros Prepagados', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.1.5.02', descripcion: 'Alquileres Prepagados', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '1.2', descripcion: 'Activo No Corriente', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 2, acepta_movimientos: false },
  { codigo: '1.2.1', descripcion: 'Activo Fijo', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '1.2.1.01', descripcion: 'Terrenos', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.2.1.02', descripcion: 'Edificios', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.2.1.03', descripcion: 'Muebles y Útiles', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.2.1.04', descripcion: 'Equipos de Computación', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.2.1.05', descripcion: 'Vehículos', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.2.1.06', descripcion: 'Maquinarias y Equipos', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.2.1.90', descripcion: '(-) Depreciación Acumulada', tipo: 'ACTIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '1.2.2', descripcion: 'Intangibles', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '1.2.2.01', descripcion: 'Licencias de Software', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '1.2.2.02', descripcion: 'Marcas y Patentes', tipo: 'ACTIVO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },

  // ── 2. PASIVO ──────────────────────────────────────────────────────────────
  { codigo: '2', descripcion: 'PASIVO', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 1, acepta_movimientos: false },
  { codigo: '2.1', descripcion: 'Pasivo Corriente', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 2, acepta_movimientos: false },

  { codigo: '2.1.1', descripcion: 'Cuentas a Pagar', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '2.1.1.01', descripcion: 'Proveedores', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '2.1.1.02', descripcion: 'Documentos a Pagar', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '2.1.1.03', descripcion: 'Anticipos de Clientes', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '2.1.1.04', descripcion: 'Cheques a Pagar', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '2.1.1.05', descripcion: 'Comisiones a Pagar Vendedores', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true, acepta_cc: true, modulo: 'COMISIONES' },
  // FASE 1 — Acreedores y proveedores del exterior.
  // Códigos tentativos: el contador puede reasignar desde `Contabilidad → Mapeo de Cuentas`.
  { codigo: '2.1.1.06', descripcion: 'Proveedores del Exterior', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '2.1.1.07', descripcion: 'Acreedores Varios', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '2.1.2', descripcion: 'IVA Débito Fiscal', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '2.1.2.01', descripcion: 'IVA Débito Fiscal 10%', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '2.1.2.02', descripcion: 'IVA Débito Fiscal 5%', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '2.1.3', descripcion: 'Retenciones y Cargas Sociales', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '2.1.3.01', descripcion: 'IPS Obrero a Pagar', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true, modulo: 'RRHH' },
  { codigo: '2.1.3.02', descripcion: 'IPS Patronal a Pagar', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true, modulo: 'RRHH' },
  { codigo: '2.1.3.03', descripcion: 'Retenciones de IRPC a Pagar', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '2.1.3.04', descripcion: 'Sueldos y Jornales a Pagar', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true, modulo: 'RRHH' },
  { codigo: '2.1.3.05', descripcion: 'Retenciones de IVA a Pagar (emitidas)', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '2.1.3.06', descripcion: 'Retenciones de Renta a Pagar (emitidas)', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '2.1.3.07', descripcion: 'IPS a Depositar', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true, modulo: 'RRHH' },

  { codigo: '2.1.4', descripcion: 'Préstamos Bancarios Corto Plazo', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '2.1.4.01', descripcion: 'Préstamos Bancarios CP', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '2.2', descripcion: 'Pasivo No Corriente', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 2, acepta_movimientos: false },
  { codigo: '2.2.1', descripcion: 'Préstamos Bancarios Largo Plazo', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '2.2.1.01', descripcion: 'Préstamos Bancarios LP', tipo: 'PASIVO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },

  // ── 3. PATRIMONIO NETO ─────────────────────────────────────────────────────
  { codigo: '3', descripcion: 'PATRIMONIO NETO', tipo: 'PATRIMONIO', naturaleza: 'ACREEDORA', nivel: 1, acepta_movimientos: false },
  { codigo: '3.1', descripcion: 'Capital', tipo: 'PATRIMONIO', naturaleza: 'ACREEDORA', nivel: 2, acepta_movimientos: false },
  { codigo: '3.1.1', descripcion: 'Capital Integrado', tipo: 'PATRIMONIO', naturaleza: 'ACREEDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '3.1.1.01', descripcion: 'Capital Integrado', tipo: 'PATRIMONIO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '3.2', descripcion: 'Resultados', tipo: 'PATRIMONIO', naturaleza: 'ACREEDORA', nivel: 2, acepta_movimientos: false },
  { codigo: '3.2.1', descripcion: 'Resultados del Ejercicio', tipo: 'PATRIMONIO', naturaleza: 'ACREEDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '3.2.1.01', descripcion: 'Resultado del Ejercicio', tipo: 'PATRIMONIO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '3.2.1.02', descripcion: 'Resultados Acumulados de Ejercicios Anteriores', tipo: 'PATRIMONIO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },

  // ── 4. INGRESOS ────────────────────────────────────────────────────────────
  { codigo: '4', descripcion: 'INGRESOS', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 1, acepta_movimientos: false },
  { codigo: '4.1', descripcion: 'Ingresos Operacionales', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 2, acepta_movimientos: false },
  { codigo: '4.1.1', descripcion: 'Ventas', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '4.1.1.01', descripcion: 'Ventas Gravadas 10%', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '4.1.1.02', descripcion: 'Ventas Gravadas 5%', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '4.1.1.03', descripcion: 'Ventas Exentas', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '4.1.1.04', descripcion: '(-) Devoluciones y Descuentos en Ventas', tipo: 'INGRESO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '4.2', descripcion: 'Otros Ingresos', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 2, acepta_movimientos: false },
  { codigo: '4.2.1', descripcion: 'Ingresos Financieros y Otros', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '4.2.1.01', descripcion: 'Intereses Ganados', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '4.2.1.02', descripcion: 'Diferencia de Cambio Ganada', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '4.2.1.03', descripcion: 'Ingresos por Alquileres', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '4.2.1.04', descripcion: 'Otros Ingresos No Operativos', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '4.2.1.05', descripcion: 'Intereses Moratorios Cobrados', tipo: 'INGRESO', naturaleza: 'ACREEDORA', nivel: 4, acepta_movimientos: true },

  // ── 5. COSTOS ──────────────────────────────────────────────────────────────
  { codigo: '5', descripcion: 'COSTOS', tipo: 'COSTO', naturaleza: 'DEUDORA', nivel: 1, acepta_movimientos: false },
  { codigo: '5.1', descripcion: 'Costo de Ventas', tipo: 'COSTO', naturaleza: 'DEUDORA', nivel: 2, acepta_movimientos: false },
  { codigo: '5.1.1', descripcion: 'Costo de Mercaderías Vendidas', tipo: 'COSTO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '5.1.1.01', descripcion: 'Costo de Mercaderías Vendidas', tipo: 'COSTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, acepta_cc: true },

  // ── 6. GASTOS ──────────────────────────────────────────────────────────────
  { codigo: '6', descripcion: 'GASTOS', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 1, acepta_movimientos: false },

  { codigo: '6.1', descripcion: 'Gastos Administrativos', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 2, acepta_movimientos: false },
  { codigo: '6.1.1', descripcion: 'Gastos de Personal', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '6.1.1.01', descripcion: 'Sueldos y Salarios Administrativos', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, acepta_cc: true, modulo: 'RRHH' },
  { codigo: '6.1.1.02', descripcion: 'Cargas Sociales - IPS Patronal', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, modulo: 'RRHH' },
  { codigo: '6.1.1.03', descripcion: 'Bonificaciones y Gratificaciones', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, modulo: 'RRHH' },
  { codigo: '6.1.1.04', descripcion: 'Aguinaldo', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, modulo: 'RRHH' },
  { codigo: '6.1.1.05', descripcion: 'Indemnizaciones por Despido', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, acepta_cc: true, modulo: 'RRHH' },
  { codigo: '6.1.1.06', descripcion: 'Preaviso e Indemnizaciones Sustitutivas', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, acepta_cc: true, modulo: 'RRHH' },
  { codigo: '6.1.1.07', descripcion: 'Vacaciones y Licencias Pagadas', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, acepta_cc: true, modulo: 'RRHH' },

  { codigo: '6.1.2', descripcion: 'Gastos Generales Administrativos', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '6.1.2.01', descripcion: 'Alquileres de Local', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.02', descripcion: 'Energía Eléctrica', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.03', descripcion: 'Agua y Saneamiento', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.04', descripcion: 'Telefonía e Internet', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.05', descripcion: 'Papelería y Útiles de Oficina', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.06', descripcion: 'Limpieza y Mantenimiento', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.07', descripcion: 'Seguros', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.08', descripcion: 'Depreciaciones', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.09', descripcion: 'Amortizaciones', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.10', descripcion: 'Gastos de Representación', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.11', descripcion: 'Combustibles y Lubricantes', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.12', descripcion: 'Viáticos y Movilidad', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.13', descripcion: 'Honorarios Profesionales', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.1.2.99', descripcion: 'Otros Gastos Generales', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '6.2', descripcion: 'Gastos Comerciales', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 2, acepta_movimientos: false },
  { codigo: '6.2.1', descripcion: 'Gastos de Ventas y Distribución', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '6.2.1.01', descripcion: 'Sueldos de Vendedores', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, acepta_cc: true },
  { codigo: '6.2.1.02', descripcion: 'Comisiones de Vendedores', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true, acepta_cc: true, modulo: 'COMISIONES' },
  { codigo: '6.2.1.03', descripcion: 'Publicidad y Marketing', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.2.1.04', descripcion: 'Fletes y Transporte de Ventas', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.2.1.05', descripcion: 'Embalajes y Envases', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },

  { codigo: '6.3', descripcion: 'Gastos Financieros', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 2, acepta_movimientos: false },
  { codigo: '6.3.1', descripcion: 'Cargos Financieros', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 3, acepta_movimientos: false },
  { codigo: '6.3.1.01', descripcion: 'Intereses Bancarios', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.3.1.02', descripcion: 'Comisiones Bancarias', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.3.1.03', descripcion: 'Diferencia de Cambio Perdida', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
  { codigo: '6.3.1.04', descripcion: 'Mora e Intereses por Atraso', tipo: 'GASTO', naturaleza: 'DEUDORA', nivel: 4, acepta_movimientos: true },
];

/** Mapeo de conceptos del sistema a códigos de cuentas del plan Paraguay */
export const MAPEO_DEFAULT: Record<string, string> = {
  CLIENTES: '1.1.2.01',
  PROVEEDORES: '2.1.1.01',
  // FASE 1 — Acreedores y proveedores del exterior (docs/plan-acreedores-proveedores-exterior.md)
  PROVEEDORES_EXTERIOR: '2.1.1.06',
  ACREEDORES_VARIOS: '2.1.1.07',
  VENTAS_10: '4.1.1.01',
  VENTAS_5: '4.1.1.02',
  VENTAS_EXENTAS: '4.1.1.03',
  IVA_DEBITO_10: '2.1.2.01',
  IVA_DEBITO_5: '2.1.2.02',
  IVA_CREDITO_10: '1.1.3.01',
  IVA_CREDITO_5: '1.1.3.02',
  COSTO_VENTAS: '5.1.1.01',
  INVENTARIO: '1.1.4.01',
  // Importaciones, fase 2 (docs/plan-importaciones-fase2-contable.md). Cuenta
  // puente donde se acumula la importacion hasta cerrarla, y el anticipo al
  // despachante. Ambas OPCIONALES: si la empresa no las mapea, el asiento del
  // despacho sigue siendo el directo a INVENTARIO de siempre.
  IMPORTACIONES_EN_CURSO: '1.1.4.04',
  ANTICIPO_DESPACHO: '1.1.2.13',
  CAJA_GENERAL: '1.1.1.01',
  CAJA_CHICA: '1.1.1.08',
  BANCO_PYG: '1.1.1.03',
  BANCO_USD: '1.1.1.04',
  CHEQUES_EN_CARTERA: '1.1.1.06',
  CHEQUES_EN_TRANSITO: '1.1.1.07',
  CHEQUES_A_PAGAR: '2.1.1.04',
  GASTOS_BANCARIOS: '6.3.1.02',
  INTERESES_BANCARIOS: '6.3.1.01',
  DIFERENCIA_CAMBIO_GANADA: '4.2.1.02',
  DIFERENCIA_CAMBIO_PERDIDA: '6.3.1.03',
  // Módulo de Gastos — fallbacks y mapeos por tipo
  GASTOS_GENERALES: '6.1.2.99',
  GASTOS_SERVICIOS: '6.1.2.02',
  GASTOS_ALQUILER: '6.1.2.01',
  GASTOS_PAPELERIA: '6.1.2.05',
  GASTOS_SEGUROS: '6.1.2.07',
  GASTOS_COMBUSTIBLE: '6.1.2.11',
  GASTOS_VIATICOS: '6.1.2.12',
  GASTOS_HONORARIOS: '6.1.2.13',
  GASTOS_TELEFONIA: '6.1.2.04',
  GASTOS_MANTENIMIENTO: '6.1.2.06',
  // Bancos por defecto (para forma_pago = TRANSFERENCIA)
  BANCOS_DEFAULT: '1.1.1.03',
  // Módulo Recibos Multi-Factura
  ANTICIPOS_CLIENTES: '2.1.1.03',
  NC_APLICADA_PUENTE: '1.1.2.05',
  RETENCION_IVA_FAVOR: '1.1.3.03',
  RETENCION_RENTA_FAVOR: '1.1.3.04',
  INTERESES_MORATORIOS_COBRADOS: '4.2.1.05',
  RETENCION_IVA_EMITIDA: '2.1.3.05',
  RETENCION_RENTA_EMITIDA: '2.1.3.06',
  // Módulo Liquidación de Comisiones
  GASTO_COMISIONES_VENTAS: '6.2.1.02',
  COMISIONES_A_PAGAR: '2.1.1.05',
  // De dónde sale la plata al pagar una liquidación de comisiones. La liquidación
  // no guarda medio de pago, así que no hay nada que resolver por medio: si la
  // empresa paga las comisiones por banco, apunta este concepto al banco. Sin
  // mapear, sale de CAJA_GENERAL como hasta ahora.
  PAGO_COMISIONES_FONDOS: '1.1.1.01',
  // Módulo RRHH
  SUELDOS_JORNALES: '6.1.1.01',
  SUELDOS_A_PAGAR: '2.1.3.04',
  APORTE_PATRONAL_IPS: '6.1.1.02',
  APORTE_ADMIN_IPS: '6.1.1.02',
  IPS_A_DEPOSITAR: '2.1.3.07',
  DESCUENTOS_VARIOS_RRHH: '1.1.2.06',
  INDEMNIZACION: '6.1.1.05',
  PREAVISO: '6.1.1.06',
  VACACIONES_FINIQUITO: '6.1.1.07',
  AGUINALDO_FINIQUITO: '6.1.1.04',
  // Módulo de Gastos — anticipo personal (viáticos, etc.)
  ANTICIPO_PERSONAL: '1.01.03.03.04',
  // Módulo de Rendición de Viáticos (docs/plan-rendicion-viaticos.md).
  // Reusa la misma cuenta que ANTICIPO_PERSONAL — es semánticamente el mismo saldo.
  ANTICIPO_VIATICO: '1.01.03.03.04',
  // CxP a empleados por reintegros diferidos de viáticos.
  REINTEGRO_EMPLEADO_PENDIENTE: '2.1.3.04',
};

/** Módulo requerido para crear el mapeo default de un concepto. */
export const MAPEO_DEFAULT_MODULOS: Record<string, string> = {
  IMPORTACIONES_EN_CURSO: 'IMPORTACIONES',
  ANTICIPO_DESPACHO: 'IMPORTACIONES',
  GASTOS_GENERALES: 'GASTOS',
  GASTOS_SERVICIOS: 'GASTOS',
  GASTOS_ALQUILER: 'GASTOS',
  GASTOS_PAPELERIA: 'GASTOS',
  GASTOS_SEGUROS: 'GASTOS',
  GASTOS_COMBUSTIBLE: 'GASTOS',
  GASTOS_VIATICOS: 'GASTOS',
  GASTOS_HONORARIOS: 'GASTOS',
  GASTOS_TELEFONIA: 'GASTOS',
  GASTOS_MANTENIMIENTO: 'GASTOS',
  // Submódulo, no módulo: "COMISIONES" no viene en el plan (la función vive bajo
  // Cobranzas). Ver `obtenerModulosActivos` en seed.service.ts.
  GASTO_COMISIONES_VENTAS: 'COB_COMISIONES',
  COMISIONES_A_PAGAR: 'COB_COMISIONES',
  PAGO_COMISIONES_FONDOS: 'COB_COMISIONES',
  SUELDOS_JORNALES: 'RRHH',
  SUELDOS_A_PAGAR: 'RRHH',
  APORTE_PATRONAL_IPS: 'RRHH',
  APORTE_ADMIN_IPS: 'RRHH',
  IPS_A_DEPOSITAR: 'RRHH',
  DESCUENTOS_VARIOS_RRHH: 'RRHH',
  INDEMNIZACION: 'RRHH',
  PREAVISO: 'RRHH',
  VACACIONES_FINIQUITO: 'RRHH',
  AGUINALDO_FINIQUITO: 'RRHH',
  ANTICIPO_PERSONAL: 'GASTOS',
  ANTICIPO_VIATICO: 'RRHH',
  REINTEGRO_EMPLEADO_PENDIENTE: 'RRHH',
};
