erp-construccion-backend/dist/modules/infonavit/services/derechohabiente.service.d.ts

60 lines
2.5 KiB
TypeScript

/**
* DerechohabienteService - Servicio de gestión de derechohabientes INFONAVIT
*
* Gestión de trabajadores con crédito INFONAVIT.
*
* @module Infonavit
*/
import { Repository } from 'typeorm';
import { Derechohabiente, DerechohabienteStatus } from '../entities/derechohabiente.entity';
import { HistoricoPuntos } from '../entities/historico-puntos.entity';
import { ServiceContext, PaginatedResult } from '../../../shared/services/base.service';
export interface CreateDerechohabienteDto {
nss: string;
curp: string;
rfc?: string;
firstName: string;
lastName: string;
secondLastName?: string;
phone?: string;
email?: string;
address?: string;
creditPoints?: number;
notes?: string;
}
export interface UpdateDerechohabienteDto {
phone?: string;
email?: string;
address?: string;
notes?: string;
}
export interface PrecalificationDto {
precalificationDate: Date;
precalificationAmount: number;
creditType: string;
creditPoints: number;
}
export interface DerechohabienteFilters {
nss?: string;
curp?: string;
status?: DerechohabienteStatus;
search?: string;
minPoints?: number;
}
export declare class DerechohabienteService {
private readonly derechohabienteRepository;
private readonly historicoPuntosRepository;
constructor(derechohabienteRepository: Repository<Derechohabiente>, historicoPuntosRepository: Repository<HistoricoPuntos>);
findWithFilters(ctx: ServiceContext, filters?: DerechohabienteFilters, page?: number, limit?: number): Promise<PaginatedResult<Derechohabiente>>;
findById(ctx: ServiceContext, id: string): Promise<Derechohabiente | null>;
findByNss(ctx: ServiceContext, nss: string): Promise<Derechohabiente | null>;
findWithDetails(ctx: ServiceContext, id: string): Promise<Derechohabiente | null>;
create(ctx: ServiceContext, dto: CreateDerechohabienteDto): Promise<Derechohabiente>;
update(ctx: ServiceContext, id: string, dto: UpdateDerechohabienteDto): Promise<Derechohabiente | null>;
updatePoints(ctx: ServiceContext, id: string, newPoints: number, source: string, notes?: string): Promise<Derechohabiente | null>;
precalify(ctx: ServiceContext, id: string, dto: PrecalificationDto): Promise<Derechohabiente | null>;
qualify(ctx: ServiceContext, id: string): Promise<Derechohabiente | null>;
softDelete(ctx: ServiceContext, id: string): Promise<boolean>;
getPointsHistory(ctx: ServiceContext, derechohabienteId: string): Promise<HistoricoPuntos[]>;
}
//# sourceMappingURL=derechohabiente.service.d.ts.map