52 lines
2.3 KiB
TypeScript
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
|