Cart 엔티티


@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString(exclude = "product")
@Builder
@Entity
@Table(name = "Cart")
public class Cart {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int cartNo; // 장바구니 고유 번호 (PK)

    // 다대일(Many-to-One) 관계: 여러 장바구니 항목은 하나의 사용자(User)에 속함
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "uid", nullable = false)
    private User user;

    // 다대일(Many-to-One) 관계: 여러 장바구니 항목은 하나의 상품(Product)에 속함
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "prodNo", nullable = false)
    private Product product;

    private int cartProdCount = 1;
    // “장바구니에 담은 상품 수량” (기본값 1)

    @CreationTimestamp
    private LocalDateTime cartProdDate;
    // “장바구니에 담은 일시”를 자동으로 저장

    // ——————————————
    // 옵션 정보: 최대 6개 옵션까지 지원
    // opt1 ~ opt6: 옵션명
    // opt1Cont ~ opt6Cont: 옵션별 선택 내용
    // (예: 색상, 사이즈 등)
    // ——————————————
    private String opt1;
    private String opt1Cont;

    private String opt2;
    private String opt2Cont;

    private String opt3;
    private String opt3Cont;

    private String opt4;
    private String opt4Cont;

    private String opt5;
    private String opt5Cont;

    private String opt6;
    private String opt6Cont;
}

설명

동작 흐름

  1. 장바구니 담기
  2. 기존 항목 조회
  3. 장바구니 조회
  4. 장바구니 삭제/수정