src/Entity/Payment.php line 40
<?php
namespace App\Entity;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
use App\Repository\PaymentRepository;
use ApiPlatform\Core\Annotation\ApiResource;
use Symfony\Bridge\Doctrine\IdGenerator\UlidGenerator;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Uid\Ulid;
use Gedmo\Mapping\Annotation as Gedmo;
#[ORM\Entity(repositoryClass: PaymentRepository::class)]
#[Gedmo\SoftDeleteable(fieldName: 'deletedAt', timeAware: false, hardDelete: true)]
#[ORM\HasLifecycleCallbacks()]
#[ApiResource(
attributes: ["security" => "is_granted('IS_AUTHENTICATED_FULLY')"],
itemOperations: [
'get' => [
'normalization_context' => [
'groups' => [
'read:payment:basic',
'read:familymember:basic',
]
]
],
],
collectionOperations: [
'get' => [
'normalization_context' => [
'groups' => [
'read:payment:basic',
'read:familymember:basic',
]
]
],
],
)]
class Payment
{
use Timestamps;
#[ORM\Id]
#[ORM\Column(type: 'ulid', unique: true)]
#[ORM\GeneratedValue(strategy: "CUSTOM")]
#[ORM\CustomIdGenerator(class: UlidGenerator::class)]
#[Groups(['read:payment:basic'])]
private ?Ulid $id = null;
#[ORM\Column(type: 'float')]
#[Groups(['read:payment:basic'])]
private $amount = 0;
#[ORM\Column(type: 'date')]
#[Groups(['read:payment:basic'])]
private $date;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
#[Groups(['read:payment:basic'])]
private $description;
#[ORM\ManyToOne(targetEntity: Subscription::class, inversedBy: 'payments')]
#[ORM\JoinColumn(nullable: false)]
#[Groups(['read:payment:basic'])]
private $subscription;
#[ORM\ManyToOne(targetEntity: FamilyMember::class, inversedBy: 'payments')]
#[Groups(['read:payment:basic'])]
private $payed_by;
#[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'payments')]
#[ORM\JoinColumn(nullable: false)]
private $created_by;
#[ORM\ManyToOne(targetEntity: Company::class, inversedBy: 'payments')]
#[ORM\JoinColumn(nullable: false)]
private $owner;
#[ORM\ManyToOne(targetEntity: Season::class, inversedBy: 'payments')]
#[ORM\JoinColumn(nullable: false)]
private $season;
public function __construct()
{
$this->date = new DateTime();
}
public function getId(): ?Ulid
{
return $this->id;
}
public function getAmount(): ?float
{
return $this->amount;
}
public function setAmount(float $amount): self
{
$this->amount = $amount;
return $this;
}
public function getDate(): ?\DateTimeInterface
{
return $this->date;
}
public function setDate(\DateTimeInterface $date): self
{
$this->date = $date;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(string $description): self
{
$this->description = $description;
return $this;
}
public function getSubscription(): ?Subscription
{
return $this->subscription;
}
public function setSubscription(?Subscription $subscription): self
{
$this->subscription = $subscription;
return $this;
}
public function getPayedBy(): ?FamilyMember
{
return $this->payed_by;
}
public function setPayedBy(?FamilyMember $payed_by): self
{
$this->payed_by = $payed_by;
return $this;
}
public function getCreatedBy(): ?User
{
return $this->created_by;
}
public function setCreatedBy(?User $created_by): self
{
$this->created_by = $created_by;
return $this;
}
public function getOwner(): ?Company
{
return $this->owner;
}
public function setOwner(?Company $owner): self
{
$this->owner = $owner;
return $this;
}
public function getSeason(): ?Season
{
return $this->season;
}
public function setSeason(?Season $season): self
{
$this->season = $season;
return $this;
}
}