CouponCodeStatus.cs 974 B

12345678910111213141516
  1. namespace Domain.Entities.Store.ValueObject;
  2. /// <summary>
  3. /// 쿠폰 코드 풀의 코드 상태 머신.
  4. /// Available -> Reserved (결제 진행 중 사전 점유) -> Issued (결제 완료, 보관함 등록) -> Used (사용자가 사용 완료).
  5. /// 환불 시: Issued -> Available 재사용 가능. Used 상태에서는 환불 거부.
  6. /// 관리자 운영: Available / Issued -> Expired (관리자 일괄 만료). Expired -> Available(또는 Issued) 복귀 가능 (UsedAt null 한정).
  7. /// </summary>
  8. public enum CouponCodeStatus
  9. {
  10. Available = 1, // 미발급, 신규 점유 가능
  11. Reserved = 2, // 결제 진행 중 사전 점유 (rollback 시 Available 로 복귀)
  12. Issued = 3, // 결제 완료, 회원 보관함에 발급됨
  13. Used = 4, // 회원이 코드를 사용 완료 (게임에 입력) — 환불 불가
  14. Expired = 5 // 관리자가 일괄 만료 처리 (재고 폐기 또는 발급 코드 회수). 복귀 가능 (Used 외).
  15. }