// Path: src/main/java/com/efoodstore/model/Customer.java
// @Entity
// public class Customer implements Serializable{
// 
//     private static final long serialVersionUID = 5140900014886997914L;
// 
//     @Id
//     @GeneratedValue
//     private int customerId;
// 
//     @NotEmpty (message = "The customer name must not be null.")
//     private String customerName;
// 
//     @NotEmpty (message = "The customer email must not be null.")
//     private String customerEmail;
//     private String customerPhone;
// 
//     @NotEmpty (message = "The customer username must not be null.")
//     private String username;
// 
//     @NotEmpty (message = "The customer password must not be null.")
//     private String password;
// 
//     private boolean enabled;
// 
//     @OneToOne
//     @JoinColumn(name="billingAddressId")
//     private BillingAddress billingAddress;
// 
//     @OneToOne
//     @JoinColumn(name="shippingAddressId")
//     private ShippingAddress shippingAddress;
// 
//     @OneToOne
//     @JoinColumn(name = "cartId")
//     @JsonIgnore
//     private Cart cart;
// 
//     public int getCustomerId() {
//         return customerId;
//     }
// 
//     public void setCustomerId(int customerId) {
//         this.customerId = customerId;
//     }
// 
//     public String getCustomerName() {
//         return customerName;
//     }
// 
//     public void setCustomerName(String customerName) {
//         this.customerName = customerName;
//     }
// 
//     public String getCustomerEmail() {
//         return customerEmail;
//     }
// 
//     public void setCustomerEmail(String customerEmail) {
//         this.customerEmail = customerEmail;
//     }
// 
//     public String getCustomerPhone() {
//         return customerPhone;
//     }
// 
//     public void setCustomerPhone(String customerPhone) {
//         this.customerPhone = customerPhone;
//     }
// 
//     public String getUsername() {
//         return username;
//     }
// 
//     public void setUsername(String username) {
//         this.username = username;
//     }
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// 
//     public boolean isEnabled() {
//         return enabled;
//     }
// 
//     public void setEnabled(boolean enabled) {
//         this.enabled = enabled;
//     }
// 
//     public BillingAddress getBillingAddress() {
//         return billingAddress;
//     }
// 
//     public void setBillingAddress(BillingAddress billingAddress) {
//         this.billingAddress = billingAddress;
//     }
// 
//     public ShippingAddress getShippingAddress() {
//         return shippingAddress;
//     }
// 
//     public void setShippingAddress(ShippingAddress shippingAddress) {
//         this.shippingAddress = shippingAddress;
//     }
// 
//     public Cart getCart() {
//         return cart;
//     }
// 
//     public void setCart(Cart cart) {
//         this.cart = cart;
//     }
// }
// 
// Path: src/main/java/com/efoodstore/service/CustomerService.java
// public interface CustomerService {
// 
//     void addCustomer (Customer customer);
// 
//     Customer getCustomerById (int customerId);
// 
//     List<Customer> getAllCustomers();
// 
//     Customer getCustomerByUsername (String username);
// }


import com.efoodstore.model.Customer;
import com.efoodstore.service.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.web.bind.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
package com.efoodstore.controller;


@Controller
@RequestMapping("/customer/cart")
public class CartController {

    @Autowired
// Path: src/main/java/com/efoodstore/model/Customer.java
// @Entity
// public class Customer implements Serializable{
// 
//     private static final long serialVersionUID = 5140900014886997914L;
// 
//     @Id
//     @GeneratedValue
//     private int customerId;
// 
//     @NotEmpty (message = "The customer name must not be null.")
//     private String customerName;
// 
//     @NotEmpty (message = "The customer email must not be null.")
//     private String customerEmail;
//     private String customerPhone;
// 
//     @NotEmpty (message = "The customer username must not be null.")
//     private String username;
// 
//     @NotEmpty (message = "The customer password must not be null.")
//     private String password;
// 
//     private boolean enabled;
// 
//     @OneToOne
//     @JoinColumn(name="billingAddressId")
//     private BillingAddress billingAddress;
// 
//     @OneToOne
//     @JoinColumn(name="shippingAddressId")
//     private ShippingAddress shippingAddress;
// 
//     @OneToOne
//     @JoinColumn(name = "cartId")
//     @JsonIgnore
//     private Cart cart;
// 
//     public int getCustomerId() {
//         return customerId;
//     }
// 
//     public void setCustomerId(int customerId) {
//         this.customerId = customerId;
//     }
// 
//     public String getCustomerName() {
//         return customerName;
//     }
// 
//     public void setCustomerName(String customerName) {
//         this.customerName = customerName;
//     }
// 
//     public String getCustomerEmail() {
//         return customerEmail;
//     }
// 
//     public void setCustomerEmail(String customerEmail) {
//         this.customerEmail = customerEmail;
//     }
// 
//     public String getCustomerPhone() {
//         return customerPhone;
//     }
// 
//     public void setCustomerPhone(String customerPhone) {
//         this.customerPhone = customerPhone;
//     }
// 
//     public String getUsername() {
//         return username;
//     }
// 
//     public void setUsername(String username) {
//         this.username = username;
//     }
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// 
//     public boolean isEnabled() {
//         return enabled;
//     }
// 
//     public void setEnabled(boolean enabled) {
//         this.enabled = enabled;
//     }
// 
//     public BillingAddress getBillingAddress() {
//         return billingAddress;
//     }
// 
//     public void setBillingAddress(BillingAddress billingAddress) {
//         this.billingAddress = billingAddress;
//     }
// 
//     public ShippingAddress getShippingAddress() {
//         return shippingAddress;
//     }
// 
//     public void setShippingAddress(ShippingAddress shippingAddress) {
//         this.shippingAddress = shippingAddress;
//     }
// 
//     public Cart getCart() {
//         return cart;
//     }
// 
//     public void setCart(Cart cart) {
//         this.cart = cart;
//     }
// }
// 
// Path: src/main/java/com/efoodstore/service/CustomerService.java
// public interface CustomerService {
// 
//     void addCustomer (Customer customer);
// 
//     Customer getCustomerById (int customerId);
// 
//     List<Customer> getAllCustomers();
// 
//     Customer getCustomerByUsername (String username);
// }


// Path: src/main/java/com/efoodstore/controller/CartController.java
import com.efoodstore.model.Customer;
import com.efoodstore.service.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.web.bind.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

package com.efoodstore.controller;


@Controller
@RequestMapping("/customer/cart")
public class CartController {

    @Autowired
    private CustomerService customerService;