app/Entity/Schema/ORM/LeadDynoAffiliate.php line 14

Open in your IDE?
  1. <?php
  2. namespace Sq\Entity\Schema\ORM;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Sq\Entity\Affiliate\AffiliateTier;
  7. #[ORM\Table(name'leaddyno_affiliate')]
  8. #[ORM\UniqueConstraint(name'lda_m_id'columns: ['lda_m_id'])]
  9. #[ORM\UniqueConstraint(name'lda_affiliate_code'columns: ['lda_affiliate_code'])]
  10. #[ORM\Entity(repositoryClass'Sq\Service\Repository\ORM\LeadDynoAffiliateRepository')]
  11. class LeadDynoAffiliate
  12. {
  13.     /**
  14.      * @var int
  15.      */
  16.     #[ORM\Id]
  17.     #[ORM\Column(name'lda_affiliate_extid'type'integer'nullablefalseoptions: ['unsigned' => true'comment' => 'Affiliate ID returned by LeadDynoApi, primary key'])]
  18.     #[ORM\OneToMany(targetEntityLeadDynoLead::class, mappedBy'leadDynoAffiliate')]
  19.     #[ORM\JoinColumn(name'lda_affiliate_extid'referencedColumnName'ldl_referring_affiliate_extid'nullabletrue)]
  20.     private $affiliateExternalId;
  21.     /**
  22.      * @var ?Member
  23.      *
  24.      * Note: we can store affiliates who don't have a member account, if they signed up at LeadDyno directly, or as an overhaul User
  25.      */
  26.     #[ORM\OneToOne(targetEntityMember::class, inversedBy'leadDynoAffiliate')]
  27.     #[ORM\JoinColumn(name'lda_m_id'referencedColumnName'm_id'nullabletrue)]
  28.     private ?Member $member null;
  29.     /**
  30.      * @var string|null
  31.      */
  32.     #[ORM\Column(name'lda_email'type'binary_aes_encrypted'nullabletrue)]
  33.     private ?string $email '';
  34.     /**
  35.      * @var string|null
  36.      */
  37.     #[ORM\Column(name'lda_first_name'type'string'length45nullabletrue)]
  38.     private ?string $firstName;
  39.     /**
  40.      * @var string|null
  41.      */
  42.     #[ORM\Column(name'lda_last_name'type'string'length45nullabletrue)]
  43.     private ?string $lastName;
  44.     /**
  45.      * @var int|null
  46.      */
  47.     #[ORM\Column(name'lda_referring_affiliate_extid'type'integer'nullabletrueoptions: ['unsigned' => true'comment' => 'Referring Affiliate ID returned by LeadDynoApi'])]
  48.     private ?int $referringAffiliateExternalId;
  49.     /**
  50.      * @var \DateTimeInterface
  51.      */
  52.     #[ORM\Column(name'lda_date_created'type'datetime'nullabletrue)]
  53.     private \DateTimeInterface $dateCreated;
  54.     /**
  55.      * @var \DateTimeInterface
  56.      */
  57.     #[ORM\Column(name'lda_date_updated'type'datetime'nullabletrue)]
  58.     private \DateTimeInterface $dateUpdated;
  59.     /**
  60.      * @var ?User
  61.      *
  62.      * Not used - we always store affiliates against their linked m_id.
  63.      */
  64.     #[ORM\OneToOne(targetEntityUser::class, inversedBy'leadDynoAffiliate')]
  65.     #[ORM\JoinColumn(name'lda_u_id'referencedColumnName'u_id'nullabletrue)]
  66.     private ?User $user null;
  67.     /**
  68.      * @var string
  69.      */
  70.     #[ORM\Column(name'lda_affiliate_code'type'string'length191nullablefalseoptions: ['comment' => 'Affiliate code returned by LeadDynoApi'])]
  71.     private string $affiliateCode;
  72.     /**
  73.      * @var string
  74.      */
  75.     #[ORM\Column(name'lda_affiliate_tier'type'string'length191nullablefalseoptions: ['default' => 'bronze''comment' => 'Affiliate tier'])]
  76.     private string $affiliateTier;
  77.     /**
  78.      * @var string
  79.      */
  80.     #[ORM\Column(name'lda_affiliate_dashboard_url'type'string'length191nullablefalseoptions: ['comment' => "The affiliate's dashboard"])]
  81.     private string $affiliateDashboardUrl;
  82.     /**
  83.      * @var int|null
  84.      */
  85.     #[ORM\Column(name'lda_mautic_id'type'integer'options: ['unsigned' => true])]
  86.     private $mauticId;
  87.     /**
  88.      * @var string|null
  89.      */
  90.     #[ORM\Column(name'lda_status'type'string'length64nullabletrue)]
  91.     private $status;
  92.     /**
  93.      * @var string|null
  94.      */
  95.     #[ORM\Column(name'lda_paypal_email'type'binary_aes_encrypted'nullabletrue)]
  96.     private ?string $paypalEmail '';
  97.     /**
  98.      * @var bool|null
  99.      */
  100.     #[ORM\Column(name'lda_unsubscribed'type'boolean'nullabletrue)]
  101.     private $unsubscribed;
  102.     /**
  103.      * @var bool|null
  104.      */
  105.     #[ORM\Column(name'lda_archived'type'boolean'nullabletrue)]
  106.     private $archived;
  107.     /**
  108.      * @var bool|null
  109.      */
  110.     #[ORM\Column(name'lda_pending_approval'type'boolean'nullabletrue)]
  111.     private $pendingApproval;
  112.     #[ORM\OneToMany(targetEntityLeadDynoLead::class, mappedBy'leadDynoReferringAffiliate')]
  113.     private $leadDynoLeads;
  114.     public function __construct(int $affiliateExternalIdstring $affiliateCodestring $affiliateDashboardUrlAffiliateTier $affiliateTier)
  115.     {
  116.         $this->leadDynoLeads = new ArrayCollection();
  117.         $this->affiliateExternalId $affiliateExternalId;
  118.         $this->affiliateCode $affiliateCode;
  119.         $this->affiliateDashboardUrl $affiliateDashboardUrl;
  120.         $this->affiliateTier $affiliateTier->getName();
  121.     }
  122.     /**
  123.      * Affiliate may have signed up directly on LeadDyno, and not have a member account - so allow null.
  124.      *
  125.      * @return Member|null
  126.      */
  127.     public function getMember(): ?Member
  128.     {
  129.         return $this->member;
  130.     }
  131.     public function setMember(Member $member): self
  132.     {
  133.         $this->member $member;
  134.         return $this;
  135.     }
  136.     public function getEmail(): ?string
  137.     {
  138.         return $this->email;
  139.     }
  140.     public function setEmail(?string $email): self
  141.     {
  142.         $this->email $email;
  143.         return $this;
  144.     }
  145.     public function getFirstName(): ?string
  146.     {
  147.         return $this->firstName;
  148.     }
  149.     public function setFirstName(?string $firstName): self
  150.     {
  151.         $this->firstName $firstName;
  152.         return $this;
  153.     }
  154.     public function getLastName(): ?string
  155.     {
  156.         return $this->lastName;
  157.     }
  158.     public function setLastName(?string $lastName): self
  159.     {
  160.         $this->lastName $lastName;
  161.         return $this;
  162.     }
  163.     public function getReferringAffiliateExternalId(): ?int
  164.     {
  165.         return $this->referringAffiliateExternalId;
  166.     }
  167.     public function setReferringAffiliateExternalId(?int $referringAffiliateExternalId null): self
  168.     {
  169.         $this->referringAffiliateExternalId $referringAffiliateExternalId;
  170.         return $this;
  171.     }
  172.     public function getDateCreated(): ?\DateTimeInterface
  173.     {
  174.         return $this->dateCreated;
  175.     }
  176.     public function setDateCreated(\DateTimeInterface $dateCreated): self
  177.     {
  178.         $this->dateCreated $dateCreated;
  179.         return $this;
  180.     }
  181.     public function getDateUpdated(): ?\DateTimeInterface
  182.     {
  183.         return $this->dateUpdated;
  184.     }
  185.     public function setDateUpdated(\DateTimeInterface $dateUpdated): self
  186.     {
  187.         $this->dateUpdated $dateUpdated;
  188.         return $this;
  189.     }
  190.     /**
  191.      * Affiliate may have signed up directly on LeadDyno, and not have a user account - so allow null.
  192.      *
  193.      * @return User|null
  194.      */
  195.     public function getUser(): ?User
  196.     {
  197.         return $this->user;
  198.     }
  199.     public function setUser(User $user): self
  200.     {
  201.         $this->user $user;
  202.         return $this;
  203.     }
  204.     public function getAffiliateExternalId(): ?int
  205.     {
  206.         return $this->affiliateExternalId;
  207.     }
  208.     public function setAffiliateExternalId(int $affiliateExternalId): self
  209.     {
  210.         $this->affiliateExternalId $affiliateExternalId;
  211.         return $this;
  212.     }
  213.     public function getAffiliateCode(): ?string
  214.     {
  215.         return $this->affiliateCode;
  216.     }
  217.     public function setAffiliateCode(string $affiliateCode): self
  218.     {
  219.         $this->affiliateCode $affiliateCode;
  220.         return $this;
  221.     }
  222.     public function getAffiliateTier(): string
  223.     {
  224.         return $this->affiliateTier;
  225.     }
  226.     public function setAffiliateTier(AffiliateTier $affiliateTier): self
  227.     {
  228.         $this->affiliateTier $affiliateTier->getName();
  229.         return $this;
  230.     }
  231.     public function getAffiliateDashboardUrl(): ?string
  232.     {
  233.         return $this->affiliateDashboardUrl;
  234.     }
  235.     public function setAffiliateDashboardUrl(string $affiliateDashboardUrl): self
  236.     {
  237.         $this->affiliateDashboardUrl $affiliateDashboardUrl;
  238.         return $this;
  239.     }
  240.     public function getMauticId(): ?int
  241.     {
  242.         return $this->mauticId;
  243.     }
  244.     public function setMauticId(?int $mauticId): self
  245.     {
  246.         $this->mauticId $mauticId;
  247.         return $this;
  248.     }
  249.     /**
  250.      * @return string|null
  251.      */
  252.     public function getStatus(): ?string
  253.     {
  254.         return $this->status;
  255.     }
  256.     /**
  257.      * @param string|null $status
  258.      *
  259.      * @return LeadDynoAffiliate
  260.      */
  261.     public function setStatus(?string $status): LeadDynoAffiliate
  262.     {
  263.         $this->status $status;
  264.         return $this;
  265.     }
  266.     /**
  267.      * @return string|null
  268.      */
  269.     public function getPaypalEmail(): ?string
  270.     {
  271.         return $this->paypalEmail;
  272.     }
  273.     /**
  274.      * @param string|null $paypalEmail
  275.      *
  276.      * @return LeadDynoAffiliate
  277.      */
  278.     public function setPaypalEmail(?string $paypalEmail): self
  279.     {
  280.         $this->paypalEmail $paypalEmail;
  281.         return $this;
  282.     }
  283.     /**
  284.      * @return bool|null
  285.      */
  286.     public function getUnsubscribed(): ?bool
  287.     {
  288.         return $this->unsubscribed;
  289.     }
  290.     /**
  291.      * @param bool|null $unsubscribed
  292.      *
  293.      * @return LeadDynoAffiliate
  294.      */
  295.     public function setUnsubscribed(?bool $unsubscribed): self
  296.     {
  297.         $this->unsubscribed $unsubscribed;
  298.         return $this;
  299.     }
  300.     /**
  301.      * @return bool|null
  302.      */
  303.     public function getArchived(): ?bool
  304.     {
  305.         return $this->archived;
  306.     }
  307.     /**
  308.      * @param bool|null $archived
  309.      *
  310.      * @return LeadDynoAffiliate
  311.      */
  312.     public function setArchived(?bool $archived): self
  313.     {
  314.         $this->archived $archived;
  315.         return $this;
  316.     }
  317.     /**
  318.      * @return bool|null
  319.      */
  320.     public function getPendingApproval(): ?bool
  321.     {
  322.         return $this->pendingApproval;
  323.     }
  324.     /**
  325.      * @param bool|null $pendingApproval
  326.      *
  327.      * @return LeadDynoAffiliate
  328.      */
  329.     public function setPendingApproval(?bool $pendingApproval): self
  330.     {
  331.         $this->pendingApproval $pendingApproval;
  332.         return $this;
  333.     }
  334.     /**
  335.      * @return Collection|LeadDynoLead[]
  336.      */
  337.     public function getLeadDynoLeads(): Collection
  338.     {
  339.         return $this->leadDynoLeads;
  340.     }
  341. }