diff --git a/src/Entity/Project.php b/src/Entity/Project.php index 8636cd9..17eae74 100644 --- a/src/Entity/Project.php +++ b/src/Entity/Project.php @@ -5,7 +5,9 @@ namespace App\Entity; use ApiPlatform\Doctrine\Orm\Filter\SearchFilter; use ApiPlatform\Metadata as API; use App\Repository\ProjectRepository; +use App\Entity\ProjectStatus as Status; use Doctrine\ORM\Mapping as ORM; +use Gedmo\Timestampable\Traits\TimestampableEntity; /** * Projects describe a community-led event that is to be discovered, developed and funded by other Users.\ @@ -19,10 +21,15 @@ use Doctrine\ORM\Mapping as ORM; #[API\Put(security: 'is_granted("AUTH_PROJECT_EDIT")')] #[API\Delete(security: 'is_granted("AUTH_PROJECT_EDIT")')] #[API\Patch(security: 'is_granted("AUTH_PROJECT_EDIT")')] -#[API\ApiFilter(filterClass: SearchFilter::class, properties: ['title' => 'partial'])] +#[API\ApiFilter(filterClass: SearchFilter::class, properties: [ + 'title' => 'partial', + 'status', 'owner' +])] #[ORM\Entity(repositoryClass: ProjectRepository::class)] class Project { + use TimestampableEntity; + #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] @@ -35,10 +42,15 @@ class Project #[ORM\JoinColumn(nullable: false)] private ?Accounting $accounting = null; + #[API\ApiProperty(writable: false)] #[ORM\ManyToOne(inversedBy: 'projects')] #[ORM\JoinColumn(nullable: false)] private ?User $owner = null; + #[API\ApiProperty(writable: true)] + #[ORM\Column(type: 'string', enumType: Status::class)] + private Status $status; + /** * Project was migrated from Goteo v3 platform. */ @@ -92,13 +104,25 @@ class Project return $this->owner; } - public function setOwner(?User $owner): static + public function setOwner(User $owner): static { $this->owner = $owner; return $this; } + public function getStatus(): Status + { + return $this->status; + } + + public function setStatus(string $status): static + { + $this->status = $status; + + return $this; + } + public function isMigrated(): ?bool { return $this->migrated; diff --git a/src/Entity/ProjectStatus.php b/src/Entity/ProjectStatus.php new file mode 100644 index 0000000..04c5b81 --- /dev/null +++ b/src/Entity/ProjectStatus.php @@ -0,0 +1,14 @@ +