<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\Table(
* name="client_type",
* uniqueConstraints={
* @ORM\UniqueConstraint(name="UNIQ_CLIENT_TYPE_CODE", columns={"code"})
* },
* indexes={
* @ORM\Index(name="IDX_CLIENT_TYPE_ACTIVE", columns={"is_active"}),
* @ORM\Index(name="IDX_CLIENT_TYPE_PRIORITY", columns={"priority"})
* }
* )
*/
class ClientType
{
//public const TYPE_NOUVEAU_CLIENT = 'NEW';
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* @ORM\Column(type="string", length=50, unique=true)
*/
private string $code;
/**
* @ORM\Column(type="string", length=150)
*/
private string $label;
/**
* @ORM\Column(type="string", length=30)
*/
private string $color;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private ?string $minTotalAmount = null;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $minValidOrdersCount = null;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $minTotalOrdersCount;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $inactivityMonths = null;
/**
* @ORM\Column(type="integer")
*/
private int $priority = 0;
/**
* @ORM\Column(name="is_active", type="boolean")
*/
private bool $isActive = true;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $description = null;
/**
* @ORM\Column(type="string", length=3, options={"default": "and"})
*/
private $operator = 'and'; // Valeur par défaut : AND
/**
* @ORM\Column(type="float", nullable=true)
*/
private $minCancelRate;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $maxCancelRate;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $minReturnRate;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $maxReturnRate;
/* ==========================================================
Magic
========================================================== */
public function __toString(): string
{
return $this->label;
}
/* ==========================================================
Getters / Setters
========================================================== */
public function getId(): ?int
{
return $this->id;
}
public function getCode(): string
{
return $this->code;
}
public function setCode(string $code): self
{
$this->code = strtoupper(trim($code));
return $this;
}
public function getLabel(): string
{
return $this->label;
}
public function setLabel(string $label): self
{
$this->label = trim($label);
return $this;
}
public function getColor(): string
{
return $this->color;
}
public function setColor(string $color): self
{
$this->color = strtolower($color);
return $this;
}
public function getMinTotalAmount(): ?string
{
return $this->minTotalAmount;
}
public function setMinTotalAmount(?string $amount): self
{
$this->minTotalAmount = $amount;
return $this;
}
public function getminValidOrdersCount (): ?int
{
return $this->minValidOrdersCount ;
}
public function setminValidOrdersCount (?int $count): self
{
$this->minValidOrdersCount = $count;
return $this;
}
public function getMinTotalOrdersCount(): ?int
{
return $this->minTotalOrdersCount;
}
public function setMinTotalOrdersCount(?int $count): self
{
$this->minTotalOrdersCount = $count;
return $this;
}
public function getInactivityMonths(): ?int
{
return $this->inactivityMonths;
}
public function setInactivityMonths(?int $months): self
{
$this->inactivityMonths = $months;
return $this;
}
public function getPriority(): int
{
return $this->priority;
}
public function setPriority(int $priority): self
{
$this->priority = $priority;
return $this;
}
/**
* Getter booléen CORRECT
*/
public function isActive(): bool
{
return $this->isActive;
}
public function setIsActive(bool $active): self
{
$this->isActive = $active;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getOperator(): ?string
{
return $this->operator;
}
public function setOperator(string $operator): self
{
$this->operator = $operator;
return $this;
}
public function getMinCancelRate(): ?float { return $this->minCancelRate; }
public function setMinCancelRate(?float $minCancelRate): self { $this->minCancelRate = $minCancelRate; return $this; }
public function getMaxCancelRate(): ?float { return $this->maxCancelRate; }
public function setMaxCancelRate(?float $maxCancelRate): self { $this->maxCancelRate = $maxCancelRate; return $this; }
public function getMinReturnRate(): ?float { return $this->minReturnRate; }
public function setMinReturnRate(?float $minReturnRate): self { $this->minReturnRate = $minReturnRate; return $this; }
public function getMaxReturnRate(): ?float { return $this->maxReturnRate; }
public function setMaxReturnRate(?float $maxReturnRate): self { $this->maxReturnRate = $maxReturnRate; return $this; }
}