mv: Refactor

* Move entities for organization
This commit is contained in:
Ryan Prather 2025-01-28 20:47:26 -05:00
parent ee2fce4c41
commit bcc32bf445
23 changed files with 345 additions and 87 deletions

View File

@ -1,8 +1,10 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Repository\CaseItineraryRepository; use App\Entity\System\Location;
use App\Repository\Case\CaseItineraryRepository;
use DateTime;
use DateInterval; use DateInterval;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
@ -19,6 +21,9 @@ class CaseItinerary
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')] #[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]
private ?Uuid $id = null; private ?Uuid $id = null;
#[ORM\Column(type: Types::DATE_MUTABLE)]
private ?\DateTimeInterface $date = null;
#[ORM\Column(type: Types::TIME_MUTABLE, nullable: true)] #[ORM\Column(type: Types::TIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $departure = null; private ?\DateTimeInterface $departure = null;
@ -26,9 +31,6 @@ class CaseItinerary
#[ORM\JoinColumn(nullable: false)] #[ORM\JoinColumn(nullable: false)]
private ?Location $originLocation = null; private ?Location $originLocation = null;
#[ORM\Column(type: Types::TIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $arrival = null;
#[ORM\ManyToOne] #[ORM\ManyToOne]
#[ORM\JoinColumn(nullable: false)] #[ORM\JoinColumn(nullable: false)]
private ?Location $destLocation = null; private ?Location $destLocation = null;
@ -43,9 +45,6 @@ class CaseItinerary
#[ORM\JoinColumn(nullable: false)] #[ORM\JoinColumn(nullable: false)]
private ?MemberCase $memberCase = null; private ?MemberCase $memberCase = null;
#[ORM\Column(type: Types::DATE_MUTABLE)]
private ?\DateTimeInterface $date = null;
#[ORM\Column(nullable: true)] #[ORM\Column(nullable: true)]
private ?float $distance = null; private ?float $distance = null;
@ -81,18 +80,6 @@ class CaseItinerary
return $this; return $this;
} }
public function getArrival(): ?\DateTimeInterface
{
return $this->arrival;
}
public function setArrival(?\DateTimeInterface $arrival): static
{
$this->arrival = $arrival;
return $this;
}
public function getDestLocation(): ?Location public function getDestLocation(): ?Location
{ {
return $this->destLocation; return $this->destLocation;
@ -132,7 +119,7 @@ class CaseItinerary
public function calcDuration() public function calcDuration()
{ {
$this->duration = $this->departure - $this->arrival; //$this->duration = $this->departure - $this->arrival;
} }
public function getMemberCase(): ?MemberCase public function getMemberCase(): ?MemberCase
@ -203,10 +190,13 @@ class CaseItinerary
public function destinationInfoWindow(): string public function destinationInfoWindow(): string
{ {
/** @var DateTime $arrival */
$arrival = $this->departure;
$arrival->add($this->duration);
return <<<EOL return <<<EOL
{$this->destLocation->getName()}<br/> {$this->destLocation->getName()}<br/>
<a href='http://maps.google.com/?q={$this->destLocation->getLat()},{$this->destLocation->getLon()}'>{$this->destLocation->getFormattedAddress()}</a><br/> <a href='http://maps.google.com/?q={$this->destLocation->getLat()},{$this->destLocation->getLon()}'>{$this->destLocation->getFormattedAddress()}</a><br/>
{$this->arrival->format("g:i a")} {$arrival->format("g:i a")}
EOL; EOL;
} }
} }

View File

@ -1,8 +1,9 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Repository\CaseLocationRepository; use App\Entity\System\Location;
use App\Repository\Case\CaseLocationRepository;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;
use Symfony\Component\Uid\Uuid; use Symfony\Component\Uid\Uuid;

View File

@ -1,11 +1,11 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Enums\GenderType; use App\Enums\System\GenderType;
use App\Enums\RaceType; use App\Enums\Case\RaceType;
use App\Enums\RelationshipType; use App\Enums\Case\RelationshipType;
use App\Repository\MemberRepository; use App\Repository\Case\MemberRepository;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;

View File

@ -1,11 +1,14 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Enums\CaseLevel; use App\Entity\Staff\StaffNote;
use App\Enums\County; use App\Entity\System\ReferralSource;
use App\Entity\System\UserCase;
use App\Enums\Case\CaseLevel;
use App\Enums\System\County;
use App\Enums\Case\ReferralType; use App\Enums\Case\ReferralType;
use App\Repository\MemberCaseRepository; use App\Repository\Case\MemberCaseRepository;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
@ -506,4 +509,10 @@ class MemberCase
return $this; return $this;
} }
public function emptyStaffNotes(): static
{
$this->staffNotes->clear();
return $this;
}
} }

View File

@ -1,8 +1,10 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Repository\MemberDocumentRepository; use App\Entity\Company\CompanyDocument;
use App\Entity\System\User;
use App\Repository\Case\MemberDocumentRepository;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;
@ -41,6 +43,9 @@ class MemberDocument
#[ORM\Column(nullable: true)] #[ORM\Column(nullable: true)]
private ?array $workerSignature = null; private ?array $workerSignature = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $docData = null;
public function getId(): ?Uuid public function getId(): ?Uuid
{ {
return $this->id; return $this->id;
@ -129,4 +134,16 @@ class MemberDocument
return $this; return $this;
} }
public function getDocData(): ?string
{
return $this->docData;
}
public function setDocData(?string $docData): static
{
$this->docData = $docData;
return $this;
}
} }

View File

@ -0,0 +1,115 @@
<?php
namespace App\Entity\Case;
use App\Repository\Case\MonthlyCaseNoteRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType;
use Symfony\Component\Uid\Uuid;
#[ORM\Entity(repositoryClass: MonthlyCaseNoteRepository::class)]
class MonthlyCaseNote
{
#[ORM\Id]
#[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\GeneratedValue(strategy: 'CUSTOM')]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]
private ?Uuid $id = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $reason = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $familyStrength = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $recAndProgress = null;
#[ORM\ManyToOne(inversedBy: 'monthlyCaseNotes')]
#[ORM\JoinColumn(nullable: false)]
private ?MemberCase $memberCase = null;
#[ORM\Column(type: Types::DATE_MUTABLE)]
private ?\DateTimeInterface $date = null;
#[ORM\Column(type: Types::DATE_MUTABLE)]
private ?\DateTimeInterface $nextVisit = null;
public function getId(): ?Uuid
{
return $this->id;
}
public function getReason(): ?string
{
return $this->reason;
}
public function setReason(?string $reason): static
{
$this->reason = $reason;
return $this;
}
public function getFamilyStrength(): ?string
{
return $this->familyStrength;
}
public function setFamilyStrength(?string $familyStrength): static
{
$this->familyStrength = $familyStrength;
return $this;
}
public function getRecAndProgress(): ?string
{
return $this->recAndProgress;
}
public function setRecAndProgress(?string $recAndProgress): static
{
$this->recAndProgress = $recAndProgress;
return $this;
}
public function getMemberCase(): ?MemberCase
{
return $this->memberCase;
}
public function setMemberCase(?MemberCase $memberCase): static
{
$this->memberCase = $memberCase;
return $this;
}
public function getDate(): ?\DateTimeInterface
{
return $this->date;
}
public function setDate(\DateTimeInterface $date): static
{
$this->date = $date;
return $this;
}
public function getNextVisit(): ?\DateTimeInterface
{
return $this->nextVisit;
}
public function setNextVisit(\DateTimeInterface $nextVisit): static
{
$this->nextVisit = $nextVisit;
return $this;
}
}

View File

@ -1,11 +1,11 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Enums\NoteLocation; use App\Enums\Case\NoteLocation;
use App\Enums\NoteMethod; use App\Enums\Case\NoteMethod;
use App\Enums\NoteStatus; use App\Enums\Case\NoteStatus;
use App\Repository\NoteRepository; use App\Repository\Case\NoteRepository;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\MappedSuperclass; use Doctrine\ORM\Mapping\MappedSuperclass;

View File

@ -1,12 +1,10 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Enums\DischargeReason; use App\Enums\Case\DischargeReason;
use App\Enums\ReferralServiceType; use App\Enums\Case\ReferralServiceType;
use App\Repository\ReferralRepository; use App\Repository\Case\ReferralRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;

View File

@ -1,9 +1,9 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Enums\ReferralServiceType; use App\Enums\Case\ReferralServiceType;
use App\Repository\StandardNoteRepository; use App\Repository\Case\StandardNoteRepository;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use JsonSerializable; use JsonSerializable;

View File

@ -1,8 +1,8 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Repository\StandardNoteMemberRepository; use App\Repository\Case\StandardNoteMemberRepository;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;
use Symfony\Component\Uid\Uuid; use Symfony\Component\Uid\Uuid;

View File

@ -1,10 +1,10 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Enums\ReferralServiceType; use App\Enums\Case\ReferralServiceType;
use App\Enums\VisitQualityLevel; use App\Enums\Case\VisitQualityLevel;
use App\Repository\VisitNoteRepository; use App\Repository\Case\VisitNoteRepository;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use JsonSerializable; use JsonSerializable;

View File

@ -1,8 +1,8 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Case;
use App\Repository\VisitNoteMembersRepository; use App\Repository\Case\VisitNoteMembersRepository;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;
use Symfony\Component\Uid\Uuid; use Symfony\Component\Uid\Uuid;

View File

@ -1,8 +1,9 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Company;
use App\Repository\CompanyRepository; use App\Entity\System\User;
use App\Repository\Company\CompanyRepository;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;

View File

@ -1,9 +1,9 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Company;
use App\Enums\DocumentExtras; use App\Enums\Company\DocumentExtras;
use App\Repository\CompanyDocumentRepository; use App\Repository\Company\CompanyDocumentRepository;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;

View File

@ -1,12 +1,13 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Resources;
use App\Enums\County; use App\Entity\System\Location;
use App\Enums\ResourceType; use App\Enums\System\County;
use App\Enums\State; use App\Enums\Case\ResourceType;
use App\Enums\System\State;
use App\Libs\Libs; use App\Libs\Libs;
use App\Repository\CommunityResourceRepository; use App\Repository\Resources\CommunityResourceRepository;
use DateTime; use DateTime;
use DateTimeZone; use DateTimeZone;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;

View File

@ -1,9 +1,10 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Staff;
use App\Enums\ReferralServiceType; use App\Entity\Case\MemberCase;
use App\Repository\StaffNoteRepository; use App\Enums\Case\ReferralServiceType;
use App\Repository\Staff\StaffNoteRepository;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;

View File

@ -1,8 +1,9 @@
<?php <?php
namespace App\Entity; namespace App\Entity\Staff;
use App\Repository\SupervisionRepository; use App\Entity\System\User;
use App\Repository\Staff\SupervisionRepository;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;
use Symfony\Component\Uid\Uuid; use Symfony\Component\Uid\Uuid;

View File

@ -1,9 +1,9 @@
<?php <?php
namespace App\Entity; namespace App\Entity\System;
use App\Enums\State; use App\Enums\System\State;
use App\Repository\LocationRepository; use App\Repository\System\LocationRepository;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;

View File

@ -1,9 +1,9 @@
<?php <?php
namespace App\Entity; namespace App\Entity\System;
use App\Enums\MessageType; use App\Enums\System\MessageType;
use App\Repository\MessagesRepository; use App\Repository\System\MessagesRepository;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;

View File

@ -1,8 +1,8 @@
<?php <?php
namespace App\Entity; namespace App\Entity\System;
use App\Repository\ReferralSourceRepository; use App\Repository\System\ReferralSourceRepository;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType; use Symfony\Bridge\Doctrine\Types\UuidType;
use Symfony\Component\Uid\Uuid; use Symfony\Component\Uid\Uuid;

View File

@ -0,0 +1,86 @@
<?php
namespace App\Entity\System;
use App\Enums\System\UserSubscriptions;
use App\Repository\System\SubscriptionRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Types\UuidType;
use Symfony\Component\Uid\Uuid;
#[ORM\Entity(repositoryClass: SubscriptionRepository::class)]
class Subscription
{
#[ORM\Id]
#[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\GeneratedValue(strategy: 'CUSTOM')]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]
private ?Uuid $id = null;
#[ORM\ManyToOne(inversedBy: 'subscriptions')]
#[ORM\JoinColumn(nullable: false)]
private ?User $user = null;
#[ORM\Column]
private ?bool $active = null;
#[ORM\Column(type: Types::DATE_MUTABLE)]
private ?\DateTimeInterface $expiration = null;
#[ORM\Column(enumType: UserSubscriptions::class)]
private ?UserSubscriptions $level = null;
public function getId(): ?Uuid
{
return $this->id;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): static
{
$this->user = $user;
return $this;
}
public function isActive(): ?bool
{
return $this->active;
}
public function setActive(bool $active): static
{
$this->active = $active;
return $this;
}
public function getExpiration(): ?\DateTimeInterface
{
return $this->expiration;
}
public function setExpiration(\DateTimeInterface $expiration): static
{
$this->expiration = $expiration;
return $this;
}
public function getLevel(): ?UserSubscriptions
{
return $this->level;
}
public function setLevel(UserSubscriptions $level): static
{
$this->level = $level;
return $this;
}
}

View File

@ -1,10 +1,11 @@
<?php <?php
namespace App\Entity; namespace App\Entity\System;
use App\Repository\UserRepository; use App\Entity\Company\Company;
use App\Enums\RateType; use App\Repository\System\UserRepository;
use App\Enums\CaseLevel; use App\Enums\System\RateType;
use App\Enums\Case\CaseLevel;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types; use Doctrine\DBAL\Types\Types;
@ -95,9 +96,16 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
private ?User $supervisor = null; private ?User $supervisor = null;
/**
* @var Collection<int, Subscription>
*/
#[ORM\OneToMany(targetEntity: Subscription::class, mappedBy: 'user', orphanRemoval: true)]
private Collection $subscriptions;
public function __construct() public function __construct()
{ {
$this->userCases = new ArrayCollection(); $this->userCases = new ArrayCollection();
$this->subscriptions = new ArrayCollection();
} }
public function getId(): ?Uuid public function getId(): ?Uuid
@ -441,4 +449,34 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
($this->imageName ? "\nPHOTO;TYPE={$fileExt};ENCODING=b:{$b64image}" : null) . ($this->imageName ? "\nPHOTO;TYPE={$fileExt};ENCODING=b:{$b64image}" : null) .
"\nEND:VCARD"; "\nEND:VCARD";
} }
/**
* @return Collection<int, Subscription>
*/
public function getSubscriptions(): Collection
{
return $this->subscriptions;
}
public function addSubscription(Subscription $subscription): static
{
if (!$this->subscriptions->contains($subscription)) {
$this->subscriptions->add($subscription);
$subscription->setUser($this);
}
return $this;
}
public function removeSubscription(Subscription $subscription): static
{
if ($this->subscriptions->removeElement($subscription)) {
// set the owning side to null (unless already changed)
if ($subscription->getUser() === $this) {
$subscription->setUser(null);
}
}
return $this;
}
} }

View File

@ -1,9 +1,9 @@
<?php <?php
namespace App\Entity; namespace App\Entity\System;
use App\Enums\CaseLevel; use App\Entity\Case\MemberCase;
use App\Repository\UserCaseRepository; use App\Repository\System\UserCaseRepository;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: UserCaseRepository::class)] #[ORM\Entity(repositoryClass: UserCaseRepository::class)]