EducationStudentWish.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452
  1. <?php
  2. namespace AppBundle\Entity\AccessWish;
  3. use AppBundle\Annotation\ExportTranslate;
  4. use AppBundle\Entity\Education\Education;
  5. use AppBundle\Entity\Education\EducationCurriculum;
  6. use AppBundle\Entity\Education\EducationStudent;
  7. use AppBundle\Entity\Education\EducationTiming;
  8. use AppBundle\Enum\OnlineRegistration\EducationStudentWishOriginEnum;
  9. use Doctrine\ORM\Mapping as ORM;
  10. use Dunglas\ApiBundle\Annotation\Iri;
  11. use Finite\StatefulInterface;
  12. use Symfony\Component\Serializer\Annotation\Groups;
  13. use Symfony\Component\Validator\Constraints as Assert;
  14. use AppBundle\Entity\Traits\TimestampableEntity;
  15. use AppBundle\Entity\Traits\CreatorUpdaterEntity;
  16. /**
  17. * EducationStudentWish.
  18. *
  19. * @see http://schema.org/EducationStudentWish Documentation on Schema.org
  20. *
  21. * @Iri("http://schema.org/EducationStudentWish")
  22. */
  23. #[ORM\Entity(repositoryClass: 'AppBundle\Entity\AccessWish\Repository\EducationStudentWishRepository')]
  24. class EducationStudentWish
  25. {
  26. use TimestampableEntity;
  27. use CreatorUpdaterEntity;
  28. /**
  29. * @var int
  30. */
  31. #[ORM\Column(type: 'integer')]
  32. #[ORM\Id]
  33. #[ORM\GeneratedValue(strategy: 'AUTO')]
  34. #[Groups(['educationstudentwish', 'online_registration', 'education_student_wish_list', 'online_registration_validation_access_family', 'online_registration_validation'])]
  35. private $id;
  36. /**
  37. * @var Education
  38. *
  39. *
  40. */
  41. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\Education\Education')]
  42. #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
  43. #[Groups(['educationstudentwish', 'online_registration_educationstudentwishes', 'online_registration_educationstudentreregistrationswishes', 'education_student_wish_list', 'online_registration_validation_educationstudentwishes', 'online_registration_validation_educationstudentreregistrationswishes'])]
  44. private $educationWish;
  45. /**
  46. * @var array
  47. */
  48. #[ORM\Column(type: 'json_array', nullable: true)]
  49. #[Groups(['educationstudentwish', 'online_registration_educationstudentwishes', 'online_registration_educationstudentreregistrationswishes', 'online_registration_validation_educationstudentwishes', 'online_registration_validation_educationstudentreregistrationswishes'])]
  50. private $days;
  51. /**
  52. * @var \DateTime
  53. */
  54. #[ORM\Column(type: 'time', nullable: true)]
  55. #[Assert\Time]
  56. #[Groups(['educationstudentwish', 'online_registration_educationstudentwishes', 'online_registration_educationstudentreregistrationswishes', 'online_registration_validation_educationstudentwishes', 'online_registration_validation_educationstudentreregistrationswishes'])]
  57. private $time;
  58. /**
  59. * @var AccessWish
  60. *
  61. *
  62. */
  63. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\AccessWish\AccessWish', inversedBy: 'educationStudentWishes')]
  64. #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
  65. #[Groups(['educationstudentwish', 'education_student_wish_list', 'online_registration_validation_access_family'])]
  66. private $accessWish;
  67. /**
  68. * @var AccessWish
  69. *
  70. *
  71. */
  72. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\AccessWish\AccessWish', inversedBy: 'educationStudentReregistrationsWishes')]
  73. #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
  74. #[Groups(['educationstudentwish', 'education_student_wish_list', 'online_registration_validation_access_family'])]
  75. private $accessWishReregistrations;
  76. private $accessSearch;
  77. /**
  78. * @var bool
  79. */
  80. #[ORM\Column(type: 'boolean', options: ['default' => false])]
  81. #[Assert\Type(type: 'boolean')]
  82. #[Assert\NotNull]
  83. #[Groups(['educationstudentwish', 'online_registration_educationstudentwishes', 'online_registration_validation_educationstudentwishes'])]
  84. private $registeredFollowingYear = false;
  85. /**
  86. * @var string
  87. */
  88. #[ORM\Column(type: 'string', options: ['default' => 'NO_INFORMATION'])]
  89. #[Assert\Type(type: 'string')]
  90. #[Assert\NotNull]
  91. #[Assert\Choice(callback: ['\AppBundle\Enum\OnlineRegistration\WishRegistration', 'toArray'])]
  92. #[Groups(['education_student_wish_list', 'online_registration_validation_educationstudentwishes', 'online_registration_validation_educationstudentreregistrationswishes', 'online_registration_educationstudentreregistrationswishes'])]
  93. private $wishRegistration = "NO_INFORMATION";
  94. /**
  95. * @var string
  96. */
  97. #[ORM\Column(type: 'string', options: ['default' => 'NEGOTIABLE'])]
  98. #[Assert\Type(type: 'string')]
  99. #[Assert\NotNull]
  100. #[Assert\Choice(callback: ['\AppBundle\Enum\OnlineRegistration\RegistrationStatus', 'toArray'])]
  101. #[Groups(['education_student_wish_list', 'online_registration_validation_educationstudentwishes', 'online_registration_validation_educationstudentreregistrationswishes'])]
  102. private $registrationStatus = "NEGOTIABLE";
  103. /**
  104. * @var string
  105. * @ExportTranslate(true)
  106. */
  107. #[Assert\Type(type: 'string')]
  108. #[Groups(['education_student_wish_list'])]
  109. private $origin;
  110. /**
  111. * @var EducationCurriculum
  112. */
  113. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\Education\EducationCurriculum')]
  114. #[Groups(['educationstudentwish_educationcurriculum', 'online_registration_validation_educationstudentwishes'])]
  115. private $educationCurriculum;
  116. /**
  117. * @var EducationStudent
  118. */
  119. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\Education\EducationStudent')]
  120. #[Groups(['educationstudentwish', 'online_registration_educationstudentwishes', 'online_registration_educationstudentreregistrationswishes', 'online_registration_validation_educationstudentwishes', 'online_registration_validation_educationstudentreregistrationswishes'])]
  121. private $educationStudent;
  122. /**
  123. * @var EducationTiming
  124. */
  125. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\Education\EducationTiming')]
  126. #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
  127. #[Groups(['educationstudentwish', 'online_registration_educationstudentwishes', 'online_registration_educationstudentreregistrationswishes', 'online_registration_validation_educationstudentwishes', 'online_registration_validation_educationstudentreregistrationswishes'])]
  128. private $educationTiming;
  129. /**
  130. * @var bool
  131. */
  132. #[ORM\Column(type: 'boolean', options: ['default' => false])]
  133. #[Assert\Type(type: 'boolean')]
  134. #[Assert\NotNull]
  135. #[Groups(['educationstudentwish'])]
  136. private $alreadyValidate = false;
  137. /**
  138. * Constructor
  139. */
  140. public function __construct()
  141. {
  142. }
  143. /**
  144. * Sets id.
  145. *
  146. * @param int $id
  147. *
  148. * @return $this
  149. */
  150. public function setId($id)
  151. {
  152. $this->id = $id;
  153. return $this;
  154. }
  155. /**
  156. * Get id
  157. *
  158. * @return integer
  159. */
  160. public function getId()
  161. {
  162. return $this->id;
  163. }
  164. /**
  165. * Set days
  166. *
  167. * @param array $days
  168. *
  169. * @return EducationStudentWish
  170. */
  171. public function setDays($days)
  172. {
  173. $this->days = $days;
  174. return $this;
  175. }
  176. /**
  177. * Get days
  178. *
  179. * @return array
  180. */
  181. public function getDays()
  182. {
  183. return $this->days;
  184. }
  185. /**
  186. * Set accessWish
  187. *
  188. * @param \AppBundle\Entity\AccessWish\AccessWish $accessWish
  189. *
  190. * @return EducationStudentWish
  191. */
  192. public function setAccessWish(\AppBundle\Entity\AccessWish\AccessWish $accessWish = null)
  193. {
  194. $this->accessWish = $accessWish;
  195. return $this;
  196. }
  197. /**
  198. * Get accessWish
  199. *
  200. * @return \AppBundle\Entity\AccessWish\AccessWish
  201. */
  202. public function getAccessWish()
  203. {
  204. return $this->accessWish;
  205. }
  206. /**
  207. * Set registeredFollowingYear
  208. *
  209. * @param boolean $registeredFollowingYear
  210. *
  211. * @return EducationStudentWish
  212. */
  213. public function setRegisteredFollowingYear($registeredFollowingYear)
  214. {
  215. $this->registeredFollowingYear = $registeredFollowingYear;
  216. return $this;
  217. }
  218. /**
  219. * Get registeredFollowingYear
  220. *
  221. * @return boolean
  222. */
  223. public function getRegisteredFollowingYear()
  224. {
  225. return $this->registeredFollowingYear;
  226. }
  227. /**
  228. * Set time
  229. *
  230. * @param \DateTime $time
  231. *
  232. * @return EducationStudentWish
  233. */
  234. public function setTime($time)
  235. {
  236. $this->time = $time;
  237. return $this;
  238. }
  239. /**
  240. * Get time
  241. *
  242. * @return \DateTime
  243. */
  244. public function getTime()
  245. {
  246. return $this->time ? $this->time->format('H:i') : $this->time;
  247. }
  248. public function getTimeDateTime()
  249. {
  250. return $this->time;
  251. }
  252. /**
  253. * Set registrationStatus
  254. *
  255. * @param string $registrationStatus
  256. *
  257. * @return EducationStudentWish
  258. */
  259. public function setRegistrationStatus($registrationStatus)
  260. {
  261. $this->registrationStatus = $registrationStatus;
  262. return $this;
  263. }
  264. /**
  265. * Get registrationStatus
  266. *
  267. * @return string
  268. */
  269. public function getRegistrationStatus()
  270. {
  271. return $this->registrationStatus;
  272. }
  273. /**
  274. * Set wishRegistration
  275. *
  276. * @param string $wishRegistration
  277. *
  278. * @return EducationStudentWish
  279. */
  280. public function setWishRegistration($wishRegistration)
  281. {
  282. $this->wishRegistration = $wishRegistration;
  283. return $this;
  284. }
  285. /**
  286. * Get wishRegistration
  287. *
  288. * @return string
  289. */
  290. public function getWishRegistration()
  291. {
  292. return $this->wishRegistration;
  293. }
  294. /**
  295. * Set accessWishReregistrations
  296. *
  297. * @param \AppBundle\Entity\AccessWish\AccessWish $accessWishReregistrations
  298. *
  299. * @return EducationStudentWish
  300. */
  301. public function setAccessWishReregistrations(\AppBundle\Entity\AccessWish\AccessWish $accessWishReregistrations = null)
  302. {
  303. $this->accessWishReregistrations = $accessWishReregistrations;
  304. return $this;
  305. }
  306. /**
  307. * Get accessWishReregistrations
  308. *
  309. * @return \AppBundle\Entity\AccessWish\AccessWish
  310. */
  311. public function getAccessWishReregistrations()
  312. {
  313. return $this->accessWishReregistrations;
  314. }
  315. /**
  316. * Set educationWish
  317. *
  318. * @param \AppBundle\Entity\Education\Education $educationWish
  319. *
  320. * @return EducationStudentWish
  321. */
  322. public function setEducationWish(\AppBundle\Entity\Education\Education $educationWish = null)
  323. {
  324. $this->educationWish = $educationWish;
  325. return $this;
  326. }
  327. /**
  328. * Get educationWish
  329. *
  330. * @return \AppBundle\Entity\Education\Education
  331. */
  332. public function getEducationWish()
  333. {
  334. return $this->educationWish;
  335. }
  336. public function getAccessSearch(){
  337. return $this->getAccessWish() ? $this->getAccessWish() : $this->getAccessWishReregistrations();
  338. }
  339. /**
  340. * @return mixed
  341. * @throws \Exception
  342. */
  343. public function getOrigin()
  344. {
  345. if(!empty($this->getAccessWishReregistrations())){
  346. return EducationStudentWishOriginEnum::REREGISTRATION;
  347. }else{
  348. return EducationStudentWishOriginEnum::NEW_REGISTRATION;
  349. }
  350. }
  351. /**
  352. * Set alreadyValidate
  353. *
  354. * @param boolean $alreadyValidate
  355. *
  356. * @return EducationStudentWish
  357. */
  358. public function setAlreadyValidate($alreadyValidate)
  359. {
  360. $this->alreadyValidate = $alreadyValidate;
  361. return $this;
  362. }
  363. /**
  364. * Get alreadyValidate
  365. *
  366. * @return boolean
  367. */
  368. public function getAlreadyValidate()
  369. {
  370. return $this->alreadyValidate;
  371. }
  372. /**
  373. * Set educationCurriculum
  374. *
  375. * @param \AppBundle\Entity\Education\EducationCurriculum $educationCurriculum
  376. *
  377. * @return EducationStudentWish
  378. */
  379. public function setEducationCurriculum(\AppBundle\Entity\Education\EducationCurriculum $educationCurriculum = null)
  380. {
  381. $this->educationCurriculum = $educationCurriculum;
  382. return $this;
  383. }
  384. /**
  385. * Get educationCurriculum
  386. *
  387. * @return \AppBundle\Entity\Education\EducationCurriculum
  388. */
  389. public function getEducationCurriculum()
  390. {
  391. return $this->educationCurriculum;
  392. }
  393. /**
  394. * Set educationTiming
  395. *
  396. * @param \AppBundle\Entity\Education\EducationTiming $educationTiming
  397. *
  398. * @return EducationStudentWish
  399. */
  400. public function setEducationTiming(\AppBundle\Entity\Education\EducationTiming $educationTiming = null)
  401. {
  402. $this->educationTiming = $educationTiming;
  403. return $this;
  404. }
  405. /**
  406. * Get educationTiming
  407. *
  408. * @return \AppBundle\Entity\Education\EducationTiming
  409. */
  410. public function getEducationTiming()
  411. {
  412. return $this->educationTiming;
  413. }
  414. /**
  415. * Set educationStudent
  416. *
  417. * @param \AppBundle\Entity\Education\EducationStudent $educationStudent
  418. *
  419. * @return EducationStudentWish
  420. */
  421. public function setEducationStudent(\AppBundle\Entity\Education\EducationStudent $educationStudent = null)
  422. {
  423. $this->educationStudent = $educationStudent;
  424. return $this;
  425. }
  426. /**
  427. * Get educationStudent
  428. *
  429. * @return \AppBundle\Entity\Education\EducationStudent
  430. */
  431. public function getEducationStudent()
  432. {
  433. return $this->educationStudent;
  434. }
  435. }