diff --git a/src/Entity/ConservationPlace.php b/src/Entity/ConservationPlace.php new file mode 100644 index 0000000..ed45aed --- /dev/null +++ b/src/Entity/ConservationPlace.php @@ -0,0 +1,312 @@ +<?php + +namespace App\Entity; + +use App\RecordInterface; +use App\Repository\ConservationRepository; +use DateTimeImmutable; +use Doctrine\ORM\Mapping as ORM; +use Doctrine\DBAL\Types\Types; +use App\RecordStatus; +use Doctrine\Common\Collections\Collection as DoctrineCollection; + +#[ORM\Entity(repositoryClass: ConservationRepository::class)] +#[ORM\Table(name: 'collection')] +class ConservationPlace implements RecordInterface +{ + #[ORM\Id] + #[ORM\GeneratedValue] + #[ORM\Column(name: 'id')] + private ?int $id = null; + + #[ORM\Column(name: 'stato')] + private ?int $status = null; + + #[ORM\Column(name: 'modif')] + private ?DateTimeImmutable $modifiedAt = null; + + #[ORM\Column(name: 'luogo_cons', type: Types::TEXT)] + private ?string $place = null; + + //#[ORM\Column(name: 'coord_cons', type: Types::TEXT)] + private ?string $coordinates = null; + + #[ORM\Column(name: 'reg_cons', type: Types::TEXT)] + private ?string $region = null; + + #[ORM\Column(name: 'prov_cons', type: Types::TEXT)] + private ?int $province = null; + + #[ORM\Column(name: 'com_cons', type: Types::TEXT)] + private ?int $municipality = null; + + #[ORM\Column(name: 'desc_cons', type: Types::TEXT)] + private ?string $description = null; + + #[ORM\Column(name: 'desc_br_cons', type: Types::TEXT)] + private ?string $shortDescription = null; + + #[ORM\Column(name: 'id_est_cons', type: Types::TEXT)] + private ?string $externalIdentifier = null; + + #[ORM\Column(name: 'link_cons', type: Types::TEXT)] + private ?string $link = null; + + #[ORM\Column(name: 'sogg_cons', type: Types::TEXT)] + private ?string $subjectHeadings = null; + + #[ORM\Column(name: 'uri_cons', type: Types::TEXT)] + private ?string $uri = null; + + #[ORM\Column(name: 'resp', length: 100)] + private ?string $owner = null; + + #[ORM\Column(name: 'note_cons', type: Types::TEXT)] + private ?string $notes = null; + + #[ORM\Column(length: 100, name: 'editor')] + private ?string $editor = null; + + #[ORM\Column(length: 100, name: 'creator')] + private ?string $creator = null; + + // TODO: These are references to vocabs + #[ORM\Column(name: 'dir_aut_cons')] + private ?int $authorRights = null; + + #[ORM\Column(name: 'dir_acc_cons')] + private ?int $accessRights = null; + + #[ORM\Column(name: 'lic_cons')] + private ?int $license = null; + + #[ORM\JoinTable(name: 'rel_conservazione_collezione')] + #[ORM\JoinColumn(name: 'Conservazione_id_cons', referencedColumnName: 'id')] + #[ORM\InverseJoinColumn(name: 'Collezione_id_coll', referencedColumnName: 'id')] + #[ORM\ManyToMany(targetEntity: Collection::class, inversedBy: 'conservation_place')] + private DoctrineCollection $collections; + + private bool $isEditable = false; + + public function getId(): ?int + { + return $this->id; + } + + public function getStatus(): ?string + { + $status = RecordStatus::tryFrom($this->status); + return $status->toString(); + } + + public function setStatus(int $status): static + { + $this->status = $status; + + return $this; + } + + public function getModifiedAt(): ?DateTimeImmutable + { + return $this->modifiedAt; + } + + public function setModifiedAt(DateTimeImmutable $modifiedAt): static + { + $this->modifiedAt = $modifiedAt; + + return $this; + } + + public function getOwner(): ?string + { + return $this->owner; + } + + public function setOwner(string $owner): static + { + $this->owner = $owner; + + return $this; + } + + public function getEditor(): ?string + { + return $this->editor; + } + + public function setEditor(string $editor): static + { + $this->editor = $editor; + + return $this; + } + + public function getCreator(): ?string + { + return $this->creator; + } + + public function setCreator(string $creator): static + { + $this->creator = $creator; + + return $this; + } + + public function getPlace(): ?string + { + return $this->place; + } + + public function setPlace(string $place): static + { + $this->place = $place; + + return $this; + } + + public function getRegion(): ?string + { + return $this->region; + } + + public function setRegion(string $region): static + { + $this->region = $region; + + return $this; + } + + public function getProvince(): ?string + { + return $this->province; + } + + public function setProvince(string $province): static + { + $this->province = $province; + + return $this; + } + + public function getMunicipality(): ?string + { + return $this->municipality; + } + + public function setMunicipality(string $municipality): static + { + $this->municipality = $municipality; + + return $this; + } + + public function getDescription(): ?string + { + return $this->description; + } + + public function setDescription(string $description): static + { + $this->description = $description; + + return $this; + } + + public function getShortDescription(): ?string + { + return $this->shortDescription; + } + + public function setShortDescription(string $shortDescription): static + { + $this->shortDescription = $shortDescription; + + return $this; + } + + public function getExternalIdentifier(): ?string + { + return $this->externalIdentifier; + } + + public function setExternalIdentifier(string $externalIdentifier): static + { + $this->externalIdentifier = $externalIdentifier; + + return $this; + } + + public function getLink(): ?string + { + return $this->link; + } + + public function setLink(string $link): static + { + $this->link = $link; + + return $this; + } + + public function getSubjectHeadings(): ?string + { + return $this->subjectHeadings; + } + + public function setSubjectHeadings(string $subjectHeadings): static + { + $this->subjectHeadings = $subjectHeadings; + + return $this; + } + + public function getUri(): ?string + { + return $this->uri; + } + + public function setUri(string $uri): static + { + $this->uri = $uri; + + return $this; + } + + public function getNotes(): ?string + { + return $this->notes; + } + + public function setNotes(string $notes): static + { + $this->notes = $notes; + + return $this; + } + + public function getCollections(): ?DoctrineCollection + { + return $this->collections; + } + + public function setBibliographies(DoctrineCollection $collections): static + { + $this->collections = $collections; + + return $this; + } + + public function getEditableStatus(): bool + { + return $this->isEditable; + } + + public function setEditableStatus(bool $status): static + { + $this->isEditable = $status; + + return $this; + } +}