CouponDTO (쿠폰 데이터 전송 객체)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CouponDTO {
private long cno; // 쿠폰 고유 번호
private UserDTO user; // 쿠폰을 보유한 사용자 정보 DTO
private String issuedBy; // 발급처 (판매자명 또는 "관리자")
private String couponType; // 쿠폰 종류
// (예: 개별상품할인(판매자), 주문상품할인(관리자), 배송비 무료(관리자))
private String couponName; // 쿠폰 이름
private String benefit; // 혜택 표현 (예: "2,000원 할인", "15% 할인")
private LocalDate validFrom; // 사용 가능 시작일
private LocalDate validTo; // 사용 가능 만료일
private LocalDate regDate; // 쿠폰 발급일
private int validDaysAfterIssue; // 발급 후 사용 가능 기간(일 단위)
private String caution; // 유의사항
private String state; // 상태 (예: "발급중", "종료")
private int usedCount; // 해당 쿠폰이 사용된 횟수
private int issueCount; // 발급된 쿠폰 수량
private int minPrice; // 최소 사용 조건 금액
// 조회용: 사용자의 ID(화면에서 필터나 표시 등에 활용)
private String uid;
}
설명
- cno: 쿠폰을 식별하는 고유 번호
- user: 쿠폰을 보유한 회원 정보 (
UserDTO)
- issuedBy: 쿠폰 발급 주체 (판매자 또는 관리자)
- couponType: 쿠폰 적용 대상 및 성격
- 개별상품 할인(판매자 발급)
- 주문상품 할인(관리자 발급)
- 배송비 무료(관리자 발급)
- couponName: 화면에 표시될 쿠폰 이름
- benefit: 실제 할인 금액 또는 할인율을 문자열로 표현
- validFrom / validTo: 해당 기간 내에만 사용 가능
- regDate: 실제로 쿠폰이 발급된 날짜
- validDaysAfterIssue: 발급일 기준 유효 기간(예: 발급 후 7일 이내)
- caution: 사용자에게 안내할 유의사항(예: 특정 상품 제외 등)
- state: 쿠폰 상태 정보(예: “발급중”, “미사용”, “사용완료”, “종료” 등)
- usedCount / issueCount: 실제 사용된 횟수와 발급된 전체 수량을 추적
- minPrice: 쿠폰 사용 시 충족해야 하는 “최소 구매 금액” 조건
- uid: 화면 조회나 필터링 시 쉽게 사용할 수 있도록 회원 ID만 별도로 보관