|
- <?php
-
- namespace App\Models\HtpmsCustomer\QRService;
-
- use App\Models\Cast;
- use App\Models\ColumnName;
- use App\Models\HistoryModel;
- use App\Models\HtpmsCustomer\HtpmsCustomerAppModel;
- use App\Util\DateUtil;
- use Illuminate\Support\Carbon;
-
- /**
- * 取得済みQRサービス券
- */
- class AcquisitionTicket extends HtpmsCustomerAppModel
- {
- const COL_NAME_SHOP_ID = ColumnName::SHOP_ID; // 店舗ID
- const COL_NAME_PUBLISHING_DATE = ColumnName::PUBLISHING_DATE;
- const COL_NAME_PUBLISHING_NO = ColumnName::PUBLISHING_NO;
- const COL_NAME_QR_SERVICE_PARKING_GROUP_ID = ColumnName::QR_SERVICE_PARKING_GROUP_ID;
- const COL_NAME_DISCOUNT_TICKET_CODE = ColumnName::DISCOUNT_TICKET_CODE; // サービス券コード
- const COL_NAME_SHOP_NO = ColumnName::SHOP_NO; // 店舗番号
- const COL_NAME_EXPIRES_AT = "expires_at"; // 有効期限
- const COL_NAME_PARKING_MANAGEMENT_CODE = ColumnName::PARKING_MANAGEMENT_CODE; // 駐車場管理コード
- const COL_NAME_USED_AT = "used_at"; // 利用日時
- const COL_NAME_DISCOUNT_AMOUNT = "discount_amount"; // 割引金額
-
- protected $table = "tbl3_qrs_acquisition_tickets";
-
- protected $casts = [
- self::COL_NAME_PUBLISHING_DATE => Cast::DATE,
- self::COL_NAME_EXPIRES_AT => Cast::DATETIME,
- self::COL_NAME_USED_AT => Cast::DATETIME,
- ];
-
- public function getHistory(): ?HistoryModel
- {
- return null;
- }
-
- public function getModelName(): string
- {
- return "取得済みQRサービス券";
- }
-
- /**
- * 期限切れ判定 切れている場合trueを返却
- */
- public function iseExpired(?Carbon $基準時刻 = null): bool
- {
- if ($this->expires_at === null) return false;
-
- if ($基準時刻 === null) {
- $基準時刻 = DateUtil::now();
- }
-
- if ($this->expires_at < $基準時刻) {
- return true;
- }
- return false;
- }
-
- /**
- * 使用済み判定 使用済みの場合trueを返却
- *
- * @return boolean
- */
- public function isUsed(): bool
- {
- return $this->used_at !== null;
- }
-
- public function canUse(): bool
- {
- return $this->isUsed() === false && $this->iseExpired() === false;
- }
- }
|