Merge branch 'main' into feat/v3-project-migration
This commit is contained in:
+26
-2
@@ -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;
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
enum ProjectStatus: string
|
||||
{
|
||||
case Rejected = 'rejected';
|
||||
case Editing = 'editing';
|
||||
case Reviewing = 'reviewing';
|
||||
case InCampaign = 'in_campaign';
|
||||
case Funded = 'funded';
|
||||
case Fulfilled = 'fulfilled';
|
||||
case Unfunded = 'unfunded';
|
||||
}
|
||||
Reference in New Issue
Block a user