import { Module } from '@nestjs/common';
import { PrismaModule } from '../prisma/prisma.module';

// Controllers
import { AsientosController } from './controllers/asientos.controller';
import { PlanCuentasController } from './controllers/plan-cuentas.controller';
import { EjerciciosController } from './controllers/ejercicios.controller';
import { PeriodosController } from './controllers/periodos.controller';
import { CentrosCostoController } from './controllers/centros-costo.controller';
import { TipoCambioController } from './controllers/tipo-cambio.controller';
import { MapeoCuentasController } from './controllers/mapeo-cuentas.controller';
import { ReportesController } from './controllers/reportes.controller';

// Services
import { AsientosService } from './services/asientos.service';
import { ContabilidadIntegracionService } from './services/integracion.service';
import { PlanCuentasService } from './services/plan-cuentas.service';
import { ContabilidadSeedService } from './services/seed.service';
import { EjerciciosService } from './services/ejercicios.service';
import { PeriodosService } from './services/periodos.service';
import { CentrosCostoService } from './services/centros-costo.service';
import { TipoCambioService } from './services/tipo-cambio.service';
import { MapeoCuentasService } from './services/mapeo-cuentas.service';
import { MapeoMediosPagoService } from './services/mapeo-medios-pago.service';
import { ReportesService } from './services/reportes.service';

@Module({
  imports: [PrismaModule],
  controllers: [
    AsientosController,
    PlanCuentasController,
    EjerciciosController,
    PeriodosController,
    CentrosCostoController,
    TipoCambioController,
    MapeoCuentasController,
    ReportesController,
  ],
  providers: [
    AsientosService,
    ContabilidadIntegracionService,
    PlanCuentasService,
    ContabilidadSeedService,
    EjerciciosService,
    PeriodosService,
    CentrosCostoService,
    TipoCambioService,
    MapeoCuentasService,
    MapeoMediosPagoService,
    ReportesService,
  ],
  exports: [
    AsientosService,
    ContabilidadIntegracionService,
    PlanCuentasService,
    PeriodosService,
    TipoCambioService,
    MapeoCuentasService,
    MapeoMediosPagoService,
  ],
})
export class ContabilidadModule {}
