/** * 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, ofertaRepository: Repository, derechohabienteRepository: Repository); private generateAssignmentNumber; findWithFilters(ctx: ServiceContext, filters?: AsignacionFilters, page?: number, limit?: number): Promise>; findById(ctx: ServiceContext, id: string): Promise; findWithDetails(ctx: ServiceContext, id: string): Promise; create(ctx: ServiceContext, dto: CreateAsignacionDto): Promise; approve(ctx: ServiceContext, id: string): Promise; formalize(ctx: ServiceContext, id: string, dto: FormalizeDto): Promise; deliver(ctx: ServiceContext, id: string, deliveryDate: Date): Promise; cancel(ctx: ServiceContext, id: string, reason: string): Promise; } //# sourceMappingURL=asignacion.service.d.ts.map