OrganizationFixtures.php 4.0 KB

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