import { Controller, Get, Query, Request } from '@nestjs/common';
import { ReportsService } from './reports.service';
import { RequirePermissions } from '../../common/decorators/permissions.decorator';

@Controller('reports')
export class ReportsController {
  constructor(private svc: ReportsService) {}

  @Get('members')
  @RequirePermissions('reports.view')
  memberReport(@Request() req: any, @Query() q: any) {
    return this.svc.memberReport(req.tenant, { officeId: q.officeId, status: q.status });
  }

  @Get('savings')
  @RequirePermissions('reports.view')
  savingsReport(@Request() req: any, @Query() q: any) {
    return this.svc.savingsReport(req.tenant, { officeId: q.officeId, savingsType: q.savingsType, fiscalYear: q.fiscalYear });
  }

  @Get('loans')
  @RequirePermissions('reports.view')
  loanReport(@Request() req: any, @Query() q: any) {
    return this.svc.loanReport(req.tenant, { officeId: q.officeId, status: q.status, loanType: q.loanType });
  }

  @Get('trial-balance')
  @RequirePermissions('reports.view')
  trialBalance(@Request() req: any) {
    return this.svc.trialBalance(req.tenant);
  }

  @Get('income-expense')
  @RequirePermissions('reports.view')
  incomeExpense(@Request() req: any, @Query() q: any) {
    return this.svc.incomeExpense(req.tenant, { fiscalYear: q.fiscalYear });
  }
}
