1
0
mirror of synced 2024-12-14 23:26:04 +03:00
doctrine2/tests/Doctrine/Tests/Models/ECommerce/ECommerceCart.php

92 lines
2.1 KiB
PHP
Raw Normal View History

2009-07-01 13:18:08 +04:00
<?php
namespace Doctrine\Tests\Models\ECommerce;
use Doctrine\Common\Collections\ArrayCollection;
2009-07-01 13:18:08 +04:00
/**
* ECommerceCart
* Represents a typical cart of a shopping application.
*
* @author Giorgio Sironi
* @Entity
* @Table(name="ecommerce_carts")
*/
class ECommerceCart
{
/**
* @Column(type="integer")
* @Id
* @GeneratedValue(strategy="AUTO")
*/
private $id;
2009-07-01 13:18:08 +04:00
/**
2009-07-02 11:47:24 +04:00
* @Column(type="string", length=50, nullable=true)
2009-07-01 13:18:08 +04:00
*/
private $payment;
2009-07-01 13:18:08 +04:00
/**
* @OneToOne(targetEntity="ECommerceCustomer")
* @JoinColumn(name="customer_id", referencedColumnName="id")
*/
private $customer;
/**
* @ManyToMany(targetEntity="ECommerceProduct", cascade={"persist"})
* @JoinTable(name="ecommerce_carts_products",
joinColumns={@JoinColumn(name="cart_id", referencedColumnName="id")},
inverseJoinColumns={@JoinColumn(name="product_id", referencedColumnName="id")})
*/
private $products;
2009-07-02 11:47:24 +04:00
public function __construct()
{
$this->products = new ArrayCollection;
2009-07-02 11:47:24 +04:00
}
public function getId() {
return $this->id;
}
public function getPayment() {
return $this->payment;
}
public function setPayment($payment) {
$this->payment = $payment;
}
public function setCustomer(ECommerceCustomer $customer) {
if ($this->customer !== $customer) {
$this->customer = $customer;
$customer->setCart($this);
}
}
public function removeCustomer() {
if ($this->customer !== null) {
$customer = $this->customer;
$this->customer = null;
2009-07-01 17:08:24 +04:00
$customer->removeCart();
}
}
public function getCustomer() {
return $this->customer;
}
2009-07-02 11:47:24 +04:00
public function getProducts()
{
return $this->products;
}
public function addProduct(ECommerceProduct $product) {
$this->products[] = $product;
}
public function removeProduct(ECommerceProduct $product) {
return $this->products->removeElement($product);
}
2009-07-01 13:18:08 +04:00
}