<?php
namespace Sq\Entity\Schema\ORM;
use Doctrine\ORM\Mapping as ORM;
/**
* MemberFlags.
*/
#[ORM\Entity]
#[ORM\Table(name: 'member_flags')]
#[ORM\UniqueConstraint(name: 'mf_m_id', columns: ['mf_m_id'])]
class MemberFlags
{
#[ORM\OneToOne(targetEntity: Member::class, inversedBy: 'flags')]
#[ORM\JoinColumn(name: 'mf_m_id', referencedColumnName: 'm_id')]
#[ORM\Id]
private $member;
/**
* @var bool|null
*/
#[ORM\Column(name: 'mf_vip', type: 'boolean', nullable: true)]
private $vip;
/**
* @var bool|null
*/
#[ORM\Column(name: 'mf_ambassador', type: 'boolean', nullable: true)]
private $ambassador;
/**
* @var bool|null
*/
#[ORM\Column(name: 'mf_influencer', type: 'boolean', nullable: true)]
private $influencer;
/**
* @var string|null
*/
#[ORM\Column(name: 'mf_discount', type: 'decimal', precision: 7, scale: 4, nullable: true)]
private $discount;
/**
* @var string|null
*/
#[ORM\Column(name: 'mf_discount_type', type: 'string', length: 32, nullable: true)]
private $discountType;
/**
* @var \DateTime|null
*/
#[ORM\Column(name: 'mf_discount_expiry', type: 'date', nullable: true)]
private $discountExpiry;
/**
* @var null|array
*/
#[ORM\Column(name: 'mf_features', type: 'simple_array', nullable: true)]
private $features;
/**
* @var string|null
*/
#[ORM\Column(name: 'mf_type', type: 'string', length: 0, nullable: true)]
private $type;
/**
* @var int|null
*/
#[ORM\Column(name: 'mf_ind_id', type: 'smallint', nullable: true)]
private $indId;
/**
* @var string|null
*/
#[ORM\Column(name: 'mf_country_code', type: 'string', length: 2, nullable: true)]
private $countryCode;
/**
* @var bool|null
*/
#[ORM\Column(name: 'mf_verified_business', type: 'boolean', nullable: true)]
private $verifiedBusiness;
/**
* @var bool|null
*/
#[ORM\Column(name: 'mf_inbox_tw_30_day_limit_seen', type: 'boolean', nullable: true)]
private $inboxTw30DayLimitSeen;
public function __construct(Member $member)
{
$this->member = $member;
}
public function getMember(): Member
{
return $this->member;
}
public function isVip(): ?bool
{
return $this->vip;
}
public function setVip(?bool $vip): self
{
$this->vip = $vip;
return $this;
}
public function isAmbassador(): ?bool
{
return $this->ambassador;
}
public function setAmbassador(?bool $ambassador): self
{
$this->ambassador = $ambassador;
return $this;
}
public function isInfluencer(): ?bool
{
return $this->influencer;
}
public function setInfluencer(?bool $influencer): self
{
$this->influencer = $influencer;
return $this;
}
public function getDiscount(): float
{
// Doctrine always gets decimals as string/null from DB, so we need to cast to float
return (float) $this->discount;
}
public function setDiscount(?float $discount): self
{
$this->discount = (string) $discount;
return $this;
}
public function getDiscountType(): ?string
{
return $this->discountType;
}
public function setDiscountType(?string $discountType): MemberFlags
{
$this->discountType = $discountType;
return $this;
}
public function getDiscountExpiry(): ?\DateTime
{
return $this->discountExpiry;
}
public function setDiscountExpiry(?\DateTime $discountExpiry): MemberFlags
{
$this->discountExpiry = $discountExpiry;
return $this;
}
public function getFeatures(): array
{
return $this->features ?? [];
}
public function setFeatures(?array $features): self
{
$this->features = $features;
return $this;
}
public function getType(): ?string
{
return $this->type;
}
public function setType(?string $type): self
{
$this->type = $type;
return $this;
}
public function getIndId(): ?int
{
return $this->indId;
}
public function setIndId(?int $indId): self
{
$this->indId = $indId;
return $this;
}
public function getCountryCode(): ?string
{
return $this->countryCode;
}
public function setCountryCode(?string $countryCode): self
{
$this->countryCode = $countryCode;
return $this;
}
public function isVerifiedBusiness(): ?bool
{
return $this->verifiedBusiness;
}
public function setVerifiedBusiness(?bool $verifiedBusiness): self
{
$this->verifiedBusiness = $verifiedBusiness;
return $this;
}
/**
* @param bool|null $inboxTw30DayLimitSeen
*
* @return MemberFlags
*/
public function setInboxTw30DayLimitSeen(?bool $inboxTw30DayLimitSeen): MemberFlags
{
$this->inboxTw30DayLimitSeen = $inboxTw30DayLimitSeen;
return $this;
}
/**
* @return bool|null
*/
public function isInboxTw30DayLimitSeen(): ?bool
{
return $this->inboxTw30DayLimitSeen;
}
}