/**
 * Sales Return Accounting Port
 * Interface for accounting/journal entry integration
 */

export interface SalesReturnAccountingPort {
  /**
   * Record return in accounting system as credit note
   */
  recordReturnCreditNote(params: {
    returnId: string;
    invoiceId: string;
    customerId: string;
    amount: number;
    date: string;
    description: string;
  }): Promise<{
    journalEntryId: string;
    creditNoteId: string;
  }>;

  /**
   * Record refund in accounting system
   */
  recordRefund(params: {
    returnId: string;
    amount: number;
    date: string;
    refundMethod: string;
    description: string;
  }): Promise<{
    journalEntryId: string;
  }>;

  /**
   * Reverse journal entries if return is cancelled
   */
  reverseReturnEntries(params: {
    returnId: string;
    reason: string;
  }): Promise<boolean>;
}
