import { ICollectionMoney } from './Common'; export declare enum DebtPaymentStatus { PENDING = "PENDING", CONFIRMED = "CONFIRMED", REJECTED = "REJECTED", REVERSED = "REVERSED" } export declare enum DebtPaymentMethod { CASH = "CASH", BANK_TRANSFER = "BANK_TRANSFER", CREDIT_CARD = "CREDIT_CARD", DEBIT_CARD = "DEBIT_CARD", DIRECT_DEBIT = "DIRECT_DEBIT", DIGITAL_WALLET = "DIGITAL_WALLET", CHECK = "CHECK", OTHER = "OTHER" } export interface IPaymentAllocation { debtId: string; installmentId?: string; principal: ICollectionMoney; compensatoryInterest?: ICollectionMoney; penaltyInterest?: ICollectionMoney; fees?: ICollectionMoney; taxes?: ICollectionMoney; discounts?: ICollectionMoney; total: ICollectionMoney; } export interface IPaymentAgentAttribution { userId: string; percentage: string; amount?: ICollectionMoney; commissionRuleId?: string; adjustedBy?: string; adjustedAt?: Date; adjustmentReason?: string; } export interface IDebtPayment { id: string; spaceId: string; portfolioId: string; contactId: string; paymentPlanId?: string; amount: ICollectionMoney; paidAt: Date; method: DebtPaymentMethod; status: DebtPaymentStatus; reference?: string; allocations: IPaymentAllocation[]; agentAttributions: IPaymentAgentAttribution[]; externalReferences?: { system: string; externalId: string; }[]; source?: string; idempotencyKey?: string; confirmedAt?: Date; confirmedBy?: string; createdAt: Date; createdBy: string; reversedByPaymentReversalId?: string; } export interface IDebtPaymentReversal { id: string; spaceId: string; paymentId: string; amount: ICollectionMoney; reason: string; allocations: IPaymentAllocation[]; reversedAt: Date; reversedBy: string; source?: string; idempotencyKey?: string; } export interface ICreateDebtPaymentDto { portfolioId: string; contactId: string; paymentPlanId?: string; amount: ICollectionMoney; paidAt: Date; method: DebtPaymentMethod; reference?: string; allocations: IPaymentAllocation[]; agentAttributions: IPaymentAgentAttribution[]; source?: string; idempotencyKey?: string; }