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

52 lines
2.3 KiB
TypeScript

/**
* AsignacionService - Servicio de asignaciones de vivienda INFONAVIT
*
* Gestión de asignaciones de vivienda a derechohabientes.
*
* @module Infonavit
*/
import { Repository } from 'typeorm';
import { AsignacionVivienda, AsignacionStatus } from '../entities/asignacion-vivienda.entity';
import { OfertaVivienda } from '../entities/oferta-vivienda.entity';
import { Derechohabiente } from '../entities/derechohabiente.entity';
import { ServiceContext, PaginatedResult } from '../../../shared/services/base.service';
export interface CreateAsignacionDto {
ofertaId: string;
derechohabienteId: string;
assignmentDate: Date;
creditAmount: number;
subsidyAmount?: number;
downPayment?: number;
notes?: string;
}
export interface FormalizeDto {
formalizationDate: Date;
notaryName: string;
notaryNumber: string;
deedNumber: string;
deedDate: Date;
}
export interface AsignacionFilters {
registroId?: string;
ofertaId?: string;
derechohabienteId?: string;
status?: AsignacionStatus;
dateFrom?: Date;
dateTo?: Date;
}
export declare class AsignacionService {
private readonly asignacionRepository;
private readonly ofertaRepository;
private readonly derechohabienteRepository;
constructor(asignacionRepository: Repository<AsignacionVivienda>, ofertaRepository: Repository<OfertaVivienda>, derechohabienteRepository: Repository<Derechohabiente>);
private generateAssignmentNumber;
findWithFilters(ctx: ServiceContext, filters?: AsignacionFilters, page?: number, limit?: number): Promise<PaginatedResult<AsignacionVivienda>>;
findById(ctx: ServiceContext, id: string): Promise<AsignacionVivienda | null>;
findWithDetails(ctx: ServiceContext, id: string): Promise<AsignacionVivienda | null>;
create(ctx: ServiceContext, dto: CreateAsignacionDto): Promise<AsignacionVivienda>;
approve(ctx: ServiceContext, id: string): Promise<AsignacionVivienda | null>;
formalize(ctx: ServiceContext, id: string, dto: FormalizeDto): Promise<AsignacionVivienda | null>;
deliver(ctx: ServiceContext, id: string, deliveryDate: Date): Promise<AsignacionVivienda | null>;
cancel(ctx: ServiceContext, id: string, reason: string): Promise<AsignacionVivienda | null>;
}
//# sourceMappingURL=asignacion.service.d.ts.map