<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
/**
* @ORM\Entity(repositoryClass="App\Repository\ClientRepository")
* @ORM\Table(name="clients")
* @method string getUserIdentifier()
*/
class Client implements UserInterface, PasswordAuthenticatedUserInterface
{
const RESOURCE_KEY = 'clients';
public function __construct()
{
$this->transactions = new ArrayCollection();
$this->abonnement = null;
$this->cr_sdr = 0;
$this->cr_mijourne = 0;
$this->cr_journe = 0;
$this->cr_mois = 0;
}
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=100)
*/
public $nom;
/**
* @ORM\Column(type="string", length=100)
*/
public $prenom;
/**
* @ORM\Column(type="string", length=100)
*/
public $civ;
/**
* @ORM\Column(type="string", length=100)
*/
public $telephone;
/**
* @ORM\Column(type="string", length=100)
*/
public $adresse1;
/**
* @ORM\Column(type="string", length=100)
*/
public $adresse2;
/**
* @ORM\Column(type="string", length=100)
*/
public $ville;
/**
* @ORM\Column(type="string", length=100)
*/
public $region;
/**
* @ORM\Column(type="string", length=100)
*/
public $cp;
/**
* @ORM\Column(type="string", length=100)
*/
public $pays;
/**
* @ORM\Column(type="string", length=100)
*/
public $raison_social;
/**
* @ORM\Column(type="boolean", length=1)
*/
public $recevoir_offre;
/**
* @ORM\Column(type="string", length=180, unique=true)
*/
private $email;
/**
* @ORM\Column(type="string", length=255)
*/
public $password;
/**
* @ORM\Column(type="datetime")
*/
public $created;
/**
* @ORM\Column(type="datetime")
*/
public $changed;
/**
* @ORM\Column(type="integer", options={"default": 0})
*/
public $cr_sdr;
/**
* @ORM\Column(type="integer", options={"default": 0})
*/
public $cr_mijourne;
/**
* @ORM\Column(type="integer", options={"default": 0})
*/
public $cr_journe;
/**
* @ORM\Column(type="integer", options={"default": 0})
*/
public $cr_mois;
#[ORM\OneToMany(targetEntity: Transaction::class, mappedBy: 'client', cascade: ['persist', 'remove'])]
private $transactions;
/**
* @ORM\OneToOne(targetEntity=Abonnement::class, mappedBy="client")
*/
private ?Abonnement $abonnement = null;
/**
* @ORM\Column(type="string", length=100)
*/
public $email_facturation;
/**
* @ORM\Column(type="string", length=100)
*/
public $siret;
/**
* @ORM\Column(type="integer", options={"default": 0})
*/
public $tva;
/**
* @ORM\Column(type="integer", options={"default": 0})
*/
public $tva_applicable;
/**
* @ORM\Column(type="string", length=100)
*/
public $rib_etablissement;
/**
* @ORM\Column(type="string", length=100)
*/
public $rib_rice;
/**
* @ORM\Column(type="string", length=100)
*/
public $rib_guichet;
/**
* @ORM\Column(type="string", length=100)
*/
public $rib_iban;
/**
* @ORM\Column(type="string", length=100)
*/
public $rib_compte;
/**
* @ORM\Column(type="string", length=100)
*/
public $rib_bic;
/**
* @ORM\Column(type="string", length=100)
*/
public $domiciliation;
/**
* @ORM\Column(type="boolean")
*/
public $deleted;
private array $roles = [];
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $resetToken = null;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private ?\DateTimeInterface $resetTokenExpiresAt = null;
public function getFullName(): string
{
return $this->prenom . ' ' . $this->nom;
}
// Getter pour "nom"
public function getNom(): ?string
{
return $this->nom;
}
// Setter pour "nom"
public function setNom(string $nom): self
{
$this->nom = $nom;
return $this;
}
// Getter pour "prenom"
public function getPrenom(): ?string
{
return $this->prenom;
}
// Setter pour "prenom"
public function setPrenom(string $prenom): self
{
$this->prenom = $prenom;
return $this;
}
public function getCiv(): ?string
{
return $this->civ;
}
public function setCiv(string $civ): self
{
$this->civ = $civ;
return $this;
}
public function getCp(): ?string
{
return $this->cp;
}
public function setCp(string $cp): self
{
$this->cp = $cp;
return $this;
}
public function getTelephone(): ?string
{
return $this->telephone;
}
public function setTelephone(string $telephone): self
{
$this->telephone = $telephone;
return $this;
}
public function getAdresse1(): ?string
{
return $this->adresse1;
}
public function setAdresse1(string $adresse1): self
{
$this->adresse1 = $adresse1;
return $this;
}
public function getAdresse2(): ?string
{
return $this->adresse2;
}
public function setAdresse2(string $adresse2): self
{
$this->adresse2 = $adresse2;
return $this;
}
public function getVille(): ?string
{
return $this->ville;
}
public function setVille(string $ville): self
{
$this->ville = $ville;
return $this;
}
public function getRegion(): ?string
{
return $this->region;
}
public function setRegion(string $region): self
{
$this->region = $region;
return $this;
}
public function getPays(): ?string
{
return $this->pays;
}
public function setPays(string $pays): self
{
$this->pays = $pays;
return $this;
}
public function getRaisonSocial(): ?string
{
return $this->raison_social;
}
public function setRaisonSocial(string $raison_social): self
{
$this->raison_social = $raison_social;
return $this;
}
public function getRecevoirOffre(): ?string
{
return $this->recevoir_offre;
}
public function setRecevoirOffre(string $recevoir_offre): self
{
$this->recevoir_offre = $recevoir_offre;
return $this;
}
// Ajoutez des getters et setters pour les autres propriétés
public function getId(): ?int
{
return $this->id;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): self
{
$this->email = $email;
return $this;
}
public function getPassword(): ?string
{
return $this->password;
}
public function setPassword(string $password): self
{
$this->password = $password;
return $this;
}
public function getResetTokenExpiresAt(): ?\DateTimeInterface
{
return $this->resetTokenExpiresAt;
}
public function setResetTokenExpiresAt(?\DateTimeInterface $resetTokenExpiresAt): self
{
$this->resetTokenExpiresAt = $resetTokenExpiresAt;
return $this;
}
#[ORM\PrePersist]
public function setCreatedAt(): void
{
$this->created = new \DateTime();
}
#[ORM\PrePersist]
#[ORM\PreUpdate]
public function setUpdatedAt(): void
{
$this->changed = new \DateTime();
}
// Getters et setters
public function setCreated(): self
{
$this->created = new \DateTime();
return $this;
}
public function getCreated(): ?\DateTime
{
return $this->created;
}
public function setChanged(): self
{
$this->changed = new \DateTime();
return $this;
}
public function getChanged(): ?\DateTime
{
return $this->changed;
}
public function getRoles()
{
// TODO: Implement getRoles() method.
// Retourne un tableau contenant au moins ROLE_USER
$roles = $this->roles;
$roles[] = 'ROLE_USER';
return array_unique($roles); // Supprime les doublons
}
public function getResetToken(): ?string
{
return $this->resetToken;
}
public function setResetToken(?string $resetToken): self
{
$this->resetToken = $resetToken;
return $this;
}
public function getSalt()
{
// TODO: Implement getSalt() method.
}
public function eraseCredentials()
{
// TODO: Implement eraseCredentials() method.
}
/**
* A visual identifier that represents this user.
*
* @see UserInterface
*/
public function getUserIdentifier(): string
{
return (string)$this->email;
}
public function getUsername()
{
// TODO: Implement getUsername() method.
}
public function setCrSdr($cr_sdr) :self
{
$this->cr_sdr = $cr_sdr;
return $this;
}
public function getCrSdr(): int
{
return $this->cr_sdr ? $this->cr_sdr : 0;
}
public function setCrMijourne($cr_mijourne) :self
{
$this->cr_mijourne = $cr_mijourne;
return $this;
}
public function getCrMijourne(): int
{
return $this->cr_mijourne ? $this->cr_mijourne : 0;
}
public function setCrJourne($cr_journe) :self
{
$this->cr_journe = $cr_journe;
return $this;
}
public function getCrJourne(): int
{
return $this->cr_journe ? $this->cr_journe : 0;
}
public function setCrMois($cr_mois) :self
{
$this->cr_mois = $cr_mois;
return $this;
}
public function getCrMois(): int
{
return $this->cr_mois ? $this->cr_mois : 0;
}
public function getTransactions(): Collection
{
if(empty($this->transactions))
$this->transactions = new ArrayCollection();
return $this->transactions;
}
public function setTransactions($transactions): self
{
$this->transactions = $transactions;
return $this;
}
public function addTransaction(Transaction $transaction): self
{
if (!$this->transactions->contains($transaction)) {
$this->transactions[] = $transaction;
$transaction->setClient($this);
}
return $this;
}
public function removeTransaction(Transaction $transaction): self
{
if ($this->transactions->removeElement($transaction)) {
// Set the owning side to null (unless already changed)
if ($transaction->getClient() === $this) {
$transaction->setClient(null);
}
}
return $this;
}
public function setEmailFacturation($email_facturation): self
{
$this->email_facturation = $email_facturation;
return $this;
}
public function getEmailFacturation(): string
{
return $this->email_facturation;
}
public function setSiret($siret): self
{
$this->siret = $siret;
return $this;
}
public function getSiret(): string
{
return $this->siret;
}
public function setTva($tva): self
{
$this->tva = $tva;
return $this;
}
public function getTva(): int
{
return $this->tva;
}
public function setTvaApplicable($tva_applicable): self
{
$this->tva_applicable = $tva_applicable;
return $this;
}
public function getTvaApplicable(): int
{
return $this->tva_applicable;
}
public function setRibEtablissement($rib_etablissement): self
{
$this->rib_etablissement = $rib_etablissement;
return $this;
}
public function getRibEtablissement(): string
{
return $this->rib_etablissement;
}
public function setRibRice($rib_rice): self
{
$this->rib_rice = $rib_rice;
return $this;
}
public function getRibRice(): string
{
return $this->rib_rice;
}
public function setRibGuichet($rib_guichet): self
{
$this->rib_guichet = $rib_guichet;
return $this;
}
public function getRibGuichet(): string
{
return $this->rib_guichet;
}
public function setRibIban($rib_iban): self
{
$this->rib_iban = $rib_iban;
return $this;
}
public function getRibIban(): string
{
return $this->rib_iban;
}
public function setRibCompte($rib_compte): self
{
$this->rib_compte = $rib_compte;
return $this;
}
public function getRibCompte(): string
{
return $this->rib_compte;
}
public function setRibBic($rib_bic): self
{
$this->rib_bic = $rib_bic;
return $this;
}
public function getRibBic(): string
{
return $this->rib_bic;
}
public function setDomiciliation($domiciliation): self
{
$this->domiciliation = $domiciliation;
return $this;
}
public function getDomiciliation(): string
{
return $this->domiciliation;
}
public function getDeleted(): bool
{
return $this->deleted;
}
public function setDeleted($deleted): self
{
$this->deleted = $deleted;
return $this;
}
public function getAbonnement(): ?Abonnement
{
return $this->abonnement;
}
}