src/Entity/PointsCatalog/CatalogPointConfig.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Entity\PointsCatalog;
  3. use App\Entity\AbstractBase;
  4. use App\Entity\Garages\Garage;
  5. use App\Entity\Interfaces\SiteInterface;
  6. use App\Entity\MiniAbstractBase;
  7. use App\Entity\Traits\SiteTrait;
  8. use App\Repository\PointsCatalog\CatalogPointConfigRepository;
  9. use DateTime;
  10. use DateTimeInterface;
  11. use Doctrine\ORM\Mapping as ORM;
  12. use Gedmo\Mapping\Annotation as Gedmo;
  13. /**
  14.  * @ORM\Table(name="vulco_points_catalog_config", indexes={@ORM\Index(name="catalog_point_config_site_idx", columns={"site"})})
  15.  * @ORM\Entity(repositoryClass=CatalogPointConfigRepository::class)
  16.  * @Gedmo\SoftDeleteable(fieldName="removedAt", timeAware=false)
  17.  */
  18. class CatalogPointConfig extends AbstractBase implements SiteInterface
  19. {
  20.     use SiteTrait;
  21.     /**
  22.      * @ORM\Column(type="date", nullable=false)
  23.      */
  24.     private DateTimeInterface $expirationDate;
  25.     /**
  26.      * @ORM\Column(type="float", nullable=false, options={"default": 4800})
  27.      */
  28.     private float $pointsLimit Garage::DEFAULT_POINTS_LIMIT;
  29.     public function __construct(string $siteDateTimeInterface $expirationDate)
  30.     {
  31.         $this->site $site;
  32.         $this->expirationDate $expirationDate;
  33.     }
  34.     public function getExpirationDate(): DateTimeInterface
  35.     {
  36.         return $this->expirationDate;
  37.     }
  38.     public function setExpirationDate(DateTimeInterface $expirationDate): self
  39.     {
  40.         $this->expirationDate $expirationDate;
  41.         return $this;
  42.     }
  43.     public function getExpirationDatePastYearLastDate(): DateTime
  44.     {
  45.         $expirationDate = clone $this->expirationDate;
  46.         return DateTime::createFromFormat(MiniAbstractBase::DEFAULT_DATE_DATABASE_FORMAT$expirationDate->format('Y').'-12-31')->modify('-1 year'); // expiration date year - 1
  47.     }
  48.     public function getExpirationDatePastYear(): string
  49.     {
  50.         $expirationDate = clone $this->expirationDate;
  51.         $expirationDate $expirationDate->modify('-1 year');
  52.         return $expirationDate->format('Y');
  53.     }
  54.     public function update(string $siteDateTimeInterface $expirationDatefloat $pointsLimit): void
  55.     {
  56.         $this->site $site;
  57.         $this->expirationDate = clone $expirationDate;
  58.         $this->pointsLimit $pointsLimit;
  59.     }
  60.     public function getPointsLimit(): float
  61.     {
  62.         return $this->pointsLimit;
  63.     }
  64.     public function setPointsLimit(float $pointsLimit): self
  65.     {
  66.         $this->pointsLimit $pointsLimit;
  67.         return $this;
  68.     }
  69. }