src/JanusHercules/IntegratedExternalPartnerCustomers/Domain/Entity/WeclappContract.php line 12

Open in your IDE?
  1. <?php
  2. namespace JanusHercules\IntegratedExternalPartnerCustomers\Domain\Entity;
  3. use App\Entity\ExternalPartner\IntegratedExternalPartnerCustomer;
  4. use DateTime;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. #[ORM\Entity]
  8. #[ORM\Table(name: 'weclapp_contracts')]
  9. class WeclappContract
  10. {
  11. public function __construct(
  12. string $id,
  13. WeclappParty $weclappParty,
  14. IntegratedExternalPartnerCustomer $customer,
  15. string $name,
  16. int $contractNumber,
  17. DateTime $createdAt,
  18. int $extensionMonths,
  19. DateTime $startDate,
  20. DateTime $endDate,
  21. string $status
  22. ) {
  23. $this->id = $id;
  24. $this->weclappParty = $weclappParty;
  25. $this->name = $name;
  26. $this->integratedExternalPartnerCustomer = $customer;
  27. $this->contractNumber = $contractNumber;
  28. $this->createdAt = $createdAt;
  29. $this->extensionMonths = $extensionMonths;
  30. $this->startDate = $startDate;
  31. $this->endDate = $endDate;
  32. $this->status = $status;
  33. }
  34. #[ORM\Id]
  35. #[ORM\Column(
  36. type: Types::STRING
  37. )]
  38. private string $id; // yes, all weclapp IDs are seemingly numeric, but the API defines them as type string
  39. public function getId(): string
  40. {
  41. return $this->id;
  42. }
  43. #[ORM\ManyToOne(
  44. targetEntity: WeclappParty::class,
  45. cascade : ['persist']
  46. )]
  47. #[ORM\JoinColumn(
  48. name : 'weclapp_parties_id',
  49. referencedColumnName: 'id',
  50. onDelete : 'CASCADE'
  51. )]
  52. private WeclappParty $weclappParty;
  53. public function getWeclappParty(): WeclappParty
  54. {
  55. return $this->weclappParty;
  56. }
  57. public function setWeclappParty(WeclappParty $weclappParty): void
  58. {
  59. $this->weclappParty = $weclappParty;
  60. }
  61. #[ORM\ManyToOne(
  62. targetEntity: IntegratedExternalPartnerCustomer::class,
  63. cascade : ['persist']
  64. )]
  65. #[ORM\JoinColumn(
  66. name : 'integrated_external_partner_customers_id',
  67. referencedColumnName: 'id',
  68. onDelete : 'CASCADE'
  69. )]
  70. private IntegratedExternalPartnerCustomer $integratedExternalPartnerCustomer;
  71. public function getIntegratedExternalPartnerCustomer(): IntegratedExternalPartnerCustomer
  72. {
  73. return $this->integratedExternalPartnerCustomer;
  74. }
  75. public function setIntegratedExternalPartnerCustomer(IntegratedExternalPartnerCustomer $integratedExternalPartnerCustomer): void
  76. {
  77. $this->integratedExternalPartnerCustomer = $integratedExternalPartnerCustomer;
  78. }
  79. public function setExtensionMonths(int $extensionMonths): void
  80. {
  81. $this->extensionMonths = $extensionMonths;
  82. }
  83. #[ORM\Column(
  84. type: Types::STRING
  85. )]
  86. private string $name;
  87. public function getName(): string
  88. {
  89. return $this->name;
  90. }
  91. public function setName(string $name): void
  92. {
  93. $this->name = $name;
  94. }
  95. #[ORM\Column(
  96. type: Types::INTEGER
  97. )]
  98. private int $contractNumber;
  99. public function getContractNumber(): int
  100. {
  101. return $this->contractNumber;
  102. }
  103. public function setContractNumber(int $contractNumber): void
  104. {
  105. $this->contractNumber = $contractNumber;
  106. }
  107. #[ORM\Column(
  108. type : Types::DATETIME_MUTABLE,
  109. nullable: false
  110. )]
  111. private DateTime $createdAt;
  112. public function setCreatedAt(DateTime $createdAt): void
  113. {
  114. $this->createdAt = $createdAt;
  115. }
  116. public function getCreatedAt(): DateTime
  117. {
  118. return $this->createdAt;
  119. }
  120. #[ORM\Column(
  121. type : Types::DATETIME_MUTABLE,
  122. nullable: false
  123. )]
  124. private DateTime $startDate;
  125. public function setStartDate(DateTime $startDate): void
  126. {
  127. $this->startDate = $startDate;
  128. }
  129. public function getStartDate(): DateTime
  130. {
  131. return $this->startDate;
  132. }
  133. #[ORM\Column(
  134. type : Types::DATETIME_MUTABLE,
  135. nullable: false
  136. )]
  137. private DateTime $endDate;
  138. public function setEndDate(DateTime $endDate): void
  139. {
  140. $this->endDate = $endDate;
  141. }
  142. public function getEndDate(): DateTime
  143. {
  144. return $this->endDate;
  145. }
  146. #[ORM\Column(
  147. type: Types::INTEGER
  148. )]
  149. private int $extensionMonths;
  150. public function getExtensionMonths(): int
  151. {
  152. return $this->extensionMonths;
  153. }
  154. #[ORM\Column(
  155. type: Types::STRING
  156. )]
  157. private string $status;
  158. public function getStatus(): string
  159. {
  160. return $this->status;
  161. }
  162. public function setStatus(string $status): void
  163. {
  164. $this->status = $status;
  165. }
  166. }