You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
2.1KB

  1. <?php
  2. namespace App\Kintone\Models\SubTable\SeasonTicketContractSelection;
  3. use App\Kintone\Models\SeasonTicketContractSelection;
  4. use App\Kintone\Models\SubTable\SubTableData;
  5. use App\Util\DateUtil;
  6. use Illuminate\Support\Carbon;
  7. class Candidate extends SubTableData
  8. {
  9. public bool $emailSendTarget;
  10. public int $entryRecordNo;
  11. public string $status;
  12. public string $planName;
  13. public string $entryNo;
  14. public string $name;
  15. public ?Carbon $entryDatetime;
  16. public ?Carbon $wantsToUseStartDate;
  17. public int $carAmount;
  18. public string $email;
  19. public function __construct(array $data = [])
  20. {
  21. $this->emailSendTarget = count(data_get($data, SeasonTicketContractSelection::FIELD_CANDIDATE_EMAIL_SEND_TARGET, [])) !== 0;
  22. $this->entryRecordNo = intval(data_get($data, SeasonTicketContractSelection::FIELD_CANDIDATE_LIST_RECORD_NO, 0));
  23. $this->planName = data_get($data, SeasonTicketContractSelection::FIELD_CANDIDATE_LIST_STATUS, "");
  24. $this->planName = data_get($data, SeasonTicketContractSelection::FIELD_CANDIDATE_LIST_PLAN, "");
  25. $this->entryNo = data_get($data, SeasonTicketContractSelection::FIELD_CANDIDATE_LIST_PLAN, "");
  26. $this->name = data_get($data, SeasonTicketContractSelection::FIELD_CANDIDATE_LIST_NAME, "");
  27. $this->entryDatetime = DateUtil::parse(data_get($data, SeasonTicketContractSelection::FIELD_TARGET_ROOM_LIST_ROOM_NO, ""));
  28. $this->wantsToUseStartDate = DateUtil::parse(data_get($data, SeasonTicketContractSelection::FIELD_CANDIDATE_LIST_WANTS_TO_USE_START_DATE, ""));
  29. $this->carAmount = intval(data_get($data, SeasonTicketContractSelection::FIELD_CANDIDATE_LIST_CAR_AMOUNT, 0));
  30. $this->email = data_get($data, SeasonTicketContractSelection::FIELD_TARGET_ROOM_LIST_ROOM_NO, "");
  31. parent::__construct($data);
  32. }
  33. public function toArray(): array
  34. {
  35. return [
  36. SeasonTicketContractSelection::FIELD_CANDIDATE_EMAIL_SEND_TARGET => $this->emailSendTarget ? ["〇"] : [],
  37. SeasonTicketContractSelection::FIELD_CANDIDATE_LIST_RECORD_NO => $this->entryRecordNo,
  38. ];
  39. }
  40. }