Descrição: Implementar a rota principal, por exemplo, GET /api/v1/reports/transactions/export.
Validação: O endpoint deve receber start_date e end_date via query params. Implementar uma regra que retorne o HTTP Status 400 Bad Request caso o intervalo entre as datas seja superior a 31 dias ou se os parâmetros estiverem ausentes.
Lógica de Desvio (Sync/Async): O controlador deve fazer um COUNT prévio no banco de dados usando o filtro de datas. Se o número de registros for até 5.000, chama o serviço de geração síncrona. Se passar de 5.000, enfileira o processamento em background e retorna um HTTP Status 202 Accepted com uma mensagem avisando que o arquivo será enviado por e-mail.
Descrição: Implementar a rota principal, por exemplo,
GET /api/v1/reports/transactions/export.Validação: O endpoint deve receber start_date e end_date via query params. Implementar uma regra que retorne o
HTTP Status 400 Bad Requestcaso o intervalo entre as datas seja superior a 31 dias ou se os parâmetros estiverem ausentes.Lógica de Desvio (Sync/Async): O controlador deve fazer um COUNT prévio no banco de dados usando o filtro de datas. Se o número de registros for até 5.000, chama o serviço de geração síncrona. Se passar de 5.000, enfileira o processamento em background e retorna um HTTP Status 202 Accepted com uma mensagem avisando que o arquivo será enviado por e-mail.