import { Module } from '@nestjs/common';
import { FiscalYearsService } from './services/fiscal-years.service';
import { FundCallsService } from './services/fund-calls.service';
import { PaymentsService } from './services/payments.service';
import { SuppliersService } from './services/suppliers.service';
import { ExpensesService } from './services/expenses.service';
import { BudgetLinesService } from './services/budget-lines.service';
import { FiscalYearsController } from './controllers/fiscal-years.controller';
import { FundCallsController } from './controllers/fund-calls.controller';
import { PaymentsController } from './controllers/payments.controller';
import { SuppliersController } from './controllers/suppliers.controller';
import { ExpensesController } from './controllers/expenses.controller';
import { BudgetsController } from './controllers/budgets.controller';
import { BankController } from './controllers/bank.controller';
import { ContractController } from './controllers/contract.controller';
import { WorkController } from './controllers/work.controller';
import { StubPaymentProvider, YouCanPayProvider } from './providers/payment-provider.interface';
import { BankService } from './services/bank.service';
import { ContractService } from './services/contract.service';
import { WorkService } from './services/work.service';

@Module({
  controllers: [
    FiscalYearsController,
    FundCallsController,
    PaymentsController,
    SuppliersController,
    ExpensesController,
    BudgetsController,
    BankController,
    ContractController,
    WorkController,
  ],
  providers: [
    FiscalYearsService,
    FundCallsService,
    PaymentsService,
    SuppliersService,
    ExpensesService,
    BudgetLinesService,
    BankService,
    ContractService,
    WorkService,
    StubPaymentProvider,
    YouCanPayProvider,
  ],
  exports: [FundCallsService, PaymentsService],
})
export class FinanceModule {}
