| POST | /v1/coverage/gaps/{CoverageGapId}/noshow/declare |
|---|
<?php namespace dtos;
use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};
class CoverageExplanationSource implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $PolicyName=null,
/** @var string|null */
public ?string $CascadeLevel=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['PolicyName'])) $this->PolicyName = $o['PolicyName'];
if (isset($o['CascadeLevel'])) $this->CascadeLevel = $o['CascadeLevel'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->PolicyName)) $o['PolicyName'] = $this->PolicyName;
if (isset($this->CascadeLevel)) $o['CascadeLevel'] = $this->CascadeLevel;
return empty($o) ? new class(){} : $o;
}
}
class CoverageExplanationOverride implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Who=null,
/** @var string|null */
public ?string $Consequence=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Who'])) $this->Who = $o['Who'];
if (isset($o['Consequence'])) $this->Consequence = $o['Consequence'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Who)) $o['Who'] = $this->Who;
if (isset($this->Consequence)) $o['Consequence'] = $this->Consequence;
return empty($o) ? new class(){} : $o;
}
}
class CoverageExplanation implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $PlainSentence=null,
/** @var string|null */
public ?string $RuleId=null,
/** @var string|null */
public ?string $RuleName=null,
/** @var string|null */
public ?string $Demand=null,
/** @var CoverageExplanationSource|null */
public ?CoverageExplanationSource $Source=null,
/** @var string|null */
public ?string $Kind=null,
/** @var string|null */
public ?string $WhyItExists=null,
/** @var string|null */
public ?string $WhatWouldChangeIt=null,
/** @var CoverageExplanationOverride|null */
public ?CoverageExplanationOverride $Override=null,
/** @var string|null */
public ?string $Drill=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['PlainSentence'])) $this->PlainSentence = $o['PlainSentence'];
if (isset($o['RuleId'])) $this->RuleId = $o['RuleId'];
if (isset($o['RuleName'])) $this->RuleName = $o['RuleName'];
if (isset($o['Demand'])) $this->Demand = $o['Demand'];
if (isset($o['Source'])) $this->Source = JsonConverters::from('CoverageExplanationSource', $o['Source']);
if (isset($o['Kind'])) $this->Kind = $o['Kind'];
if (isset($o['WhyItExists'])) $this->WhyItExists = $o['WhyItExists'];
if (isset($o['WhatWouldChangeIt'])) $this->WhatWouldChangeIt = $o['WhatWouldChangeIt'];
if (isset($o['Override'])) $this->Override = JsonConverters::from('CoverageExplanationOverride', $o['Override']);
if (isset($o['Drill'])) $this->Drill = $o['Drill'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->PlainSentence)) $o['PlainSentence'] = $this->PlainSentence;
if (isset($this->RuleId)) $o['RuleId'] = $this->RuleId;
if (isset($this->RuleName)) $o['RuleName'] = $this->RuleName;
if (isset($this->Demand)) $o['Demand'] = $this->Demand;
if (isset($this->Source)) $o['Source'] = JsonConverters::to('CoverageExplanationSource', $this->Source);
if (isset($this->Kind)) $o['Kind'] = $this->Kind;
if (isset($this->WhyItExists)) $o['WhyItExists'] = $this->WhyItExists;
if (isset($this->WhatWouldChangeIt)) $o['WhatWouldChangeIt'] = $this->WhatWouldChangeIt;
if (isset($this->Override)) $o['Override'] = JsonConverters::to('CoverageExplanationOverride', $this->Override);
if (isset($this->Drill)) $o['Drill'] = $this->Drill;
return empty($o) ? new class(){} : $o;
}
}
class CoverageCandidateCheck implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $CheckId=null,
/** @var string|null */
public ?string $Result=null,
/** @var CoverageExplanation|null */
public ?CoverageExplanation $Expl=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['CheckId'])) $this->CheckId = $o['CheckId'];
if (isset($o['Result'])) $this->Result = $o['Result'];
if (isset($o['Expl'])) $this->Expl = JsonConverters::from('CoverageExplanation', $o['Expl']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->CheckId)) $o['CheckId'] = $this->CheckId;
if (isset($this->Result)) $o['Result'] = $this->Result;
if (isset($this->Expl)) $o['Expl'] = JsonConverters::to('CoverageExplanation', $this->Expl);
return empty($o) ? new class(){} : $o;
}
}
class CoverageEffect implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Icon=null,
/** @var string|null */
public ?string $Text=null,
/** @var string|null */
public ?string $RuleId=null,
/** @var CoverageExplanation|null */
public ?CoverageExplanation $Expl=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Icon'])) $this->Icon = $o['Icon'];
if (isset($o['Text'])) $this->Text = $o['Text'];
if (isset($o['RuleId'])) $this->RuleId = $o['RuleId'];
if (isset($o['Expl'])) $this->Expl = JsonConverters::from('CoverageExplanation', $o['Expl']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Icon)) $o['Icon'] = $this->Icon;
if (isset($this->Text)) $o['Text'] = $this->Text;
if (isset($this->RuleId)) $o['RuleId'] = $this->RuleId;
if (isset($this->Expl)) $o['Expl'] = JsonConverters::to('CoverageExplanation', $this->Expl);
return empty($o) ? new class(){} : $o;
}
}
class CoverageCandidate implements JsonSerializable
{
public function __construct(
/** @var int */
public int $ContactId=0,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $FirstName=null,
/** @var string|null */
public ?string $Initials=null,
/** @var int */
public int $Rank=0,
/** @var string|null */
public ?string $DiffLine=null,
/** @var string|null */
public ?string $CostLine=null,
/** @var string|null */
public ?string $CostTone=null,
/** @var CoverageExplanation|null */
public ?CoverageExplanation $RankExpl=null,
/** @var float|null */
public ?float $MarginPct=null,
/** @var string|null */
public ?string $MarginTone=null,
/** @var float|null */
public ?float $Loaded=null,
/** @var float|null */
public ?float $Billed=null,
/** @var float|null */
public ?float $OtHours=null,
/** @var float|null */
public ?float $OtPremium=null,
/** @var array<CoverageCandidateCheck>|null */
public ?array $Checks=null,
/** @var array<CoverageEffect>|null */
public ?array $Preview=null,
/** @var array<CoverageEffect>|null */
public ?array $Confirm=null,
/** @var bool|null */
public ?bool $HasWarn=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ContactId'])) $this->ContactId = $o['ContactId'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['FirstName'])) $this->FirstName = $o['FirstName'];
if (isset($o['Initials'])) $this->Initials = $o['Initials'];
if (isset($o['Rank'])) $this->Rank = $o['Rank'];
if (isset($o['DiffLine'])) $this->DiffLine = $o['DiffLine'];
if (isset($o['CostLine'])) $this->CostLine = $o['CostLine'];
if (isset($o['CostTone'])) $this->CostTone = $o['CostTone'];
if (isset($o['RankExpl'])) $this->RankExpl = JsonConverters::from('CoverageExplanation', $o['RankExpl']);
if (isset($o['MarginPct'])) $this->MarginPct = $o['MarginPct'];
if (isset($o['MarginTone'])) $this->MarginTone = $o['MarginTone'];
if (isset($o['Loaded'])) $this->Loaded = $o['Loaded'];
if (isset($o['Billed'])) $this->Billed = $o['Billed'];
if (isset($o['OtHours'])) $this->OtHours = $o['OtHours'];
if (isset($o['OtPremium'])) $this->OtPremium = $o['OtPremium'];
if (isset($o['Checks'])) $this->Checks = JsonConverters::fromArray('CoverageCandidateCheck', $o['Checks']);
if (isset($o['Preview'])) $this->Preview = JsonConverters::fromArray('CoverageEffect', $o['Preview']);
if (isset($o['Confirm'])) $this->Confirm = JsonConverters::fromArray('CoverageEffect', $o['Confirm']);
if (isset($o['HasWarn'])) $this->HasWarn = $o['HasWarn'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ContactId)) $o['ContactId'] = $this->ContactId;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->FirstName)) $o['FirstName'] = $this->FirstName;
if (isset($this->Initials)) $o['Initials'] = $this->Initials;
if (isset($this->Rank)) $o['Rank'] = $this->Rank;
if (isset($this->DiffLine)) $o['DiffLine'] = $this->DiffLine;
if (isset($this->CostLine)) $o['CostLine'] = $this->CostLine;
if (isset($this->CostTone)) $o['CostTone'] = $this->CostTone;
if (isset($this->RankExpl)) $o['RankExpl'] = JsonConverters::to('CoverageExplanation', $this->RankExpl);
if (isset($this->MarginPct)) $o['MarginPct'] = $this->MarginPct;
if (isset($this->MarginTone)) $o['MarginTone'] = $this->MarginTone;
if (isset($this->Loaded)) $o['Loaded'] = $this->Loaded;
if (isset($this->Billed)) $o['Billed'] = $this->Billed;
if (isset($this->OtHours)) $o['OtHours'] = $this->OtHours;
if (isset($this->OtPremium)) $o['OtPremium'] = $this->OtPremium;
if (isset($this->Checks)) $o['Checks'] = JsonConverters::toArray('CoverageCandidateCheck', $this->Checks);
if (isset($this->Preview)) $o['Preview'] = JsonConverters::toArray('CoverageEffect', $this->Preview);
if (isset($this->Confirm)) $o['Confirm'] = JsonConverters::toArray('CoverageEffect', $this->Confirm);
if (isset($this->HasWarn)) $o['HasWarn'] = $this->HasWarn;
return empty($o) ? new class(){} : $o;
}
}
class CoverageBlockedCandidate implements JsonSerializable
{
public function __construct(
/** @var int */
public int $ContactId=0,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $Initials=null,
/** @var string|null */
public ?string $Reason=null,
/** @var string|null */
public ?string $ChangeChip=null,
/** @var CoverageExplanation|null */
public ?CoverageExplanation $Expl=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ContactId'])) $this->ContactId = $o['ContactId'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Initials'])) $this->Initials = $o['Initials'];
if (isset($o['Reason'])) $this->Reason = $o['Reason'];
if (isset($o['ChangeChip'])) $this->ChangeChip = $o['ChangeChip'];
if (isset($o['Expl'])) $this->Expl = JsonConverters::from('CoverageExplanation', $o['Expl']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ContactId)) $o['ContactId'] = $this->ContactId;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Initials)) $o['Initials'] = $this->Initials;
if (isset($this->Reason)) $o['Reason'] = $this->Reason;
if (isset($this->ChangeChip)) $o['ChangeChip'] = $this->ChangeChip;
if (isset($this->Expl)) $o['Expl'] = JsonConverters::to('CoverageExplanation', $this->Expl);
return empty($o) ? new class(){} : $o;
}
}
class CoverageOfferInfo implements JsonSerializable
{
public function __construct(
/** @var int */
public int $CoverageOfferId=0,
/** @var int */
public int $ContactId=0,
/** @var string|null */
public ?string $Name=null,
/** @var int */
public int $Ring=0,
/** @var string|null */
public ?string $Channel=null,
/** @var string|null */
public ?string $Status=null,
/** @var DateTime */
public DateTime $SentAtUtc=new DateTime(),
/** @var DateTime|null */
public ?DateTime $RespondedAtUtc=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['CoverageOfferId'])) $this->CoverageOfferId = $o['CoverageOfferId'];
if (isset($o['ContactId'])) $this->ContactId = $o['ContactId'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Ring'])) $this->Ring = $o['Ring'];
if (isset($o['Channel'])) $this->Channel = $o['Channel'];
if (isset($o['Status'])) $this->Status = $o['Status'];
if (isset($o['SentAtUtc'])) $this->SentAtUtc = JsonConverters::from('DateTime', $o['SentAtUtc']);
if (isset($o['RespondedAtUtc'])) $this->RespondedAtUtc = JsonConverters::from('DateTime', $o['RespondedAtUtc']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->CoverageOfferId)) $o['CoverageOfferId'] = $this->CoverageOfferId;
if (isset($this->ContactId)) $o['ContactId'] = $this->ContactId;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Ring)) $o['Ring'] = $this->Ring;
if (isset($this->Channel)) $o['Channel'] = $this->Channel;
if (isset($this->Status)) $o['Status'] = $this->Status;
if (isset($this->SentAtUtc)) $o['SentAtUtc'] = JsonConverters::to('DateTime', $this->SentAtUtc);
if (isset($this->RespondedAtUtc)) $o['RespondedAtUtc'] = JsonConverters::to('DateTime', $this->RespondedAtUtc);
return empty($o) ? new class(){} : $o;
}
}
class CoverageApprovalInfo implements JsonSerializable
{
public function __construct(
/** @var int */
public int $CoverageApprovalId=0,
/** @var int */
public int $CoverageGapId=0,
/** @var string|null */
public ?string $Type=null,
/** @var string|null */
public ?string $Status=null,
/** @var DateTime */
public DateTime $RequestedAtUtc=new DateTime(),
/** @var array<CoverageEffect>|null */
public ?array $Effects=null,
/** @var int|null */
public ?int $ContactId=null,
/** @var string|null */
public ?string $ContactName=null,
/** @var DateTime|null */
public ?DateTime $DecidedAtUtc=null,
/** @var string|null */
public ?string $DecisionNote=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['CoverageApprovalId'])) $this->CoverageApprovalId = $o['CoverageApprovalId'];
if (isset($o['CoverageGapId'])) $this->CoverageGapId = $o['CoverageGapId'];
if (isset($o['Type'])) $this->Type = $o['Type'];
if (isset($o['Status'])) $this->Status = $o['Status'];
if (isset($o['RequestedAtUtc'])) $this->RequestedAtUtc = JsonConverters::from('DateTime', $o['RequestedAtUtc']);
if (isset($o['Effects'])) $this->Effects = JsonConverters::fromArray('CoverageEffect', $o['Effects']);
if (isset($o['ContactId'])) $this->ContactId = $o['ContactId'];
if (isset($o['ContactName'])) $this->ContactName = $o['ContactName'];
if (isset($o['DecidedAtUtc'])) $this->DecidedAtUtc = JsonConverters::from('DateTime', $o['DecidedAtUtc']);
if (isset($o['DecisionNote'])) $this->DecisionNote = $o['DecisionNote'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->CoverageApprovalId)) $o['CoverageApprovalId'] = $this->CoverageApprovalId;
if (isset($this->CoverageGapId)) $o['CoverageGapId'] = $this->CoverageGapId;
if (isset($this->Type)) $o['Type'] = $this->Type;
if (isset($this->Status)) $o['Status'] = $this->Status;
if (isset($this->RequestedAtUtc)) $o['RequestedAtUtc'] = JsonConverters::to('DateTime', $this->RequestedAtUtc);
if (isset($this->Effects)) $o['Effects'] = JsonConverters::toArray('CoverageEffect', $this->Effects);
if (isset($this->ContactId)) $o['ContactId'] = $this->ContactId;
if (isset($this->ContactName)) $o['ContactName'] = $this->ContactName;
if (isset($this->DecidedAtUtc)) $o['DecidedAtUtc'] = JsonConverters::to('DateTime', $this->DecidedAtUtc);
if (isset($this->DecisionNote)) $o['DecisionNote'] = $this->DecisionNote;
return empty($o) ? new class(){} : $o;
}
}
class CoverageGapEventInfo implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $EventType=null,
/** @var string|null */
public ?string $Channel=null,
/** @var string|null */
public ?string $Detail=null,
/** @var string|null */
public ?string $ContactName=null,
/** @var DateTime */
public DateTime $AtUtc=new DateTime()
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['EventType'])) $this->EventType = $o['EventType'];
if (isset($o['Channel'])) $this->Channel = $o['Channel'];
if (isset($o['Detail'])) $this->Detail = $o['Detail'];
if (isset($o['ContactName'])) $this->ContactName = $o['ContactName'];
if (isset($o['AtUtc'])) $this->AtUtc = JsonConverters::from('DateTime', $o['AtUtc']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->EventType)) $o['EventType'] = $this->EventType;
if (isset($this->Channel)) $o['Channel'] = $this->Channel;
if (isset($this->Detail)) $o['Detail'] = $this->Detail;
if (isset($this->ContactName)) $o['ContactName'] = $this->ContactName;
if (isset($this->AtUtc)) $o['AtUtc'] = JsonConverters::to('DateTime', $this->AtUtc);
return empty($o) ? new class(){} : $o;
}
}
class CoverageMoveOption implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Key=null,
/** @var string|null */
public ?string $Label=null,
/** @var string|null */
public ?string $Detail=null,
/** @var CoverageExplanation|null */
public ?CoverageExplanation $Expl=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Key'])) $this->Key = $o['Key'];
if (isset($o['Label'])) $this->Label = $o['Label'];
if (isset($o['Detail'])) $this->Detail = $o['Detail'];
if (isset($o['Expl'])) $this->Expl = JsonConverters::from('CoverageExplanation', $o['Expl']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Key)) $o['Key'] = $this->Key;
if (isset($this->Label)) $o['Label'] = $this->Label;
if (isset($this->Detail)) $o['Detail'] = $this->Detail;
if (isset($this->Expl)) $o['Expl'] = JsonConverters::to('CoverageExplanation', $this->Expl);
return empty($o) ? new class(){} : $o;
}
}
class CoverageNoShowAttempt implements JsonSerializable
{
public function __construct(
/** @var DateTime */
public DateTime $AtUtc=new DateTime(),
/** @var string|null */
public ?string $Channel=null,
/** @var string|null */
public ?string $Note=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['AtUtc'])) $this->AtUtc = JsonConverters::from('DateTime', $o['AtUtc']);
if (isset($o['Channel'])) $this->Channel = $o['Channel'];
if (isset($o['Note'])) $this->Note = $o['Note'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->AtUtc)) $o['AtUtc'] = JsonConverters::to('DateTime', $this->AtUtc);
if (isset($this->Channel)) $o['Channel'] = $this->Channel;
if (isset($this->Note)) $o['Note'] = $this->Note;
return empty($o) ? new class(){} : $o;
}
}
class CoverageNoShowState implements JsonSerializable
{
public function __construct(
/** @var DateTime */
public DateTime $GraceUntilUtc=new DateTime(),
/** @var array<CoverageNoShowAttempt>|null */
public ?array $Attempts=null,
/** @var DateTime|null */
public ?DateTime $DeclaredAtUtc=null,
/** @var bool|null */
public ?bool $AttendanceNote=null,
/** @var bool|null */
public ?bool $FalseAlarm=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['GraceUntilUtc'])) $this->GraceUntilUtc = JsonConverters::from('DateTime', $o['GraceUntilUtc']);
if (isset($o['Attempts'])) $this->Attempts = JsonConverters::fromArray('CoverageNoShowAttempt', $o['Attempts']);
if (isset($o['DeclaredAtUtc'])) $this->DeclaredAtUtc = JsonConverters::from('DateTime', $o['DeclaredAtUtc']);
if (isset($o['AttendanceNote'])) $this->AttendanceNote = $o['AttendanceNote'];
if (isset($o['FalseAlarm'])) $this->FalseAlarm = $o['FalseAlarm'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->GraceUntilUtc)) $o['GraceUntilUtc'] = JsonConverters::to('DateTime', $this->GraceUntilUtc);
if (isset($this->Attempts)) $o['Attempts'] = JsonConverters::toArray('CoverageNoShowAttempt', $this->Attempts);
if (isset($this->DeclaredAtUtc)) $o['DeclaredAtUtc'] = JsonConverters::to('DateTime', $this->DeclaredAtUtc);
if (isset($this->AttendanceNote)) $o['AttendanceNote'] = $this->AttendanceNote;
if (isset($this->FalseAlarm)) $o['FalseAlarm'] = $this->FalseAlarm;
return empty($o) ? new class(){} : $o;
}
}
class CoverageLeaveCheckpoint implements JsonSerializable
{
public function __construct(
/** @var DateTime */
public DateTime $AtUtc=new DateTime(),
/** @var string|null */
public ?string $Note=null,
/** @var string|null */
public ?string $ByName=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['AtUtc'])) $this->AtUtc = JsonConverters::from('DateTime', $o['AtUtc']);
if (isset($o['Note'])) $this->Note = $o['Note'];
if (isset($o['ByName'])) $this->ByName = $o['ByName'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->AtUtc)) $o['AtUtc'] = JsonConverters::to('DateTime', $this->AtUtc);
if (isset($this->Note)) $o['Note'] = $this->Note;
if (isset($this->ByName)) $o['ByName'] = $this->ByName;
return empty($o) ? new class(){} : $o;
}
}
class CoverageLeaveState implements JsonSerializable
{
public function __construct(
/** @var bool|null */
public ?bool $Fmla=null,
/** @var DateTime */
public DateTime $Began=new DateTime(),
/** @var DateTime|null */
public ?DateTime $EstReturn=null,
/** @var int */
public int $CheckpointDays=0,
/** @var DateTime|null */
public ?DateTime $NextCheckpointUtc=null,
/** @var array<CoverageLeaveCheckpoint>|null */
public ?array $Checkpoints=null,
/** @var int|null */
public ?int $InterimContactId=null,
/** @var string|null */
public ?string $InterimName=null,
/** @var DateTime|null */
public ?DateTime $InterimStart=null,
/** @var DateTime|null */
public ?DateTime $InterimEnd=null,
/** @var bool|null */
public ?bool $RequisitionOpened=null,
/** @var int|null */
public ?int $StaffPostingId=null,
/** @var array<int>|null */
public ?array $ChainedGapIds=null,
/** @var int|null */
public ?int $ParentLeaveGapId=null,
/** @var DateTime|null */
public ?DateTime $RestoredAtUtc=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Fmla'])) $this->Fmla = $o['Fmla'];
if (isset($o['Began'])) $this->Began = JsonConverters::from('DateTime', $o['Began']);
if (isset($o['EstReturn'])) $this->EstReturn = JsonConverters::from('DateTime', $o['EstReturn']);
if (isset($o['CheckpointDays'])) $this->CheckpointDays = $o['CheckpointDays'];
if (isset($o['NextCheckpointUtc'])) $this->NextCheckpointUtc = JsonConverters::from('DateTime', $o['NextCheckpointUtc']);
if (isset($o['Checkpoints'])) $this->Checkpoints = JsonConverters::fromArray('CoverageLeaveCheckpoint', $o['Checkpoints']);
if (isset($o['InterimContactId'])) $this->InterimContactId = $o['InterimContactId'];
if (isset($o['InterimName'])) $this->InterimName = $o['InterimName'];
if (isset($o['InterimStart'])) $this->InterimStart = JsonConverters::from('DateTime', $o['InterimStart']);
if (isset($o['InterimEnd'])) $this->InterimEnd = JsonConverters::from('DateTime', $o['InterimEnd']);
if (isset($o['RequisitionOpened'])) $this->RequisitionOpened = $o['RequisitionOpened'];
if (isset($o['StaffPostingId'])) $this->StaffPostingId = $o['StaffPostingId'];
if (isset($o['ChainedGapIds'])) $this->ChainedGapIds = JsonConverters::fromArray('int', $o['ChainedGapIds']);
if (isset($o['ParentLeaveGapId'])) $this->ParentLeaveGapId = $o['ParentLeaveGapId'];
if (isset($o['RestoredAtUtc'])) $this->RestoredAtUtc = JsonConverters::from('DateTime', $o['RestoredAtUtc']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Fmla)) $o['Fmla'] = $this->Fmla;
if (isset($this->Began)) $o['Began'] = JsonConverters::to('DateTime', $this->Began);
if (isset($this->EstReturn)) $o['EstReturn'] = JsonConverters::to('DateTime', $this->EstReturn);
if (isset($this->CheckpointDays)) $o['CheckpointDays'] = $this->CheckpointDays;
if (isset($this->NextCheckpointUtc)) $o['NextCheckpointUtc'] = JsonConverters::to('DateTime', $this->NextCheckpointUtc);
if (isset($this->Checkpoints)) $o['Checkpoints'] = JsonConverters::toArray('CoverageLeaveCheckpoint', $this->Checkpoints);
if (isset($this->InterimContactId)) $o['InterimContactId'] = $this->InterimContactId;
if (isset($this->InterimName)) $o['InterimName'] = $this->InterimName;
if (isset($this->InterimStart)) $o['InterimStart'] = JsonConverters::to('DateTime', $this->InterimStart);
if (isset($this->InterimEnd)) $o['InterimEnd'] = JsonConverters::to('DateTime', $this->InterimEnd);
if (isset($this->RequisitionOpened)) $o['RequisitionOpened'] = $this->RequisitionOpened;
if (isset($this->StaffPostingId)) $o['StaffPostingId'] = $this->StaffPostingId;
if (isset($this->ChainedGapIds)) $o['ChainedGapIds'] = JsonConverters::toArray('int', $this->ChainedGapIds);
if (isset($this->ParentLeaveGapId)) $o['ParentLeaveGapId'] = $this->ParentLeaveGapId;
if (isset($this->RestoredAtUtc)) $o['RestoredAtUtc'] = JsonConverters::to('DateTime', $this->RestoredAtUtc);
return empty($o) ? new class(){} : $o;
}
}
class CoverageGap implements JsonSerializable
{
public function __construct(
/** @var int */
public int $CoverageGapId=0,
/** @var string */
public string $CoverageGapUID='',
/** @var string|null */
public ?string $BranchId=null,
/** @var string|null */
public ?string $Status=null,
/** @var string|null */
public ?string $Track=null,
/** @var int|null */
public ?int $OutContactID=null,
/** @var string|null */
public ?string $OutName=null,
/** @var string|null */
public ?string $OutInitials=null,
/** @var int|null */
public ?int $JobID=null,
/** @var string|null */
public ?string $JobName=null,
/** @var int|null */
public ?int $ProjectID=null,
/** @var int|null */
public ?int $WorkerScheduleItemID=null,
/** @var DateTime */
public DateTime $WindowStart=new DateTime(),
/** @var DateTime */
public DateTime $WindowEnd=new DateTime(),
/** @var string|null */
public ?string $Reason=null,
/** @var bool|null */
public ?bool $MustFill=null,
/** @var CoverageExplanation|null */
public ?CoverageExplanation $MustFillExpl=null,
/** @var int|null */
public ?int $FilledByContactID=null,
/** @var string|null */
public ?string $FilledByName=null,
/** @var string|null */
public ?string $RecordNo=null,
/** @var int|null */
public ?int $DecidedPolicyVersionId=null,
/** @var DateTime */
public DateTime $CreatedAt=new DateTime(),
/** @var DateTime|null */
public ?DateTime $UpdatedAt=null,
/** @var string|null */
public ?string $QualifiedLine=null,
/** @var array<CoverageCandidate>|null */
public ?array $Candidates=null,
/** @var array<CoverageBlockedCandidate>|null */
public ?array $Blocked=null,
/** @var array<CoverageOfferInfo>|null */
public ?array $Offers=null,
/** @var array<CoverageApprovalInfo>|null */
public ?array $Approvals=null,
/** @var array<CoverageGapEventInfo>|null */
public ?array $Timeline=null,
/** @var array<CoverageMoveOption>|null */
public ?array $MoveOptions=null,
/** @var CoverageExplanation|null */
public ?CoverageExplanation $OrderExpl=null,
/** @var string|null */
public ?string $AssignmentMode=null,
/** @var CoverageNoShowState|null */
public ?CoverageNoShowState $NoShow=null,
/** @var CoverageLeaveState|null */
public ?CoverageLeaveState $Leave=null,
/** @var string|null */
public ?string $CustomerName=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['CoverageGapId'])) $this->CoverageGapId = $o['CoverageGapId'];
if (isset($o['CoverageGapUID'])) $this->CoverageGapUID = $o['CoverageGapUID'];
if (isset($o['BranchId'])) $this->BranchId = $o['BranchId'];
if (isset($o['Status'])) $this->Status = $o['Status'];
if (isset($o['Track'])) $this->Track = $o['Track'];
if (isset($o['OutContactID'])) $this->OutContactID = $o['OutContactID'];
if (isset($o['OutName'])) $this->OutName = $o['OutName'];
if (isset($o['OutInitials'])) $this->OutInitials = $o['OutInitials'];
if (isset($o['JobID'])) $this->JobID = $o['JobID'];
if (isset($o['JobName'])) $this->JobName = $o['JobName'];
if (isset($o['ProjectID'])) $this->ProjectID = $o['ProjectID'];
if (isset($o['WorkerScheduleItemID'])) $this->WorkerScheduleItemID = $o['WorkerScheduleItemID'];
if (isset($o['WindowStart'])) $this->WindowStart = JsonConverters::from('DateTime', $o['WindowStart']);
if (isset($o['WindowEnd'])) $this->WindowEnd = JsonConverters::from('DateTime', $o['WindowEnd']);
if (isset($o['Reason'])) $this->Reason = $o['Reason'];
if (isset($o['MustFill'])) $this->MustFill = $o['MustFill'];
if (isset($o['MustFillExpl'])) $this->MustFillExpl = JsonConverters::from('CoverageExplanation', $o['MustFillExpl']);
if (isset($o['FilledByContactID'])) $this->FilledByContactID = $o['FilledByContactID'];
if (isset($o['FilledByName'])) $this->FilledByName = $o['FilledByName'];
if (isset($o['RecordNo'])) $this->RecordNo = $o['RecordNo'];
if (isset($o['DecidedPolicyVersionId'])) $this->DecidedPolicyVersionId = $o['DecidedPolicyVersionId'];
if (isset($o['CreatedAt'])) $this->CreatedAt = JsonConverters::from('DateTime', $o['CreatedAt']);
if (isset($o['UpdatedAt'])) $this->UpdatedAt = JsonConverters::from('DateTime', $o['UpdatedAt']);
if (isset($o['QualifiedLine'])) $this->QualifiedLine = $o['QualifiedLine'];
if (isset($o['Candidates'])) $this->Candidates = JsonConverters::fromArray('CoverageCandidate', $o['Candidates']);
if (isset($o['Blocked'])) $this->Blocked = JsonConverters::fromArray('CoverageBlockedCandidate', $o['Blocked']);
if (isset($o['Offers'])) $this->Offers = JsonConverters::fromArray('CoverageOfferInfo', $o['Offers']);
if (isset($o['Approvals'])) $this->Approvals = JsonConverters::fromArray('CoverageApprovalInfo', $o['Approvals']);
if (isset($o['Timeline'])) $this->Timeline = JsonConverters::fromArray('CoverageGapEventInfo', $o['Timeline']);
if (isset($o['MoveOptions'])) $this->MoveOptions = JsonConverters::fromArray('CoverageMoveOption', $o['MoveOptions']);
if (isset($o['OrderExpl'])) $this->OrderExpl = JsonConverters::from('CoverageExplanation', $o['OrderExpl']);
if (isset($o['AssignmentMode'])) $this->AssignmentMode = $o['AssignmentMode'];
if (isset($o['NoShow'])) $this->NoShow = JsonConverters::from('CoverageNoShowState', $o['NoShow']);
if (isset($o['Leave'])) $this->Leave = JsonConverters::from('CoverageLeaveState', $o['Leave']);
if (isset($o['CustomerName'])) $this->CustomerName = $o['CustomerName'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->CoverageGapId)) $o['CoverageGapId'] = $this->CoverageGapId;
if (isset($this->CoverageGapUID)) $o['CoverageGapUID'] = $this->CoverageGapUID;
if (isset($this->BranchId)) $o['BranchId'] = $this->BranchId;
if (isset($this->Status)) $o['Status'] = $this->Status;
if (isset($this->Track)) $o['Track'] = $this->Track;
if (isset($this->OutContactID)) $o['OutContactID'] = $this->OutContactID;
if (isset($this->OutName)) $o['OutName'] = $this->OutName;
if (isset($this->OutInitials)) $o['OutInitials'] = $this->OutInitials;
if (isset($this->JobID)) $o['JobID'] = $this->JobID;
if (isset($this->JobName)) $o['JobName'] = $this->JobName;
if (isset($this->ProjectID)) $o['ProjectID'] = $this->ProjectID;
if (isset($this->WorkerScheduleItemID)) $o['WorkerScheduleItemID'] = $this->WorkerScheduleItemID;
if (isset($this->WindowStart)) $o['WindowStart'] = JsonConverters::to('DateTime', $this->WindowStart);
if (isset($this->WindowEnd)) $o['WindowEnd'] = JsonConverters::to('DateTime', $this->WindowEnd);
if (isset($this->Reason)) $o['Reason'] = $this->Reason;
if (isset($this->MustFill)) $o['MustFill'] = $this->MustFill;
if (isset($this->MustFillExpl)) $o['MustFillExpl'] = JsonConverters::to('CoverageExplanation', $this->MustFillExpl);
if (isset($this->FilledByContactID)) $o['FilledByContactID'] = $this->FilledByContactID;
if (isset($this->FilledByName)) $o['FilledByName'] = $this->FilledByName;
if (isset($this->RecordNo)) $o['RecordNo'] = $this->RecordNo;
if (isset($this->DecidedPolicyVersionId)) $o['DecidedPolicyVersionId'] = $this->DecidedPolicyVersionId;
if (isset($this->CreatedAt)) $o['CreatedAt'] = JsonConverters::to('DateTime', $this->CreatedAt);
if (isset($this->UpdatedAt)) $o['UpdatedAt'] = JsonConverters::to('DateTime', $this->UpdatedAt);
if (isset($this->QualifiedLine)) $o['QualifiedLine'] = $this->QualifiedLine;
if (isset($this->Candidates)) $o['Candidates'] = JsonConverters::toArray('CoverageCandidate', $this->Candidates);
if (isset($this->Blocked)) $o['Blocked'] = JsonConverters::toArray('CoverageBlockedCandidate', $this->Blocked);
if (isset($this->Offers)) $o['Offers'] = JsonConverters::toArray('CoverageOfferInfo', $this->Offers);
if (isset($this->Approvals)) $o['Approvals'] = JsonConverters::toArray('CoverageApprovalInfo', $this->Approvals);
if (isset($this->Timeline)) $o['Timeline'] = JsonConverters::toArray('CoverageGapEventInfo', $this->Timeline);
if (isset($this->MoveOptions)) $o['MoveOptions'] = JsonConverters::toArray('CoverageMoveOption', $this->MoveOptions);
if (isset($this->OrderExpl)) $o['OrderExpl'] = JsonConverters::to('CoverageExplanation', $this->OrderExpl);
if (isset($this->AssignmentMode)) $o['AssignmentMode'] = $this->AssignmentMode;
if (isset($this->NoShow)) $o['NoShow'] = JsonConverters::to('CoverageNoShowState', $this->NoShow);
if (isset($this->Leave)) $o['Leave'] = JsonConverters::to('CoverageLeaveState', $this->Leave);
if (isset($this->CustomerName)) $o['CustomerName'] = $this->CustomerName;
return empty($o) ? new class(){} : $o;
}
}
class CoverageGapResponse implements JsonSerializable
{
public function __construct(
/** @var CoverageGap|null */
public ?CoverageGap $Gap=null,
/** @var int|null */
public ?int $ChainedPreview=null,
/** @var bool|null */
public ?bool $CanSeePay=null,
/** @var ResponseStatus|null */
public ?ResponseStatus $ResponseStatus=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Gap'])) $this->Gap = JsonConverters::from('CoverageGap', $o['Gap']);
if (isset($o['ChainedPreview'])) $this->ChainedPreview = $o['ChainedPreview'];
if (isset($o['CanSeePay'])) $this->CanSeePay = $o['CanSeePay'];
if (isset($o['ResponseStatus'])) $this->ResponseStatus = JsonConverters::from('ResponseStatus', $o['ResponseStatus']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Gap)) $o['Gap'] = JsonConverters::to('CoverageGap', $this->Gap);
if (isset($this->ChainedPreview)) $o['ChainedPreview'] = $this->ChainedPreview;
if (isset($this->CanSeePay)) $o['CanSeePay'] = $this->CanSeePay;
if (isset($this->ResponseStatus)) $o['ResponseStatus'] = JsonConverters::to('ResponseStatus', $this->ResponseStatus);
return empty($o) ? new class(){} : $o;
}
}
class CoverageNoShowDeclareRequest implements JsonSerializable
{
public function __construct(
/** @var int */
public int $CoverageGapId=0,
/** @var bool|null */
public ?bool $AttendanceNote=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['CoverageGapId'])) $this->CoverageGapId = $o['CoverageGapId'];
if (isset($o['AttendanceNote'])) $this->AttendanceNote = $o['AttendanceNote'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->CoverageGapId)) $o['CoverageGapId'] = $this->CoverageGapId;
if (isset($this->AttendanceNote)) $o['AttendanceNote'] = $this->AttendanceNote;
return empty($o) ? new class(){} : $o;
}
}
PHP CoverageNoShowDeclareRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/coverage/gaps/{CoverageGapId}/noshow/declare HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"CoverageGapId":0,"AttendanceNote":false}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{"Gap":{"CoverageGapId":0,"CoverageGapUID":"00000000000000000000000000000000","BranchId":"00000000000000000000000000000000","Status":"String","Track":"String","OutContactID":0,"OutName":"String","OutInitials":"String","JobID":0,"JobName":"String","ProjectID":0,"WorkerScheduleItemID":0,"WindowStart":"0001-01-01T00:00:00.0000000","WindowEnd":"0001-01-01T00:00:00.0000000","Reason":"String","MustFill":false,"MustFillExpl":{"PlainSentence":"String","RuleId":"String","RuleName":"String","Demand":"String","Source":{"PolicyName":"String","CascadeLevel":"String"},"Kind":"String","WhyItExists":"String","WhatWouldChangeIt":"String","Override":{"Who":"String","Consequence":"String"},"Drill":"String"},"FilledByContactID":0,"FilledByName":"String","RecordNo":"String","DecidedPolicyVersionId":0,"CreatedAt":"0001-01-01T00:00:00.0000000","UpdatedAt":"0001-01-01T00:00:00.0000000","QualifiedLine":"String","Candidates":[{"ContactId":0,"Name":"String","FirstName":"String","Initials":"String","Rank":0,"DiffLine":"String","CostLine":"String","CostTone":"String","RankExpl":{"PlainSentence":"String","RuleId":"String","RuleName":"String","Demand":"String","Source":{"PolicyName":"String","CascadeLevel":"String"},"Kind":"String","WhyItExists":"String","WhatWouldChangeIt":"String","Override":{"Who":"String","Consequence":"String"},"Drill":"String"},"MarginPct":0,"MarginTone":"String","Loaded":0,"Billed":0,"OtHours":0,"OtPremium":0,"Checks":[{"CheckId":"String","Result":"String","Expl":{"PlainSentence":"String","RuleId":"String","RuleName":"String","Demand":"String","Source":{"PolicyName":"String","CascadeLevel":"String"},"Kind":"String","WhyItExists":"String","WhatWouldChangeIt":"String","Override":{"Who":"String","Consequence":"String"},"Drill":"String"}}],"Preview":[{"Icon":"String","Text":"String","RuleId":"String","Expl":{"PlainSentence":"String","RuleId":"String","RuleName":"String","Demand":"String","Source":{"PolicyName":"String","CascadeLevel":"String"},"Kind":"String","WhyItExists":"String","WhatWouldChangeIt":"String","Override":{"Who":"String","Consequence":"String"},"Drill":"String"}}],"Confirm":[{"Icon":"String","Text":"String","RuleId":"String","Expl":{"PlainSentence":"String","RuleId":"String","RuleName":"String","Demand":"String","Source":{"PolicyName":"String","CascadeLevel":"String"},"Kind":"String","WhyItExists":"String","WhatWouldChangeIt":"String","Override":{"Who":"String","Consequence":"String"},"Drill":"String"}}],"HasWarn":false}],"Blocked":[{"ContactId":0,"Name":"String","Initials":"String","Reason":"String","ChangeChip":"String","Expl":{"PlainSentence":"String","RuleId":"String","RuleName":"String","Demand":"String","Source":{"PolicyName":"String","CascadeLevel":"String"},"Kind":"String","WhyItExists":"String","WhatWouldChangeIt":"String","Override":{"Who":"String","Consequence":"String"},"Drill":"String"}}],"Offers":[{"CoverageOfferId":0,"ContactId":0,"Name":"String","Ring":0,"Channel":"String","Status":"String","SentAtUtc":"0001-01-01T00:00:00.0000000","RespondedAtUtc":"0001-01-01T00:00:00.0000000"}],"Approvals":[{"CoverageApprovalId":0,"CoverageGapId":0,"Type":"String","Status":"String","RequestedAtUtc":"0001-01-01T00:00:00.0000000","Effects":[{"Icon":"String","Text":"String","RuleId":"String","Expl":{"PlainSentence":"String","RuleId":"String","RuleName":"String","Demand":"String","Source":{"PolicyName":"String","CascadeLevel":"String"},"Kind":"String","WhyItExists":"String","WhatWouldChangeIt":"String","Override":{"Who":"String","Consequence":"String"},"Drill":"String"}}],"ContactId":0,"ContactName":"String","DecidedAtUtc":"0001-01-01T00:00:00.0000000","DecisionNote":"String"}],"Timeline":[{"EventType":"String","Channel":"String","Detail":"String","ContactName":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"MoveOptions":[{"Key":"String","Label":"String","Detail":"String","Expl":{"PlainSentence":"String","RuleId":"String","RuleName":"String","Demand":"String","Source":{"PolicyName":"String","CascadeLevel":"String"},"Kind":"String","WhyItExists":"String","WhatWouldChangeIt":"String","Override":{"Who":"String","Consequence":"String"},"Drill":"String"}}],"OrderExpl":{"PlainSentence":"String","RuleId":"String","RuleName":"String","Demand":"String","Source":{"PolicyName":"String","CascadeLevel":"String"},"Kind":"String","WhyItExists":"String","WhatWouldChangeIt":"String","Override":{"Who":"String","Consequence":"String"},"Drill":"String"},"AssignmentMode":"String","NoShow":{"GraceUntilUtc":"0001-01-01T00:00:00.0000000","Attempts":[{"AtUtc":"0001-01-01T00:00:00.0000000","Channel":"String","Note":"String"}],"DeclaredAtUtc":"0001-01-01T00:00:00.0000000","AttendanceNote":false,"FalseAlarm":false},"Leave":{"Fmla":false,"Began":"0001-01-01T00:00:00.0000000","EstReturn":"0001-01-01T00:00:00.0000000","CheckpointDays":0,"NextCheckpointUtc":"0001-01-01T00:00:00.0000000","Checkpoints":[{"AtUtc":"0001-01-01T00:00:00.0000000","Note":"String","ByName":"String"}],"InterimContactId":0,"InterimName":"String","InterimStart":"0001-01-01T00:00:00.0000000","InterimEnd":"0001-01-01T00:00:00.0000000","RequisitionOpened":false,"StaffPostingId":0,"ChainedGapIds":[0],"ParentLeaveGapId":0,"RestoredAtUtc":"0001-01-01T00:00:00.0000000"},"CustomerName":"String"},"ChainedPreview":0,"CanSeePay":false,"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}