import { Controller, Get, Query, UseGuards } from '@nestjs/common';
import { ReportsService } from './reports.service';
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
import { CurrentUser } from '../../common/decorators/current-user.decorator';

@Controller('reports')
@UseGuards(JwtAuthGuard)
export class ReportsController {
  constructor(private readonly reportsService: ReportsService) {}

  @Get('revenue')
  getRevenueSummary(
    @CurrentUser() user: { id: number; email: string },
    @Query('year') year: string,
  ) {
    const y = year ? Number(year) : new Date().getFullYear();
    return this.reportsService.getRevenueSummary(user.id, y);
  }

  @Get('expenses')
  getExpenseSummary(
    @CurrentUser() user: { id: number; email: string },
    @Query('year') year: string,
  ) {
    const y = year ? Number(year) : new Date().getFullYear();
    return this.reportsService.getExpenseSummary(user.id, y);
  }

  @Get('profit-loss')
  getProfitLoss(
    @CurrentUser() user: { id: number; email: string },
    @Query('year') year: string,
  ) {
    const y = year ? Number(year) : new Date().getFullYear();
    return this.reportsService.getProfitLoss(user.id, y);
  }

  @Get('tax')
  getTaxSummary(
    @CurrentUser() user: { id: number; email: string },
    @Query('year') year: string,
  ) {
    const y = year ? Number(year) : new Date().getFullYear();
    return this.reportsService.getTaxSummary(user.id, y);
  }

  @Get('annual')
  getAnnualReport(
    @CurrentUser() user: { id: number; email: string },
    @Query('year') year: string,
  ) {
    const y = year ? Number(year) : new Date().getFullYear();
    return this.reportsService.getAnnualReport(user.id, y);
  }
}
