import { Controller, Get, Query, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { ApiBearerAuth, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger';
import type { LoginUserInfo } from 'src/auth/dto/login.dto';
import { GetUser } from 'src/auth/get-user.decorator';
import { MobileReportesService } from './mobile-reportes.service';

@ApiTags('Mobile · Reportes')
@ApiBearerAuth()
@UseGuards(AuthGuard('jwt'))
@Controller({ path: 'mobile/reportes', version: '1' })
export class MobileReportesController {
  constructor(private readonly reportes: MobileReportesService) {}

  @Get('resumen-dia')
  @ApiOperation({ summary: 'Resumen del día del cobrador (recaudado, desglose, recibos)' })
  @ApiQuery({ name: 'fecha', required: false, description: 'YYYY-MM-DD (default: hoy)' })
  resumenDia(@GetUser() user: LoginUserInfo, @Query('fecha') fecha?: string) {
    return this.reportes.resumenDia(user.empresa_id, user.id, fecha);
  }

  @Get('cartera-vencida')
  @ApiOperation({ summary: 'Cartera vencida del cobrador' })
  carteraVencida(@GetUser() user: LoginUserInfo) {
    return this.reportes.carteraVencida(user.empresa_id, user.id);
  }
}
