feat: suporte a múltiplos sellerId e melhorias no código

- Adicionado suporte para sellerId como string separada por vírgula (ex: 270,431)
- Melhorias em deb.repository: tipagem e documentação
- Melhorias em deb.service: remoção de validação redundante
- Melhorias em deb.controller: remoção de try/catch duplicado
- Melhorias em orders.service: early returns e tipagem melhorada
- Aplicado early returns para reduzir aninhamento
- Melhorias de tipagem em todos os métodos
This commit is contained in:
JurTI-BR
2025-11-03 18:05:14 -03:00
parent 3849fa1c4e
commit 25975fc0b0
17 changed files with 291 additions and 300 deletions

View File

@@ -1,34 +1,26 @@
import { Injectable, HttpException, HttpStatus } from '@nestjs/common';
import { Injectable } from '@nestjs/common';
import { DebRepository } from '../repositories/deb.repository';
import { DebDto } from '../dto/DebDto';
@Injectable()
export class DebService {
constructor(
private readonly debRepository: DebRepository,
) {}
constructor(
private readonly debRepository: DebRepository,
) {}
/**
* Busca débitos por CPF ou CGCENT
* @param cpfCgcent - CPF ou CGCENT do cliente
* @param matricula - Matrícula do funcionário (opcional)
* @param cobranca - Código de cobrança (opcional)
* @returns Lista de débitos do cliente
*/
async findByCpfCgcent(cpfCgcent: string, matricula?: number, cobranca?: string): Promise<DebDto[]> {
if (!cpfCgcent) {
throw new HttpException('CPF/CGCENT é obrigatório', HttpStatus.BAD_REQUEST);
}
try {
const result = await this.debRepository.findByCpfCgcent(cpfCgcent, matricula, cobranca);
return result as DebDto[];
} catch (error) {
throw new HttpException(
error.message || 'Erro ao buscar débitos',
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
);
}
}
/**
* Busca débitos por CPF ou CGCENT
* @param cpfCgcent - CPF ou CGCENT do cliente (validado pelo DTO)
* @param matricula - Matrícula do funcionário (opcional)
* @param cobranca - Código de cobrança (opcional)
* @returns Lista de débitos do cliente
* @throws {Error} Erro ao buscar débitos no banco de dados
*/
async findByCpfCgcent(
cpfCgcent: string,
matricula?: number,
cobranca?: string,
): Promise<DebDto[]> {
return await this.debRepository.findByCpfCgcent(cpfCgcent, matricula, cobranca);
}
}