src/V4/Model/Task/TaskSearch.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\V4\Model\Task;
  3. use App\Model\Compare\DateCompare;
  4. use App\Model\SpecificField\SpecificField;
  5. use App\Model\SpecificFieldsAwareInterface;
  6. use App\Model\Traits\BlamableTrait;
  7. use App\Model\Traits\ImportableObjectTrait;
  8. use App\Model\Traits\TimeStampableCompare;
  9. use App\V4\Model\IdSearchTrait;
  10. use App\V4\Model\TaskSpecificField\TaskSpecificField;
  11. use Doctrine\Common\Collections\ArrayCollection;
  12. use Doctrine\Common\Collections\Collection;
  13. use Symfony\Component\Serializer\Annotation\Groups;
  14. class TaskSearch implements SpecificFieldsAwareInterface
  15. {
  16.     public const SPECIFIC_FIELD_CLASS_NAME TaskSpecificField::class;
  17.     use ImportableObjectTrait;
  18.     use BlamableTrait;
  19.     use TimeStampableCompare;
  20.     use IdSearchTrait;
  21.     /**
  22.      * Objet de l'action.
  23.      *
  24.      * @var string|null
  25.      * @Groups({"task:search"})
  26.      */
  27.     private $name;
  28.     /**
  29.      * @var array|null
  30.      * @Groups({"task:search"})
  31.      */
  32.     private $taskType;
  33.     /**
  34.      * Mes actions.
  35.      *
  36.      * @var bool|null
  37.      * @Groups({"task:search"})
  38.      */
  39.     private $myTasks;
  40.     /**
  41.      * @var string|null
  42.      * @Groups({"task:search"})
  43.      */
  44.     private $taskPeriod;
  45.     /**
  46.      * @var array|null
  47.      * @Groups({"task:search"})
  48.      */
  49.     private $managedBy;
  50.     /**
  51.      * @var DateCompare|null
  52.      * @Groups({"task:search"})
  53.      */
  54.     private $beginAt;
  55.     /**
  56.      * @var DateCompare|null
  57.      * @Groups({"task:search"})
  58.      */
  59.     private $updatedAt;
  60.     /**
  61.      * @var string|null
  62.      * @Groups({"task:search"})
  63.      */
  64.     private $closed;
  65.     /**
  66.      * @var DateCompare|null
  67.      * @Groups({"task:search"})
  68.      */
  69.     private $createdAt;
  70.     /**
  71.      * @Groups({"task:search"})
  72.      *
  73.      * @var array|null
  74.      */
  75.     private $prospectIds = [];
  76.     /**
  77.      * @Groups({"task:search"})
  78.      *
  79.      * @var array|null
  80.      */
  81.     private $contactIds = [];
  82.     /**
  83.      * @var array|null
  84.      * @Groups({"task:search"})
  85.      */
  86.     private $contactsConcerned;
  87.     /**
  88.      * @var string|null
  89.      * @Groups({"task:search"})
  90.      */
  91.     private $readState;
  92.     /**
  93.      * @var string|null
  94.      * @Groups({"task:search"})
  95.      */
  96.     private $hitState;
  97.     /**
  98.      * section de l'action.
  99.      *
  100.      * @var string|null
  101.      * @Groups({"task:search"})
  102.      */
  103.     private $sectionName;
  104.     /**
  105.      * @var SpecificField[]|Collection
  106.      *
  107.      * @Groups({"prospect:search"})
  108.      */
  109.     private $specificFields;
  110.     /**
  111.      * @var string|null
  112.      *
  113.      * @Groups({"task:search"})
  114.      */
  115.     private $fileLabel;
  116.     /**
  117.      * @var string|null
  118.      * @Groups({"task:search"})
  119.      */
  120.     private $isDraft 'all';
  121.     public function __construct()
  122.     {
  123.         $this->specificFields = new ArrayCollection();
  124.     }
  125.     /**
  126.      * {@inheritdoc}
  127.      */
  128.     public function getSpecificFields(): Collection
  129.     {
  130.         return $this->specificFields;
  131.     }
  132.     /**
  133.      * {@inheritdoc}
  134.      */
  135.     public function getSpecificFieldByFieldId(string $id): ?SpecificField
  136.     {
  137.         foreach ($this->specificFields as $specificField) {
  138.             if ($specificField->getFieldId() === $id) {
  139.                 return $specificField;
  140.             }
  141.         }
  142.         return null;
  143.     }
  144.     /**
  145.      * @see ImportableObjectTrait::class
  146.      *
  147.      * @param TaskSpecificField $specificField
  148.      *
  149.      * @return $this
  150.      */
  151.     public function addTaskSpecificField(TaskSpecificField $specificField): self
  152.     {
  153.         return $this->addSpecificField($specificField);
  154.     }
  155.     /**
  156.      * {@inheritdoc}
  157.      */
  158.     public function addSpecificField($specificField): SpecificFieldsAwareInterface
  159.     {
  160.         $this->specificFields[] = $specificField;
  161.         return $this;
  162.     }
  163.     /**
  164.      * {@inheritdoc}
  165.      */
  166.     public function setSpecificFields(Collection $specificFields): self
  167.     {
  168.         $this->specificFields $specificFields;
  169.         return $this;
  170.     }
  171.     /**
  172.      * @return string|null
  173.      */
  174.     public function getName(): ?string
  175.     {
  176.         return $this->name;
  177.     }
  178.     /**
  179.      * @param string|null $name
  180.      *
  181.      * @return TaskSearch
  182.      */
  183.     public function setName(?string $name): TaskSearch
  184.     {
  185.         $this->name $name;
  186.         return $this;
  187.     }
  188.     /**
  189.      * @return array|null
  190.      */
  191.     public function getTaskType(): ?array
  192.     {
  193.         return $this->taskType;
  194.     }
  195.     /**
  196.      * @param array|null $taskType
  197.      *
  198.      * @return TaskSearch
  199.      */
  200.     public function setTaskType(?array $taskType): TaskSearch
  201.     {
  202.         $this->taskType $taskType;
  203.         return $this;
  204.     }
  205.     /**
  206.      * @return bool|null
  207.      */
  208.     public function getMyTasks(): ?bool
  209.     {
  210.         return $this->myTasks;
  211.     }
  212.     /**
  213.      * @param bool|null $myTasks
  214.      *
  215.      * @return TaskSearch
  216.      */
  217.     public function setMyTasks(?bool $myTasks): TaskSearch
  218.     {
  219.         $this->myTasks $myTasks;
  220.         return $this;
  221.     }
  222.     /**
  223.      * @return string|null
  224.      */
  225.     public function getTaskPeriod(): ?string
  226.     {
  227.         return $this->taskPeriod;
  228.     }
  229.     /**
  230.      * @param string|null $taskPeriod
  231.      *
  232.      * @return TaskSearch
  233.      */
  234.     public function setTaskPeriod(?string $taskPeriod): TaskSearch
  235.     {
  236.         $this->taskPeriod $taskPeriod;
  237.         return $this;
  238.     }
  239.     /**
  240.      * @return array|null
  241.      */
  242.     public function getManagedBy(): ?array
  243.     {
  244.         return $this->managedBy;
  245.     }
  246.     /**
  247.      * @param array|null $managedBy
  248.      *
  249.      * @return TaskSearch
  250.      */
  251.     public function setManagedBy(?array $managedBy): TaskSearch
  252.     {
  253.         $this->managedBy $managedBy;
  254.         return $this;
  255.     }
  256.     /**
  257.      * @return DateCompare|null
  258.      */
  259.     public function getBeginAt(): ?DateCompare
  260.     {
  261.         return $this->beginAt;
  262.     }
  263.     /**
  264.      * @param DateCompare|null $beginAt
  265.      *
  266.      * @return TaskSearch
  267.      */
  268.     public function setBeginAt(?DateCompare $beginAt): TaskSearch
  269.     {
  270.         $this->beginAt $beginAt;
  271.         return $this;
  272.     }
  273.     /**
  274.      * @return DateCompare|null
  275.      */
  276.     public function getUpdatedAt(): ?DateCompare
  277.     {
  278.         return $this->updatedAt;
  279.     }
  280.     /**
  281.      * @param DateCompare|null $updatedAt
  282.      *
  283.      * @return TaskSearch
  284.      */
  285.     public function setUpdatedAt(?DateCompare $updatedAt): TaskSearch
  286.     {
  287.         $this->updatedAt $updatedAt;
  288.         return $this;
  289.     }
  290.     /**
  291.      * @return string|null
  292.      */
  293.     public function getClosed(): ?string
  294.     {
  295.         return $this->closed;
  296.     }
  297.     /**
  298.      * @param string|null $closed
  299.      *
  300.      * @return TaskSearch
  301.      */
  302.     public function setClosed(?string $closed): TaskSearch
  303.     {
  304.         $this->closed $closed;
  305.         return $this;
  306.     }
  307.     /**
  308.      * @return DateCompare|null
  309.      */
  310.     public function getCreatedAt(): ?DateCompare
  311.     {
  312.         return $this->createdAt;
  313.     }
  314.     /**
  315.      * @param DateCompare|null $createdAt
  316.      *
  317.      * @return TaskSearch
  318.      */
  319.     public function setCreatedAt(?DateCompare $createdAt): TaskSearch
  320.     {
  321.         $this->createdAt $createdAt;
  322.         return $this;
  323.     }
  324.     /**
  325.      * @return array|null
  326.      */
  327.     public function getProspectIds(): ?array
  328.     {
  329.         return $this->prospectIds;
  330.     }
  331.     /**
  332.      * @param array|null $prospectIds
  333.      *
  334.      * @return TaskSearch
  335.      */
  336.     public function setProspectIds(?array $prospectIds): TaskSearch
  337.     {
  338.         $this->prospectIds $prospectIds;
  339.         return $this;
  340.     }
  341.     /**
  342.      * @return array|null
  343.      */
  344.     public function getContactIds(): ?array
  345.     {
  346.         return $this->contactIds;
  347.     }
  348.     /**
  349.      * @param array|null $contactIds
  350.      *
  351.      * @return TaskSearch
  352.      */
  353.     public function setContactIds(?array $contactIds): TaskSearch
  354.     {
  355.         $this->contactIds $contactIds;
  356.         return $this;
  357.     }
  358.     /**
  359.      * @return array|null
  360.      */
  361.     public function getContactsConcerned(): ?array
  362.     {
  363.         return $this->contactsConcerned;
  364.     }
  365.     /**
  366.      * @param array|null $contactsConcerned
  367.      *
  368.      * @return TaskSearch
  369.      */
  370.     public function setContactsConcerned(?array $contactsConcerned): TaskSearch
  371.     {
  372.         $this->contactsConcerned $contactsConcerned;
  373.         return $this;
  374.     }
  375.     /**
  376.      * @return string|null
  377.      */
  378.     public function getReadState(): ?string
  379.     {
  380.         return $this->readState;
  381.     }
  382.     /**
  383.      * @param string|null $readState
  384.      *
  385.      * @return TaskSearch
  386.      */
  387.     public function setReadState(?string $readState): TaskSearch
  388.     {
  389.         $this->readState $readState;
  390.         return $this;
  391.     }
  392.     /**
  393.      * @return string|null
  394.      */
  395.     public function getHitState(): ?string
  396.     {
  397.         return $this->hitState;
  398.     }
  399.     /**
  400.      * @param string|null $hitState
  401.      *
  402.      * @return TaskSearch
  403.      */
  404.     public function setHitState(?string $hitState): TaskSearch
  405.     {
  406.         $this->hitState $hitState;
  407.         return $this;
  408.     }
  409.     /**
  410.      * @return string|null
  411.      */
  412.     public function getSectionName(): ?string
  413.     {
  414.         return $this->sectionName;
  415.     }
  416.     /**
  417.      * @param string|null $sectionName
  418.      *
  419.      * @return TaskSearch
  420.      */
  421.     public function setSectionName(?string $sectionName): TaskSearch
  422.     {
  423.         $this->sectionName $sectionName;
  424.         return $this;
  425.     }
  426.     public function getFileLabel(): ?string
  427.     {
  428.         return $this->fileLabel;
  429.     }
  430.     public function setFileLabel(?string $fileLabel): self
  431.     {
  432.         $this->fileLabel $fileLabel;
  433.         return $this;
  434.     }
  435.     public function getIsDraft(): ?string
  436.     {
  437.         return $this->isDraft;
  438.     }
  439.     public function setIsDraft(?string $isDraft): self
  440.     {
  441.         $this->isDraft $isDraft;
  442.         return $this;
  443.     }
  444. }