import { Expose, Transform } from 'class-transformer';
import { ProcessedByEntity } from './money-corp.entity';

/**
 * 환불 관리 Entity
 */
export class MoneyRefundEntity {
  @Expose()
  mrfId!: number;

  @Expose()
  memId!: number;

  @Expose()
  mrfStatus!: string;

  @Expose()
  mrfAmount!: number;

  @Expose()
  mrfFee!: number;

  @Expose()
  mrfActualAmount!: number;

  @Expose()
  mrfBankName!: string;

  @Expose()
  mrfAccountNumber!: string;

  @Expose()
  mrfAccountHolder!: string;

  @Expose()
  mrfReason!: string;

  @Expose()
  mrfAdminMemo!: string | null;

  @Expose()
  mrfProcessedAt!: string | null;

  @Expose()
  mrfCreatedAt!: string;

  // 조인된 데이터
  @Expose()
  memLoginId?: string;

  @Expose()
  @Transform(({ value }) => value || '')
  memName?: string;

  @Expose()
  memType?: string;

  @Expose()
  sagName?: string;

  @Expose()
  sacName?: string;

  @Expose()
  agcCorporateName?: string;

  @Expose()
  memMoney?: number;

  @Expose()
  memPurchaseMoney?: number;

  @Expose()
  memAgencyMoney?: number;

  //* 환불 목록에는 처리자 칸 자체가 없었다 — 조인부터 새로 냈다(계획 M7 Task 7).
  @Expose()
  processedBy?: ProcessedByEntity;
}
