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