<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* AddressBook
*
* @ORM\Table(name="address_book", indexes={@ORM\Index(name="idx_address_book_customers_id", columns={"customers_id"})})
* @ORM\Entity(repositoryClass="App\Repository\AddressRepository")
*/
class Address
{
/**
* @var int
*
* @ORM\Column(name="address_book_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Customer")
* @ORM\JoinColumn(name="customers_id", referencedColumnName="customers_id", onDelete="CASCADE")
*/
private $customer;
/**
* @var string
*
* @ORM\Column(name="entry_gender", type="string", length=1, nullable=false, options={"fixed"=true})
*/
private $gender = '';
/**
* @var string|null
*
* @ORM\Column(name="entry_company", type="string", length=64, nullable=true)
*/
private $company;
/**
* @var string|null
*
* @ORM\Column(name="entry_company_tax_id", type="string", length=32, nullable=true)
*/
private $companyTaxId;
/**
* @var string
*
* @ORM\Column(name="entry_firstname", type="string", length=32, nullable=false)
*/
private $firstname = '';
/**
* @var string
*
* @ORM\Column(name="entry_lastname", type="string", length=32, nullable=false)
*/
private $lastname = '';
/**
* @var string
*
* @ORM\Column(name="entry_street_address", type="string", length=64, nullable=false)
*/
private $streetAddress = '';
/**
* @var string|null
*
* @ORM\Column(name="entry_suburb", type="string", length=32, nullable=true)
*/
private $suburb;
/**
* @var string
*
* @ORM\Column(name="entry_postcode", type="string", length=10, nullable=false)
*/
private $postcode = '';
/**
* @var string
*
* @ORM\Column(name="entry_city", type="string", length=32, nullable=false)
*/
private $city = '';
/**
* @var string|null
*
* @ORM\Column(name="entry_state", type="string", length=32, nullable=true)
*/
private $state;
/**
* @var string|null
*
* @ORM\Column(name="entry_phone", type="string", length=32, nullable=true)
*/
private $phone;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Country")
* @ORM\JoinColumn(name="entry_country_id", referencedColumnName="countries_id")
*/
private $country;
/**
* @var string|null
*
* @ORM\Column(name="entry_email", type="string", length=100, nullable=true)
*/
private $email;
/**
* @ORM\Column(name="entry_zone_id", type="integer", nullable=false)
*/
private $zoneId = '0';
public function getId() {
return $this->id;
}
public function getCustomer() {
return $this->customer;
}
public function getGender() {
return $this->gender;
}
public function getCompany() {
return $this->company;
}
public function getCompanyTaxId() {
return $this->companyTaxId;
}
public function getFirstname() {
return $this->firstname;
}
public function getLastname() {
return $this->lastname;
}
public function getFullname() {
return $this->getGender().' '.$this->getFirstname().' '.$this->getLastname();
}
public function getAddress1() {
return $this->getStreetAddress();
}
public function getStreetAddress() {
return $this->streetAddress;
}
public function getAddress2() {
return $this->getSuburb();
}
public function getSuburb() {
return $this->suburb;
}
public function getPostcode() {
return $this->postcode;
}
public function getCity() {
return $this->city;
}
public function getState() {
return $this->state;
}
public function getCountry() {
return $this->country;
}
public function getZoneId() {
return $this->zoneId;
}
public function getPhone(): ?string {
return $this->phone;
}
public function getEmail(): ?string {
return $this->email;
}
public function setCustomer($customer) {
$this->customer = $customer;
}
public function setGender($gender) {
$this->gender = $gender;
}
public function setCompany($company) {
$this->company = $company;
}
public function setCompanyTaxId($companyTaxId) {
$this->companyTaxId = $companyTaxId;
}
public function setFirstname($firstname) {
$this->firstname = $firstname;
}
public function setLastname($lastname) {
$this->lastname = $lastname;
}
public function setAddress1($streetAddress) {
$this->setStreetAddress($streetAddress);
}
public function setStreetAddress($streetAddress) {
$this->streetAddress = $streetAddress;
}
public function setAddress2($streetAddress) {
$this->setSuburb($streetAddress);
}
public function setSuburb($suburb) {
$this->suburb = $suburb;
}
public function setPostcode($postcode) {
$this->postcode = $postcode;
}
public function setCity($city) {
$this->city = $city;
}
public function setState($state) {
$this->state = $state;
}
public function setCountry($country) {
$this->country = $country;
}
public function setZoneId($zoneId) {
$this->zoneId = $zoneId;
}
public function setPhone(?string $phone): void {
$this->phone = $phone;
}
public function setEmail(?string $email): void {
$this->email = $email;
}
public function toArray() : array{
$output = [
'id' => $this->getId(),
'gender' => $this->getGender(),
'firstname' => $this->getFirstname(),
'lastname' => $this->getLastname(),
'company' => $this->getCompany(),
'streetAddress' => $this->getStreetAddress(),
'suburb' => $this->getSuburb(),
'city' => $this->getCity(),
'postcode' => $this->getPostcode(),
'state' => $this->getState(),
'country' => $this->getCountry()->toArray(),
'phone' => $this->getPhone(),
'email' => $this->getEmail(),
// 'customer' => $this->getCustomer()->toArray()
];
return $output;
}
}