openstackid-resources/app/Models/Foundation/Summit/Registration/SponsorBadgeScan.php

166 lines
3.9 KiB
PHP

<?php namespace models\summit;
/**
* Copyright 2019 OpenStack Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
use models\main\Member;
use models\utils\One2ManyPropertyTrait;
use Doctrine\ORM\Mapping AS ORM;
/**
* @ORM\Entity
* @ORM\Table(name="SponsorBadgeScan")
* Class SponsorBadgeScan
* @package models\summit
*/
class SponsorBadgeScan extends SponsorUserInfoGrant
{
const ClassName = 'SponsorBadgeScan';
use One2ManyPropertyTrait;
protected $getIdMappings = [
'getUserId' => 'user',
'getBadgeId' => 'badge',
];
protected $hasPropertyMappings = [
'hasUser' => 'user',
'hasBadge' => 'badge',
];
/**
* @ORM\Column(name="QRCode", type="string")
* @var string
*/
private $qr_code;
/**
* @var \DateTime
* @ORM\Column(name="ScanDate", type="datetime")
*/
protected $scan_date;
/**
* @ORM\ManyToOne(targetEntity="models\main\Member")
* @ORM\JoinColumn(name="UserID", referencedColumnName="ID")
* @var Member
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity="models\summit\SummitAttendeeBadge")
* @ORM\JoinColumn(name="BadgeID", referencedColumnName="ID")
* @var SummitAttendeeBadge
*/
private $badge;
/**
* @return string
*/
public function getQRCode(): string
{
return $this->qr_code;
}
/**
* @param string $qr_code
*/
public function setQRCode(string $qr_code): void
{
$this->qr_code = $qr_code;
}
/**
* @return Sponsor
*/
public function getSponsor(): Sponsor
{
return $this->sponsor;
}
/**
* @param Sponsor $sponsor
*/
public function setSponsor(Sponsor $sponsor): void
{
$this->sponsor = $sponsor;
}
/**
* @return Member
*/
public function getUser(): Member
{
return $this->user;
}
/**
* @param Member $user
*/
public function setUser(Member $user): void
{
$this->user = $user;
}
/**
* @return SummitAttendeeBadge
*/
public function getBadge(): SummitAttendeeBadge
{
return $this->badge;
}
/**
* @param SummitAttendeeBadge $badge
*/
public function setBadge(SummitAttendeeBadge $badge): void
{
$this->badge = $badge;
}
/**
* @return \DateTime
*/
public function getScanDate(): \DateTime
{
return $this->scan_date;
}
/**
* @param \DateTime $scan_date
*/
public function setScanDate(\DateTime $scan_date): void
{
$this->scan_date = $scan_date;
}
public function getAttendeeFirstName():?string{
$attendee = $this->getBadge()->getTicket()->getOwner();
return $attendee->hasMember() ? $attendee->getMember()->getFirstName() : $attendee->getFirstName();
}
public function getAttendeeLastName():?string{
$attendee = $this->getBadge()->getTicket()->getOwner();
return $attendee->hasMember() ? $attendee->getMember()->getLastName() :$attendee->getSurname();
}
public function getAttendeeEmail():?string{
$attendee = $this->getBadge()->getTicket()->getOwner();
return $attendee->getEmail();
}
public function getAttendeeCompany():?string{
$attendee = $this->getBadge()->getTicket()->getOwner();
return $attendee->getCompanyName();
}
}