OrderDTO (주문 정보 DTO)


@Getter
@Setter
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class OrderDTO {

    private int orderNo;                // 주문 번호 (PK)

    private String uid;                 // 주문자 아이디 (User.uid)

    private int orderTotalPrice;        // 최종 결제 금액(쿠폰·포인트·배송비 적용 후)
    private String orderAddr;           // 전체 배송지 주소 (receiverAddr1 + receiverAddr2)
    private String orderStatus;         // 주문 상태 (예: "입금대기", "결제완료", "배송중", "배송완료" 등)
    private LocalDateTime orderDate;    // 주문 일시
    private String orderSender;         // 보내는 사람 이름
    private String senderHp;            // 보내는 사람 연락처

    private String orderReceiver;       // 받는 사람 이름
    private String receiverZip;         // 받는 사람 우편번호
    private String receiverHp;          // 받는 사람 연락처
    private String orderContent;        // 배송 요청사항(예: “부재 시 경비실에 보관”)
    private String payment;             // 결제 수단(예: "신용카드", "카카오페이")
    private String paymentContent;      // 결제 상세 정보(예: 카드번호 마스킹)

    private int totalQuantity;          // 주문된 전체 상품 개수 합계
    private int originalTotalPrice;     // 상품 원가 합계(할인 전)
    private int shippingFee;            // 총 배송비
    private int totalDiscount;          // 총 할인액(상품 할인만)
    private int pointDiscount;          // 포인트 사용 금액
    private int couponDiscount;         // 쿠폰 할인 금액
    private int totalPoint;             // 적립될 총 포인트

    private int count;                  // 주문 아이템 개수 (관리자 페이지용)

    // 연관 DTO
    private UserDTO user;                       // 주문자 정보
    private DeliveryDTO delivery;               // 배송 관련 정보(추후 확장 가능)
    private OrderItemDTO orderItem;             // (단일) 주문 항목 정보(관리자 조회용)

    private String image;                       // 대표 이미지(주문 요약 화면용)

    // 주문에 포함된 모든 상품 목록
    private List<OrderItemDTO> orderItems;

    // “orderAddr”를 쪼갠 입력용 필드 (화면 폼 바인딩 시 사용)
    private String receiverAddr1;   // 기본 주소(예: “서울특별시 강남구 테헤란로 123”)
    private String receiverAddr2;   // 상세 주소(예: “101동 302호”)
}

설명