OrganizationFixtures.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace App\Tests\Fixture;
  3. use App\Entity\Booking\Event;
  4. use App\Entity\Core\ContactPoint;
  5. use App\Entity\Network\Network;
  6. use App\Entity\Network\NetworkOrganization;
  7. use App\Entity\Organization\Organization;
  8. use App\Entity\Organization\Parameters;
  9. use App\Enum\Booking\VisibilityEnum;
  10. use App\Enum\Core\ContactPointTypeEnum;
  11. use App\Enum\Organization\LegalEnum;
  12. use App\Enum\Organization\PrincipalTypeEnum;
  13. use App\Service\Utils\Uuid;
  14. use Doctrine\Bundle\FixturesBundle\Fixture;
  15. use Doctrine\Persistence\ObjectManager;
  16. class OrganizationFixtures extends Fixture
  17. {
  18. public function load(ObjectManager $em): void
  19. {
  20. $network = new Network();
  21. $network->setName('NET');
  22. $em->persist($network);
  23. // Create the root organization (opentalent)
  24. $parameters0 = new Parameters();
  25. $em->persist($parameters0);
  26. $contactPoint0 = new ContactPoint();
  27. $contactPoint0->setContactType(ContactPointTypeEnum::PRINCIPAL()->getValue());
  28. $em->persist($contactPoint0);
  29. $root = new Organization();
  30. $root->setName('Root');
  31. $root->setLegalStatus(LegalEnum::COMMERCIAL_SOCIETY()->getValue());
  32. $root->setPrincipalType(PrincipalTypeEnum::NATIONAL_FEDERATION()->getValue());
  33. $root->setParameters($parameters0);
  34. $root->addContactPoint($contactPoint0);
  35. $em->persist($root);
  36. $networkOrganisation0 = new NetworkOrganization();
  37. $networkOrganisation0->setOrganization($root);
  38. $networkOrganisation0->setNetwork($network);
  39. $em->persist($networkOrganisation0);
  40. // Create a federation organization
  41. $parameters1 = new Parameters();
  42. $em->persist($parameters1);
  43. $contactPoint1 = new ContactPoint();
  44. $contactPoint1->setContactType(ContactPointTypeEnum::PRINCIPAL()->getValue());
  45. $em->persist($contactPoint1);
  46. $fede = new Organization();
  47. $fede->setName('Fede 1');
  48. $fede->setLegalStatus(LegalEnum::ASSOCIATION_LAW_1901()->getValue());
  49. $fede->setPrincipalType(PrincipalTypeEnum::NATIONAL_FEDERATION()->getValue());
  50. $fede->setParameters($parameters1);
  51. $fede->addContactPoint($contactPoint1);
  52. $em->persist($fede);
  53. $networkOrganisation1 = new NetworkOrganization();
  54. $networkOrganisation1->setOrganization($fede);
  55. $networkOrganisation1->setNetwork($network);
  56. $networkOrganisation1->setParent($root);
  57. $em->persist($networkOrganisation1);
  58. // Create a simple organization
  59. $parameters2 = new Parameters();
  60. $em->persist($parameters2);
  61. $contactPoint2 = new ContactPoint();
  62. $contactPoint2->setContactType(ContactPointTypeEnum::PRINCIPAL()->getValue());
  63. $em->persist($contactPoint2);
  64. $organization = new Organization();
  65. $organization->setName('Organization 2');
  66. $organization->setLegalStatus(LegalEnum::ASSOCIATION_LAW_1901()->getValue());
  67. $organization->setPrincipalType(PrincipalTypeEnum::ARTISTIC_EDUCATION_ONLY()->getValue());
  68. $organization->setParameters($parameters2);
  69. $organization->addContactPoint($contactPoint2);
  70. $em->persist($organization);
  71. $networkOrganisation2 = new NetworkOrganization();
  72. $networkOrganisation2->setOrganization($organization);
  73. $networkOrganisation2->setNetwork($network);
  74. $networkOrganisation2->setParent($fede);
  75. $em->persist($networkOrganisation2);
  76. // Booking
  77. $now = new \DateTime('now');
  78. $start = $now->add(new \DateInterval('P1M'));
  79. $end = $now->add(new \DateInterval('P1M1D'));
  80. $event = new Event();
  81. $event->setOrganization($organization);
  82. $event->setName('My Event');
  83. $event->setDatetimeStart($start);
  84. $event->setDatetimeEnd($end);
  85. $event->setVisibility(VisibilityEnum::PUBLIC_VISIBILITY());
  86. $event->setUuid(Uuid::uuid());
  87. $em->persist($event);
  88. $em->flush();
  89. }
  90. }