| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using Domain.Entities.Wallets.ValueObject;
- ///<summary>
- /// 어떤 잔액부터 소진할지 정의
- ///</summary>
- namespace Domain.Entities.Wallets.Policy;
- public static class SpendPolicy
- {
- public static readonly WalletBalanceType[] DefaultSpendOrder =
- {
- WalletBalanceType.PgCharged,
- WalletBalanceType.Deposit,
- WalletBalanceType.Reward,
- WalletBalanceType.Adjusted,
- WalletBalanceType.Donation,
- WalletBalanceType.Airdrop
- };
- // 상점 결제 전용 차감 순서 = 캐시(충전 재화)만. (d4 M0 재화 정합성 — 캐시전용)
- // 토큰(Reward/Airdrop)은 활동 보상·모의투자 전용이므로 상점 구매에 사용 불가.
- // Adjusted(운영 조정)는 상점 결제 대상이 아니며, Deposit(예치금)까지만 캐시로 인정한다.
- public static readonly WalletBalanceType[] StoreOrderSpendOrder =
- {
- WalletBalanceType.PgCharged, // 1
- WalletBalanceType.Deposit // 2
- };
- // 응원(Cheer) 발신 차감 순서 (D3 M4). 캐시 먼저(PgCharged→Deposit) 소진 후 토큰(Reward→Airdrop).
- // 상점과 달리 토큰 사용을 허용한다 — 응원은 활동 적립분(토큰)으로도 보낼 수 있는 팁 성격(Twitch Bits).
- // Adjusted(운영 조정)·Donation(비활성)·Locked(출금 전용)은 제외.
- public static readonly WalletBalanceType[] CheerSpendOrder =
- {
- WalletBalanceType.PgCharged, // 1 캐시(충전)
- WalletBalanceType.Deposit, // 2 캐시(예치)
- WalletBalanceType.Reward, // 3 토큰(활동 적립)
- WalletBalanceType.Airdrop // 4 토큰(에어드랍)
- };
- }
|