Trendsic Platform Service

<back to all web services

SchedulerRequest

The following routes are available for this service:
GET,OPTIONS/v1/Scheduler/{SchedulerUrl}
GET,OPTIONS/v1/Scheduler/{SchedulerUrl}/{StartDate}
GET,OPTIONS/v1/Scheduler/{SchedulerUrl}/{StartDate}/{LocalDate}
GET,OPTIONS/v1/SchedulerServices/{SchedulerUrl}/{StartDate}/{ServiceIdsList}
<?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 SchedulerRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $SchedulerUrl=null,
        /** @var DateTime */
        public DateTime $StartDate=new DateTime(),
        /** @var array<string>|null */
        public ?array $Session=null,
        /** @var string|null */
        public ?string $ServiceIdsList=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['SchedulerUrl'])) $this->SchedulerUrl = $o['SchedulerUrl'];
        if (isset($o['StartDate'])) $this->StartDate = JsonConverters::from('DateTime', $o['StartDate']);
        if (isset($o['Session'])) $this->Session = JsonConverters::fromArray('string', $o['Session']);
        if (isset($o['ServiceIdsList'])) $this->ServiceIdsList = $o['ServiceIdsList'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->SchedulerUrl)) $o['SchedulerUrl'] = $this->SchedulerUrl;
        if (isset($this->StartDate)) $o['StartDate'] = JsonConverters::to('DateTime', $this->StartDate);
        if (isset($this->Session)) $o['Session'] = JsonConverters::toArray('string', $this->Session);
        if (isset($this->ServiceIdsList)) $o['ServiceIdsList'] = $this->ServiceIdsList;
        return empty($o) ? new class(){} : $o;
    }
}

class Location implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $Id='',
        /** @var string */
        public string $ClientId='',
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Address1=null,
        /** @var string|null */
        public ?string $Address2=null,
        /** @var string|null */
        public ?string $City=null,
        /** @var string|null */
        public ?string $State=null,
        /** @var string|null */
        public ?string $Zip=null,
        /** @var string|null */
        public ?string $Phone=null,
        /** @var string|null */
        public ?string $Fax=null,
        /** @var string|null */
        public ?string $URL=null,
        /** @var string|null */
        public ?string $Email=null,
        /** @var string|null */
        public ?string $TimeZone=null,
        /** @var bool|null */
        public ?bool $Active=null,
        /** @var DateTime */
        public DateTime $EntDate=new DateTime(),
        /** @var DateTime */
        public DateTime $ModDate=new DateTime(),
        /** @var string|null */
        public ?string $LocationImage=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['ClientId'])) $this->ClientId = $o['ClientId'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Address1'])) $this->Address1 = $o['Address1'];
        if (isset($o['Address2'])) $this->Address2 = $o['Address2'];
        if (isset($o['City'])) $this->City = $o['City'];
        if (isset($o['State'])) $this->State = $o['State'];
        if (isset($o['Zip'])) $this->Zip = $o['Zip'];
        if (isset($o['Phone'])) $this->Phone = $o['Phone'];
        if (isset($o['Fax'])) $this->Fax = $o['Fax'];
        if (isset($o['URL'])) $this->URL = $o['URL'];
        if (isset($o['Email'])) $this->Email = $o['Email'];
        if (isset($o['TimeZone'])) $this->TimeZone = $o['TimeZone'];
        if (isset($o['Active'])) $this->Active = $o['Active'];
        if (isset($o['EntDate'])) $this->EntDate = JsonConverters::from('DateTime', $o['EntDate']);
        if (isset($o['ModDate'])) $this->ModDate = JsonConverters::from('DateTime', $o['ModDate']);
        if (isset($o['LocationImage'])) $this->LocationImage = $o['LocationImage'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->ClientId)) $o['ClientId'] = $this->ClientId;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Address1)) $o['Address1'] = $this->Address1;
        if (isset($this->Address2)) $o['Address2'] = $this->Address2;
        if (isset($this->City)) $o['City'] = $this->City;
        if (isset($this->State)) $o['State'] = $this->State;
        if (isset($this->Zip)) $o['Zip'] = $this->Zip;
        if (isset($this->Phone)) $o['Phone'] = $this->Phone;
        if (isset($this->Fax)) $o['Fax'] = $this->Fax;
        if (isset($this->URL)) $o['URL'] = $this->URL;
        if (isset($this->Email)) $o['Email'] = $this->Email;
        if (isset($this->TimeZone)) $o['TimeZone'] = $this->TimeZone;
        if (isset($this->Active)) $o['Active'] = $this->Active;
        if (isset($this->EntDate)) $o['EntDate'] = JsonConverters::to('DateTime', $this->EntDate);
        if (isset($this->ModDate)) $o['ModDate'] = JsonConverters::to('DateTime', $this->ModDate);
        if (isset($this->LocationImage)) $o['LocationImage'] = $this->LocationImage;
        return empty($o) ? new class(){} : $o;
    }
}

class QueueDefault implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $LocationId='',
        /** @var array<string>|null */
        public ?array $Services=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['LocationId'])) $this->LocationId = $o['LocationId'];
        if (isset($o['Services'])) $this->Services = JsonConverters::fromArray('Guid', $o['Services']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->LocationId)) $o['LocationId'] = $this->LocationId;
        if (isset($this->Services)) $o['Services'] = JsonConverters::toArray('Guid', $this->Services);
        return empty($o) ? new class(){} : $o;
    }
}

class Agent implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $AgentId=0,
        /** @var string|null */
        public ?string $Company=null,
        /** @var string|null */
        public ?string $AgentName=null,
        /** @var string|null */
        public ?string $FirstName=null,
        /** @var string|null */
        public ?string $LastName=null,
        /** @var string|null */
        public ?string $MiddleInitial=null,
        /** @var string|null */
        public ?string $Address1=null,
        /** @var string|null */
        public ?string $Address2=null,
        /** @var string|null */
        public ?string $City=null,
        /** @var string|null */
        public ?string $State=null,
        /** @var string|null */
        public ?string $Zip=null,
        /** @var string|null */
        public ?string $Country=null,
        /** @var string|null */
        public ?string $Email=null,
        /** @var string|null */
        public ?string $EmailSignature=null,
        /** @var string|null */
        public ?string $HomePhone=null,
        /** @var string|null */
        public ?string $CellPhone=null,
        /** @var string|null */
        public ?string $WorkPhone=null,
        /** @var bool|null */
        public ?bool $InsLicensed=null,
        /** @var bool|null */
        public ?bool $AgreeToDisclosures=null,
        /** @var DateTime|null */
        public ?DateTime $AgreeToDate=null,
        /** @var DateTime|null */
        public ?DateTime $PaidDate=null,
        /** @var string|null */
        public ?string $AgentNumber=null,
        /** @var string|null */
        public ?string $ReferringAgent=null,
        /** @var string|null */
        public ?string $PlacementAgent=null,
        /** @var DateTime|null */
        public ?DateTime $CreatedDate=null,
        /** @var string */
        public string $UserId='',
        /** @var bool|null */
        public ?bool $IsAgent=null,
        /** @var string|null */
        public ?string $Package=null,
        /** @var string|null */
        public ?string $StoreName=null,
        /** @var string|null */
        public ?string $Notes=null,
        /** @var int|null */
        public ?int $Upline1=null,
        /** @var int|null */
        public ?int $Upline2=null,
        /** @var int|null */
        public ?int $Upline3=null,
        /** @var int|null */
        public ?int $Upline4=null,
        /** @var int|null */
        public ?int $MVPID=null,
        /** @var int|null */
        public ?int $AVPID=null,
        /** @var int|null */
        public ?int $RVPID=null,
        /** @var float|null */
        public ?float $AgentLevel=null,
        /** @var bool|null */
        public ?bool $IsMVP=null,
        /** @var bool|null */
        public ?bool $IsRVP=null,
        /** @var bool|null */
        public ?bool $IsAVP=null,
        /** @var bool|null */
        public ?bool $IsAdmin=null,
        /** @var bool|null */
        public ?bool $IsBusinessCardAdmin=null,
        /** @var string|null */
        public ?string $TeamName=null,
        /** @var string */
        public string $LocationId='',
        /** @var string */
        public string $CalendarId='',
        /** @var string|null */
        public ?string $Rank=null,
        /** @var bool|null */
        public ?bool $NBC=null,
        /** @var float|null */
        public ?float $Upline1Percent=null,
        /** @var float|null */
        public ?float $Upline2Percent=null,
        /** @var float|null */
        public ?float $Upline3Percent=null,
        /** @var float|null */
        public ?float $Upline4Percent=null,
        /** @var string|null */
        public ?string $AgentStatus=null,
        /** @var string|null */
        public ?string $Office=null,
        /** @var DateTime|null */
        public ?DateTime $DOB=null,
        /** @var string|null */
        public ?string $SSN=null,
        /** @var string|null */
        public ?string $Fax=null,
        /** @var string|null */
        public ?string $BusinessEmail=null,
        /** @var DateTime|null */
        public ?DateTime $ModifiedDate=null,
        /** @var string|null */
        public ?string $ModifiedBy=null,
        /** @var string|null */
        public ?string $TimeZone=null,
        /** @var bool|null */
        public ?bool $LeaderLocked=null,
        /** @var DateTime */
        public DateTime $LastSubmittedBusinessDate=new DateTime(),
        /** @var DateTime */
        public DateTime $GracePeriodDate=new DateTime(),
        /** @var bool|null */
        public ?bool $Vested=null,
        /** @var DateTime */
        public DateTime $DirectPay=new DateTime(),
        /** @var string|null */
        public ?string $DirectPayApprBy=null,
        /** @var float|null */
        public ?float $FactFinderBilling=null,
        /** @var string|null */
        public ?string $FullName=null,
        /** @var string|null */
        public ?string $ByLastName=null,
        /** @var bool|null */
        public ?bool $IsSecurityLicensed=null,
        /** @var bool|null */
        public ?bool $IsEncompassAdmin=null,
        /** @var string */
        public string $ApiKey='',
        /** @var string|null */
        public ?string $LastSessionId=null,
        /** @var DateTime|null */
        public ?DateTime $LastLogin=null,
        /** @var bool|null */
        public ?bool $MfaActive=null,
        /** @var bool|null */
        public ?bool $RequireMFA=null,
        /** @var string|null */
        public ?string $SMSPhoneNumber=null,
        /** @var bool|null */
        public ?bool $VerifiedEmailStatus=null,
        /** @var bool|null */
        public ?bool $VerifiedCellPhoneStatus=null,
        /** @var string|null */
        public ?string $SchedulerUrl=null,
        /** @var QueueDefault|null */
        public ?QueueDefault $QueueDefaults=null,
        /** @var array<string>|null */
        public ?array $Roles=null,
        /** @var bool|null */
        public ?bool $PasswordUpdated=null,
        /** @var bool|null */
        public ?bool $RestrictToSingleSession=null,
        /** @var string|null */
        public ?string $AgentImage=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['AgentId'])) $this->AgentId = $o['AgentId'];
        if (isset($o['Company'])) $this->Company = $o['Company'];
        if (isset($o['AgentName'])) $this->AgentName = $o['AgentName'];
        if (isset($o['FirstName'])) $this->FirstName = $o['FirstName'];
        if (isset($o['LastName'])) $this->LastName = $o['LastName'];
        if (isset($o['MiddleInitial'])) $this->MiddleInitial = $o['MiddleInitial'];
        if (isset($o['Address1'])) $this->Address1 = $o['Address1'];
        if (isset($o['Address2'])) $this->Address2 = $o['Address2'];
        if (isset($o['City'])) $this->City = $o['City'];
        if (isset($o['State'])) $this->State = $o['State'];
        if (isset($o['Zip'])) $this->Zip = $o['Zip'];
        if (isset($o['Country'])) $this->Country = $o['Country'];
        if (isset($o['Email'])) $this->Email = $o['Email'];
        if (isset($o['EmailSignature'])) $this->EmailSignature = $o['EmailSignature'];
        if (isset($o['HomePhone'])) $this->HomePhone = $o['HomePhone'];
        if (isset($o['CellPhone'])) $this->CellPhone = $o['CellPhone'];
        if (isset($o['WorkPhone'])) $this->WorkPhone = $o['WorkPhone'];
        if (isset($o['InsLicensed'])) $this->InsLicensed = $o['InsLicensed'];
        if (isset($o['AgreeToDisclosures'])) $this->AgreeToDisclosures = $o['AgreeToDisclosures'];
        if (isset($o['AgreeToDate'])) $this->AgreeToDate = JsonConverters::from('DateTime', $o['AgreeToDate']);
        if (isset($o['PaidDate'])) $this->PaidDate = JsonConverters::from('DateTime', $o['PaidDate']);
        if (isset($o['AgentNumber'])) $this->AgentNumber = $o['AgentNumber'];
        if (isset($o['ReferringAgent'])) $this->ReferringAgent = $o['ReferringAgent'];
        if (isset($o['PlacementAgent'])) $this->PlacementAgent = $o['PlacementAgent'];
        if (isset($o['CreatedDate'])) $this->CreatedDate = JsonConverters::from('DateTime', $o['CreatedDate']);
        if (isset($o['UserId'])) $this->UserId = $o['UserId'];
        if (isset($o['IsAgent'])) $this->IsAgent = $o['IsAgent'];
        if (isset($o['Package'])) $this->Package = $o['Package'];
        if (isset($o['StoreName'])) $this->StoreName = $o['StoreName'];
        if (isset($o['Notes'])) $this->Notes = $o['Notes'];
        if (isset($o['Upline1'])) $this->Upline1 = $o['Upline1'];
        if (isset($o['Upline2'])) $this->Upline2 = $o['Upline2'];
        if (isset($o['Upline3'])) $this->Upline3 = $o['Upline3'];
        if (isset($o['Upline4'])) $this->Upline4 = $o['Upline4'];
        if (isset($o['MVPID'])) $this->MVPID = $o['MVPID'];
        if (isset($o['AVPID'])) $this->AVPID = $o['AVPID'];
        if (isset($o['RVPID'])) $this->RVPID = $o['RVPID'];
        if (isset($o['AgentLevel'])) $this->AgentLevel = $o['AgentLevel'];
        if (isset($o['IsMVP'])) $this->IsMVP = $o['IsMVP'];
        if (isset($o['IsRVP'])) $this->IsRVP = $o['IsRVP'];
        if (isset($o['IsAVP'])) $this->IsAVP = $o['IsAVP'];
        if (isset($o['IsAdmin'])) $this->IsAdmin = $o['IsAdmin'];
        if (isset($o['IsBusinessCardAdmin'])) $this->IsBusinessCardAdmin = $o['IsBusinessCardAdmin'];
        if (isset($o['TeamName'])) $this->TeamName = $o['TeamName'];
        if (isset($o['LocationId'])) $this->LocationId = $o['LocationId'];
        if (isset($o['CalendarId'])) $this->CalendarId = $o['CalendarId'];
        if (isset($o['Rank'])) $this->Rank = $o['Rank'];
        if (isset($o['NBC'])) $this->NBC = $o['NBC'];
        if (isset($o['Upline1Percent'])) $this->Upline1Percent = $o['Upline1Percent'];
        if (isset($o['Upline2Percent'])) $this->Upline2Percent = $o['Upline2Percent'];
        if (isset($o['Upline3Percent'])) $this->Upline3Percent = $o['Upline3Percent'];
        if (isset($o['Upline4Percent'])) $this->Upline4Percent = $o['Upline4Percent'];
        if (isset($o['AgentStatus'])) $this->AgentStatus = $o['AgentStatus'];
        if (isset($o['Office'])) $this->Office = $o['Office'];
        if (isset($o['DOB'])) $this->DOB = JsonConverters::from('DateTime', $o['DOB']);
        if (isset($o['SSN'])) $this->SSN = $o['SSN'];
        if (isset($o['Fax'])) $this->Fax = $o['Fax'];
        if (isset($o['BusinessEmail'])) $this->BusinessEmail = $o['BusinessEmail'];
        if (isset($o['ModifiedDate'])) $this->ModifiedDate = JsonConverters::from('DateTime', $o['ModifiedDate']);
        if (isset($o['ModifiedBy'])) $this->ModifiedBy = $o['ModifiedBy'];
        if (isset($o['TimeZone'])) $this->TimeZone = $o['TimeZone'];
        if (isset($o['LeaderLocked'])) $this->LeaderLocked = $o['LeaderLocked'];
        if (isset($o['LastSubmittedBusinessDate'])) $this->LastSubmittedBusinessDate = JsonConverters::from('DateTime', $o['LastSubmittedBusinessDate']);
        if (isset($o['GracePeriodDate'])) $this->GracePeriodDate = JsonConverters::from('DateTime', $o['GracePeriodDate']);
        if (isset($o['Vested'])) $this->Vested = $o['Vested'];
        if (isset($o['DirectPay'])) $this->DirectPay = JsonConverters::from('DateTime', $o['DirectPay']);
        if (isset($o['DirectPayApprBy'])) $this->DirectPayApprBy = $o['DirectPayApprBy'];
        if (isset($o['FactFinderBilling'])) $this->FactFinderBilling = $o['FactFinderBilling'];
        if (isset($o['FullName'])) $this->FullName = $o['FullName'];
        if (isset($o['ByLastName'])) $this->ByLastName = $o['ByLastName'];
        if (isset($o['IsSecurityLicensed'])) $this->IsSecurityLicensed = $o['IsSecurityLicensed'];
        if (isset($o['IsEncompassAdmin'])) $this->IsEncompassAdmin = $o['IsEncompassAdmin'];
        if (isset($o['ApiKey'])) $this->ApiKey = $o['ApiKey'];
        if (isset($o['LastSessionId'])) $this->LastSessionId = $o['LastSessionId'];
        if (isset($o['LastLogin'])) $this->LastLogin = JsonConverters::from('DateTime', $o['LastLogin']);
        if (isset($o['MfaActive'])) $this->MfaActive = $o['MfaActive'];
        if (isset($o['RequireMFA'])) $this->RequireMFA = $o['RequireMFA'];
        if (isset($o['SMSPhoneNumber'])) $this->SMSPhoneNumber = $o['SMSPhoneNumber'];
        if (isset($o['VerifiedEmailStatus'])) $this->VerifiedEmailStatus = $o['VerifiedEmailStatus'];
        if (isset($o['VerifiedCellPhoneStatus'])) $this->VerifiedCellPhoneStatus = $o['VerifiedCellPhoneStatus'];
        if (isset($o['SchedulerUrl'])) $this->SchedulerUrl = $o['SchedulerUrl'];
        if (isset($o['QueueDefaults'])) $this->QueueDefaults = JsonConverters::from('QueueDefault', $o['QueueDefaults']);
        if (isset($o['Roles'])) $this->Roles = JsonConverters::fromArray('string', $o['Roles']);
        if (isset($o['PasswordUpdated'])) $this->PasswordUpdated = $o['PasswordUpdated'];
        if (isset($o['RestrictToSingleSession'])) $this->RestrictToSingleSession = $o['RestrictToSingleSession'];
        if (isset($o['AgentImage'])) $this->AgentImage = $o['AgentImage'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->AgentId)) $o['AgentId'] = $this->AgentId;
        if (isset($this->Company)) $o['Company'] = $this->Company;
        if (isset($this->AgentName)) $o['AgentName'] = $this->AgentName;
        if (isset($this->FirstName)) $o['FirstName'] = $this->FirstName;
        if (isset($this->LastName)) $o['LastName'] = $this->LastName;
        if (isset($this->MiddleInitial)) $o['MiddleInitial'] = $this->MiddleInitial;
        if (isset($this->Address1)) $o['Address1'] = $this->Address1;
        if (isset($this->Address2)) $o['Address2'] = $this->Address2;
        if (isset($this->City)) $o['City'] = $this->City;
        if (isset($this->State)) $o['State'] = $this->State;
        if (isset($this->Zip)) $o['Zip'] = $this->Zip;
        if (isset($this->Country)) $o['Country'] = $this->Country;
        if (isset($this->Email)) $o['Email'] = $this->Email;
        if (isset($this->EmailSignature)) $o['EmailSignature'] = $this->EmailSignature;
        if (isset($this->HomePhone)) $o['HomePhone'] = $this->HomePhone;
        if (isset($this->CellPhone)) $o['CellPhone'] = $this->CellPhone;
        if (isset($this->WorkPhone)) $o['WorkPhone'] = $this->WorkPhone;
        if (isset($this->InsLicensed)) $o['InsLicensed'] = $this->InsLicensed;
        if (isset($this->AgreeToDisclosures)) $o['AgreeToDisclosures'] = $this->AgreeToDisclosures;
        if (isset($this->AgreeToDate)) $o['AgreeToDate'] = JsonConverters::to('DateTime', $this->AgreeToDate);
        if (isset($this->PaidDate)) $o['PaidDate'] = JsonConverters::to('DateTime', $this->PaidDate);
        if (isset($this->AgentNumber)) $o['AgentNumber'] = $this->AgentNumber;
        if (isset($this->ReferringAgent)) $o['ReferringAgent'] = $this->ReferringAgent;
        if (isset($this->PlacementAgent)) $o['PlacementAgent'] = $this->PlacementAgent;
        if (isset($this->CreatedDate)) $o['CreatedDate'] = JsonConverters::to('DateTime', $this->CreatedDate);
        if (isset($this->UserId)) $o['UserId'] = $this->UserId;
        if (isset($this->IsAgent)) $o['IsAgent'] = $this->IsAgent;
        if (isset($this->Package)) $o['Package'] = $this->Package;
        if (isset($this->StoreName)) $o['StoreName'] = $this->StoreName;
        if (isset($this->Notes)) $o['Notes'] = $this->Notes;
        if (isset($this->Upline1)) $o['Upline1'] = $this->Upline1;
        if (isset($this->Upline2)) $o['Upline2'] = $this->Upline2;
        if (isset($this->Upline3)) $o['Upline3'] = $this->Upline3;
        if (isset($this->Upline4)) $o['Upline4'] = $this->Upline4;
        if (isset($this->MVPID)) $o['MVPID'] = $this->MVPID;
        if (isset($this->AVPID)) $o['AVPID'] = $this->AVPID;
        if (isset($this->RVPID)) $o['RVPID'] = $this->RVPID;
        if (isset($this->AgentLevel)) $o['AgentLevel'] = $this->AgentLevel;
        if (isset($this->IsMVP)) $o['IsMVP'] = $this->IsMVP;
        if (isset($this->IsRVP)) $o['IsRVP'] = $this->IsRVP;
        if (isset($this->IsAVP)) $o['IsAVP'] = $this->IsAVP;
        if (isset($this->IsAdmin)) $o['IsAdmin'] = $this->IsAdmin;
        if (isset($this->IsBusinessCardAdmin)) $o['IsBusinessCardAdmin'] = $this->IsBusinessCardAdmin;
        if (isset($this->TeamName)) $o['TeamName'] = $this->TeamName;
        if (isset($this->LocationId)) $o['LocationId'] = $this->LocationId;
        if (isset($this->CalendarId)) $o['CalendarId'] = $this->CalendarId;
        if (isset($this->Rank)) $o['Rank'] = $this->Rank;
        if (isset($this->NBC)) $o['NBC'] = $this->NBC;
        if (isset($this->Upline1Percent)) $o['Upline1Percent'] = $this->Upline1Percent;
        if (isset($this->Upline2Percent)) $o['Upline2Percent'] = $this->Upline2Percent;
        if (isset($this->Upline3Percent)) $o['Upline3Percent'] = $this->Upline3Percent;
        if (isset($this->Upline4Percent)) $o['Upline4Percent'] = $this->Upline4Percent;
        if (isset($this->AgentStatus)) $o['AgentStatus'] = $this->AgentStatus;
        if (isset($this->Office)) $o['Office'] = $this->Office;
        if (isset($this->DOB)) $o['DOB'] = JsonConverters::to('DateTime', $this->DOB);
        if (isset($this->SSN)) $o['SSN'] = $this->SSN;
        if (isset($this->Fax)) $o['Fax'] = $this->Fax;
        if (isset($this->BusinessEmail)) $o['BusinessEmail'] = $this->BusinessEmail;
        if (isset($this->ModifiedDate)) $o['ModifiedDate'] = JsonConverters::to('DateTime', $this->ModifiedDate);
        if (isset($this->ModifiedBy)) $o['ModifiedBy'] = $this->ModifiedBy;
        if (isset($this->TimeZone)) $o['TimeZone'] = $this->TimeZone;
        if (isset($this->LeaderLocked)) $o['LeaderLocked'] = $this->LeaderLocked;
        if (isset($this->LastSubmittedBusinessDate)) $o['LastSubmittedBusinessDate'] = JsonConverters::to('DateTime', $this->LastSubmittedBusinessDate);
        if (isset($this->GracePeriodDate)) $o['GracePeriodDate'] = JsonConverters::to('DateTime', $this->GracePeriodDate);
        if (isset($this->Vested)) $o['Vested'] = $this->Vested;
        if (isset($this->DirectPay)) $o['DirectPay'] = JsonConverters::to('DateTime', $this->DirectPay);
        if (isset($this->DirectPayApprBy)) $o['DirectPayApprBy'] = $this->DirectPayApprBy;
        if (isset($this->FactFinderBilling)) $o['FactFinderBilling'] = $this->FactFinderBilling;
        if (isset($this->FullName)) $o['FullName'] = $this->FullName;
        if (isset($this->ByLastName)) $o['ByLastName'] = $this->ByLastName;
        if (isset($this->IsSecurityLicensed)) $o['IsSecurityLicensed'] = $this->IsSecurityLicensed;
        if (isset($this->IsEncompassAdmin)) $o['IsEncompassAdmin'] = $this->IsEncompassAdmin;
        if (isset($this->ApiKey)) $o['ApiKey'] = $this->ApiKey;
        if (isset($this->LastSessionId)) $o['LastSessionId'] = $this->LastSessionId;
        if (isset($this->LastLogin)) $o['LastLogin'] = JsonConverters::to('DateTime', $this->LastLogin);
        if (isset($this->MfaActive)) $o['MfaActive'] = $this->MfaActive;
        if (isset($this->RequireMFA)) $o['RequireMFA'] = $this->RequireMFA;
        if (isset($this->SMSPhoneNumber)) $o['SMSPhoneNumber'] = $this->SMSPhoneNumber;
        if (isset($this->VerifiedEmailStatus)) $o['VerifiedEmailStatus'] = $this->VerifiedEmailStatus;
        if (isset($this->VerifiedCellPhoneStatus)) $o['VerifiedCellPhoneStatus'] = $this->VerifiedCellPhoneStatus;
        if (isset($this->SchedulerUrl)) $o['SchedulerUrl'] = $this->SchedulerUrl;
        if (isset($this->QueueDefaults)) $o['QueueDefaults'] = JsonConverters::to('QueueDefault', $this->QueueDefaults);
        if (isset($this->Roles)) $o['Roles'] = JsonConverters::toArray('string', $this->Roles);
        if (isset($this->PasswordUpdated)) $o['PasswordUpdated'] = $this->PasswordUpdated;
        if (isset($this->RestrictToSingleSession)) $o['RestrictToSingleSession'] = $this->RestrictToSingleSession;
        if (isset($this->AgentImage)) $o['AgentImage'] = $this->AgentImage;
        return empty($o) ? new class(){} : $o;
    }
}

class ScheduleConfigTimeBlock implements JsonSerializable
{
    public function __construct(
        /** @var DateInterval|null */
        public ?DateInterval $StartTime=null,
        /** @var string|null */
        public ?string $DayStartFriendly=null,
        /** @var DateInterval|null */
        public ?DateInterval $EndTime=null,
        /** @var string|null */
        public ?string $DayEndFriendly=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['StartTime'])) $this->StartTime = JsonConverters::from('DateInterval', $o['StartTime']);
        if (isset($o['DayStartFriendly'])) $this->DayStartFriendly = $o['DayStartFriendly'];
        if (isset($o['EndTime'])) $this->EndTime = JsonConverters::from('DateInterval', $o['EndTime']);
        if (isset($o['DayEndFriendly'])) $this->DayEndFriendly = $o['DayEndFriendly'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->StartTime)) $o['StartTime'] = JsonConverters::to('DateInterval', $this->StartTime);
        if (isset($this->DayStartFriendly)) $o['DayStartFriendly'] = $this->DayStartFriendly;
        if (isset($this->EndTime)) $o['EndTime'] = JsonConverters::to('DateInterval', $this->EndTime);
        if (isset($this->DayEndFriendly)) $o['DayEndFriendly'] = $this->DayEndFriendly;
        return empty($o) ? new class(){} : $o;
    }
}

class ScheduleConfigDay implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $DayName=null,
        /** @var int|null */
        public ?int $DayNumber=null,
        /** @var bool|null */
        public ?bool $DayEnabled=null,
        /** @var array<ScheduleConfigTimeBlock>|null */
        public ?array $TimeBlocks=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['DayName'])) $this->DayName = $o['DayName'];
        if (isset($o['DayNumber'])) $this->DayNumber = $o['DayNumber'];
        if (isset($o['DayEnabled'])) $this->DayEnabled = $o['DayEnabled'];
        if (isset($o['TimeBlocks'])) $this->TimeBlocks = JsonConverters::fromArray('ScheduleConfigTimeBlock', $o['TimeBlocks']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->DayName)) $o['DayName'] = $this->DayName;
        if (isset($this->DayNumber)) $o['DayNumber'] = $this->DayNumber;
        if (isset($this->DayEnabled)) $o['DayEnabled'] = $this->DayEnabled;
        if (isset($this->TimeBlocks)) $o['TimeBlocks'] = JsonConverters::toArray('ScheduleConfigTimeBlock', $this->TimeBlocks);
        return empty($o) ? new class(){} : $o;
    }
}

class LineImage implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $ImageId=null,
        /** @var string|null */
        public ?string $LineId=null,
        /** @var string|null */
        public ?string $ImageTitle=null,
        /** @var DateTime */
        public DateTime $UploadDate=new DateTime(),
        /** @var string|null */
        public ?string $MimeType=null,
        /** @var string|null */
        public ?string $FileName=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ImageId'])) $this->ImageId = $o['ImageId'];
        if (isset($o['LineId'])) $this->LineId = $o['LineId'];
        if (isset($o['ImageTitle'])) $this->ImageTitle = $o['ImageTitle'];
        if (isset($o['UploadDate'])) $this->UploadDate = JsonConverters::from('DateTime', $o['UploadDate']);
        if (isset($o['MimeType'])) $this->MimeType = $o['MimeType'];
        if (isset($o['FileName'])) $this->FileName = $o['FileName'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ImageId)) $o['ImageId'] = $this->ImageId;
        if (isset($this->LineId)) $o['LineId'] = $this->LineId;
        if (isset($this->ImageTitle)) $o['ImageTitle'] = $this->ImageTitle;
        if (isset($this->UploadDate)) $o['UploadDate'] = JsonConverters::to('DateTime', $this->UploadDate);
        if (isset($this->MimeType)) $o['MimeType'] = $this->MimeType;
        if (isset($this->FileName)) $o['FileName'] = $this->FileName;
        return empty($o) ? new class(){} : $o;
    }
}

class Line implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $Id='',
        /** @var string */
        public string $LocationId='',
        /** @var string|null */
        public ?string $LocationName=null,
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Description=null,
        /** @var int */
        public int $ServiceDurationMinutes=0,
        /** @var int */
        public int $WaitTime=0,
        /** @var float */
        public float $Cost=0.0,
        /** @var int|null */
        public ?int $UpperThreshold=null,
        /** @var int|null */
        public ?int $LowerThreshold=null,
        /** @var bool|null */
        public ?bool $Active=null,
        /** @var DateTime|null */
        public ?DateTime $EntDate=null,
        /** @var DateTime|null */
        public ?DateTime $ModDate=null,
        /** @var bool|null */
        public ?bool $SendQuestionnaire=null,
        /** @var bool|null */
        public ?bool $RequireUpload=null,
        /** @var string|null */
        public ?string $UploadMessage=null,
        /** @var array<LineImage>|null */
        public ?array $LineImages=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['LocationId'])) $this->LocationId = $o['LocationId'];
        if (isset($o['LocationName'])) $this->LocationName = $o['LocationName'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
        if (isset($o['ServiceDurationMinutes'])) $this->ServiceDurationMinutes = $o['ServiceDurationMinutes'];
        if (isset($o['WaitTime'])) $this->WaitTime = $o['WaitTime'];
        if (isset($o['Cost'])) $this->Cost = $o['Cost'];
        if (isset($o['UpperThreshold'])) $this->UpperThreshold = $o['UpperThreshold'];
        if (isset($o['LowerThreshold'])) $this->LowerThreshold = $o['LowerThreshold'];
        if (isset($o['Active'])) $this->Active = $o['Active'];
        if (isset($o['EntDate'])) $this->EntDate = JsonConverters::from('DateTime', $o['EntDate']);
        if (isset($o['ModDate'])) $this->ModDate = JsonConverters::from('DateTime', $o['ModDate']);
        if (isset($o['SendQuestionnaire'])) $this->SendQuestionnaire = $o['SendQuestionnaire'];
        if (isset($o['RequireUpload'])) $this->RequireUpload = $o['RequireUpload'];
        if (isset($o['UploadMessage'])) $this->UploadMessage = $o['UploadMessage'];
        if (isset($o['LineImages'])) $this->LineImages = JsonConverters::fromArray('LineImage', $o['LineImages']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->LocationId)) $o['LocationId'] = $this->LocationId;
        if (isset($this->LocationName)) $o['LocationName'] = $this->LocationName;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        if (isset($this->ServiceDurationMinutes)) $o['ServiceDurationMinutes'] = $this->ServiceDurationMinutes;
        if (isset($this->WaitTime)) $o['WaitTime'] = $this->WaitTime;
        if (isset($this->Cost)) $o['Cost'] = $this->Cost;
        if (isset($this->UpperThreshold)) $o['UpperThreshold'] = $this->UpperThreshold;
        if (isset($this->LowerThreshold)) $o['LowerThreshold'] = $this->LowerThreshold;
        if (isset($this->Active)) $o['Active'] = $this->Active;
        if (isset($this->EntDate)) $o['EntDate'] = JsonConverters::to('DateTime', $this->EntDate);
        if (isset($this->ModDate)) $o['ModDate'] = JsonConverters::to('DateTime', $this->ModDate);
        if (isset($this->SendQuestionnaire)) $o['SendQuestionnaire'] = $this->SendQuestionnaire;
        if (isset($this->RequireUpload)) $o['RequireUpload'] = $this->RequireUpload;
        if (isset($this->UploadMessage)) $o['UploadMessage'] = $this->UploadMessage;
        if (isset($this->LineImages)) $o['LineImages'] = JsonConverters::toArray('LineImage', $this->LineImages);
        return empty($o) ? new class(){} : $o;
    }
}

class SchedulerConfiguration implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ConfigId=0,
        /** @var string|null */
        public ?string $SchedulerUrl=null,
        /** @var string|null */
        public ?string $SchedulerName=null,
        /** @var string|null */
        public ?string $DefaultLocation=null,
        /** @var string|null */
        public ?string $DefaultSummary=null,
        /** @var string|null */
        public ?string $DefaultDescription=null,
        /** @var DateInterval|null */
        public ?DateInterval $DayStart=null,
        /** @var string|null */
        public ?string $DayStartFriendly=null,
        /** @var DateInterval|null */
        public ?DateInterval $DayEnd=null,
        /** @var string|null */
        public ?string $DayEndFriendly=null,
        /** @var int */
        public int $TimeslotDuration=0,
        /** @var int|null */
        public ?int $NumberOfSlots=null,
        /** @var string */
        public string $LocationId='',
        /** @var string */
        public string $CalendarId='',
        /** @var int */
        public int $AgentId=0,
        /** @var string|null */
        public ?string $TimeZone=null,
        /** @var array<ScheduleConfigDay>|null */
        public ?array $AvailableDateTimes=null,
        /** @var array<string>|null */
        public ?array $AvailableServices=null,
        /** @var array<Line>|null */
        public ?array $AllServices=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ConfigId'])) $this->ConfigId = $o['ConfigId'];
        if (isset($o['SchedulerUrl'])) $this->SchedulerUrl = $o['SchedulerUrl'];
        if (isset($o['SchedulerName'])) $this->SchedulerName = $o['SchedulerName'];
        if (isset($o['DefaultLocation'])) $this->DefaultLocation = $o['DefaultLocation'];
        if (isset($o['DefaultSummary'])) $this->DefaultSummary = $o['DefaultSummary'];
        if (isset($o['DefaultDescription'])) $this->DefaultDescription = $o['DefaultDescription'];
        if (isset($o['DayStart'])) $this->DayStart = JsonConverters::from('DateInterval', $o['DayStart']);
        if (isset($o['DayStartFriendly'])) $this->DayStartFriendly = $o['DayStartFriendly'];
        if (isset($o['DayEnd'])) $this->DayEnd = JsonConverters::from('DateInterval', $o['DayEnd']);
        if (isset($o['DayEndFriendly'])) $this->DayEndFriendly = $o['DayEndFriendly'];
        if (isset($o['TimeslotDuration'])) $this->TimeslotDuration = $o['TimeslotDuration'];
        if (isset($o['NumberOfSlots'])) $this->NumberOfSlots = $o['NumberOfSlots'];
        if (isset($o['LocationId'])) $this->LocationId = $o['LocationId'];
        if (isset($o['CalendarId'])) $this->CalendarId = $o['CalendarId'];
        if (isset($o['AgentId'])) $this->AgentId = $o['AgentId'];
        if (isset($o['TimeZone'])) $this->TimeZone = $o['TimeZone'];
        if (isset($o['AvailableDateTimes'])) $this->AvailableDateTimes = JsonConverters::fromArray('ScheduleConfigDay', $o['AvailableDateTimes']);
        if (isset($o['AvailableServices'])) $this->AvailableServices = JsonConverters::fromArray('Guid', $o['AvailableServices']);
        if (isset($o['AllServices'])) $this->AllServices = JsonConverters::fromArray('Line', $o['AllServices']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ConfigId)) $o['ConfigId'] = $this->ConfigId;
        if (isset($this->SchedulerUrl)) $o['SchedulerUrl'] = $this->SchedulerUrl;
        if (isset($this->SchedulerName)) $o['SchedulerName'] = $this->SchedulerName;
        if (isset($this->DefaultLocation)) $o['DefaultLocation'] = $this->DefaultLocation;
        if (isset($this->DefaultSummary)) $o['DefaultSummary'] = $this->DefaultSummary;
        if (isset($this->DefaultDescription)) $o['DefaultDescription'] = $this->DefaultDescription;
        if (isset($this->DayStart)) $o['DayStart'] = JsonConverters::to('DateInterval', $this->DayStart);
        if (isset($this->DayStartFriendly)) $o['DayStartFriendly'] = $this->DayStartFriendly;
        if (isset($this->DayEnd)) $o['DayEnd'] = JsonConverters::to('DateInterval', $this->DayEnd);
        if (isset($this->DayEndFriendly)) $o['DayEndFriendly'] = $this->DayEndFriendly;
        if (isset($this->TimeslotDuration)) $o['TimeslotDuration'] = $this->TimeslotDuration;
        if (isset($this->NumberOfSlots)) $o['NumberOfSlots'] = $this->NumberOfSlots;
        if (isset($this->LocationId)) $o['LocationId'] = $this->LocationId;
        if (isset($this->CalendarId)) $o['CalendarId'] = $this->CalendarId;
        if (isset($this->AgentId)) $o['AgentId'] = $this->AgentId;
        if (isset($this->TimeZone)) $o['TimeZone'] = $this->TimeZone;
        if (isset($this->AvailableDateTimes)) $o['AvailableDateTimes'] = JsonConverters::toArray('ScheduleConfigDay', $this->AvailableDateTimes);
        if (isset($this->AvailableServices)) $o['AvailableServices'] = JsonConverters::toArray('Guid', $this->AvailableServices);
        if (isset($this->AllServices)) $o['AllServices'] = JsonConverters::toArray('Line', $this->AllServices);
        return empty($o) ? new class(){} : $o;
    }
}

class Contact implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ContactId=0,
        /** @var int */
        public int $ContactType=0,
        /** @var string|null */
        public ?string $FirstName=null,
        /** @var string|null */
        public ?string $LastName=null,
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Role=null,
        /** @var string|null */
        public ?string $Title=null,
        /** @var string|null */
        public ?string $EmailWork=null,
        /** @var string|null */
        public ?string $EmailPersonal=null,
        /** @var string|null */
        public ?string $District=null,
        /** @var int */
        public int $DistrictID=0,
        /** @var string|null */
        public ?string $School=null,
        /** @var int */
        public int $SchoolID=0,
        /** @var string|null */
        public ?string $State=null,
        /** @var string|null */
        public ?string $StateName=null,
        /** @var int */
        public int $StateID=0,
        /** @var int */
        public int $CountyID=0,
        /** @var string|null */
        public ?string $County=null,
        /** @var string|null */
        public ?string $Phone=null,
        /** @var string|null */
        public ?string $Department=null,
        /** @var string|null */
        public ?string $Flow=null,
        /** @var DateTime */
        public DateTime $LastContact=new DateTime(),
        /** @var bool|null */
        public ?bool $DoNotContact=null,
        /** @var bool|null */
        public ?bool $Active=null,
        /** @var int */
        public int $AgentId=0,
        /** @var string|null */
        public ?string $PhoneAlt=null,
        /** @var int */
        public int $PeraContactId=0,
        /** @var string|null */
        public ?string $RoomNumber=null,
        /** @var int */
        public int $SourceTypeId=0,
        /** @var string|null */
        public ?string $SourceTypeDesc=null,
        /** @var string|null */
        public ?string $SourceNote=null,
        /** @var int */
        public int $ContactStatusId=0,
        /** @var string|null */
        public ?string $ContactStatusDesc=null,
        /** @var string|null */
        public ?string $SSN=null,
        /** @var DateTime */
        public DateTime $DateOfBirth=new DateTime(),
        /** @var bool|null */
        public ?bool $Deleted=null,
        /** @var bool|null */
        public ?bool $IsShared=null,
        /** @var string|null */
        public ?string $address_line1=null,
        /** @var string|null */
        public ?string $address_city=null,
        /** @var string|null */
        public ?string $address_state=null,
        /** @var string|null */
        public ?string $address_zip=null,
        /** @var string|null */
        public ?string $DeletedBy=null,
        /** @var DateTime|null */
        public ?DateTime $DeletedDateTimeUtc=null,
        /** @var bool|null */
        public ?bool $HasNBC=null,
        /** @var bool|null */
        public ?bool $HasFactFinderSheet=null,
        /** @var string|null */
        public ?string $MiddleInitial=null,
        /** @var string|null */
        public ?string $Tags=null,
        /** @var DateTime */
        public DateTime $DateCreated=new DateTime(),
        /** @var string|null */
        public ?string $PhoneLabel=null,
        /** @var string|null */
        public ?string $AltPhoneLabel=null,
        /** @var string|null */
        public ?string $Carriers=null,
        /** @var string|null */
        public ?string $ContactImage=null,
        /** @var string|null */
        public ?string $CompanyAffiliation=null,
        /** @var string|null */
        public ?string $AdditionalInformation=null,
        /** @var bool|null */
        public ?bool $HasGiftCard=null,
        /** @var int */
        public int $ContactCategory=0,
        /** @var int */
        public int $WritingAgentId=0,
        /** @var string|null */
        public ?string $WritingAgentName=null,
        /** @var string|null */
        public ?string $MaritalStatus=null,
        /** @var float */
        public float $TotalDebtAmount=0.0,
        /** @var int */
        public int $NumberOfDebtAccounts=0,
        /** @var int */
        public int $FactFinderCodeId=0,
        /** @var string|null */
        public ?string $BusinessName=null,
        /** @var string|null */
        public ?string $DBA=null,
        /** @var string */
        public string $ContactGUID='',
        /** @var DateTime */
        public DateTime $ProjectEndDate=new DateTime(),
        /** @var int */
        public int $Rate=0,
        /** @var int */
        public int $JobID=0,
        /** @var string|null */
        public ?string $JobName=null,
        /** @var int */
        public int $JobCount=0,
        /** @var bool|null */
        public ?bool $Locked=null,
        /** @var int */
        public int $LockedByAgentId=0,
        /** @var DateTime */
        public DateTime $LockedTimestamp=new DateTime(),
        /** @var string|null */
        public ?string $Initials=null,
        /** @var string|null */
        public ?string $ContactCategoryName=null,
        /** @var bool|null */
        public ?bool $SMSOptIn=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ContactId'])) $this->ContactId = $o['ContactId'];
        if (isset($o['ContactType'])) $this->ContactType = $o['ContactType'];
        if (isset($o['FirstName'])) $this->FirstName = $o['FirstName'];
        if (isset($o['LastName'])) $this->LastName = $o['LastName'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Role'])) $this->Role = $o['Role'];
        if (isset($o['Title'])) $this->Title = $o['Title'];
        if (isset($o['EmailWork'])) $this->EmailWork = $o['EmailWork'];
        if (isset($o['EmailPersonal'])) $this->EmailPersonal = $o['EmailPersonal'];
        if (isset($o['District'])) $this->District = $o['District'];
        if (isset($o['DistrictID'])) $this->DistrictID = $o['DistrictID'];
        if (isset($o['School'])) $this->School = $o['School'];
        if (isset($o['SchoolID'])) $this->SchoolID = $o['SchoolID'];
        if (isset($o['State'])) $this->State = $o['State'];
        if (isset($o['StateName'])) $this->StateName = $o['StateName'];
        if (isset($o['StateID'])) $this->StateID = $o['StateID'];
        if (isset($o['CountyID'])) $this->CountyID = $o['CountyID'];
        if (isset($o['County'])) $this->County = $o['County'];
        if (isset($o['Phone'])) $this->Phone = $o['Phone'];
        if (isset($o['Department'])) $this->Department = $o['Department'];
        if (isset($o['Flow'])) $this->Flow = $o['Flow'];
        if (isset($o['LastContact'])) $this->LastContact = JsonConverters::from('DateTime', $o['LastContact']);
        if (isset($o['DoNotContact'])) $this->DoNotContact = $o['DoNotContact'];
        if (isset($o['Active'])) $this->Active = $o['Active'];
        if (isset($o['AgentId'])) $this->AgentId = $o['AgentId'];
        if (isset($o['PhoneAlt'])) $this->PhoneAlt = $o['PhoneAlt'];
        if (isset($o['PeraContactId'])) $this->PeraContactId = $o['PeraContactId'];
        if (isset($o['RoomNumber'])) $this->RoomNumber = $o['RoomNumber'];
        if (isset($o['SourceTypeId'])) $this->SourceTypeId = $o['SourceTypeId'];
        if (isset($o['SourceTypeDesc'])) $this->SourceTypeDesc = $o['SourceTypeDesc'];
        if (isset($o['SourceNote'])) $this->SourceNote = $o['SourceNote'];
        if (isset($o['ContactStatusId'])) $this->ContactStatusId = $o['ContactStatusId'];
        if (isset($o['ContactStatusDesc'])) $this->ContactStatusDesc = $o['ContactStatusDesc'];
        if (isset($o['SSN'])) $this->SSN = $o['SSN'];
        if (isset($o['DateOfBirth'])) $this->DateOfBirth = JsonConverters::from('DateTime', $o['DateOfBirth']);
        if (isset($o['Deleted'])) $this->Deleted = $o['Deleted'];
        if (isset($o['IsShared'])) $this->IsShared = $o['IsShared'];
        if (isset($o['address_line1'])) $this->address_line1 = $o['address_line1'];
        if (isset($o['address_city'])) $this->address_city = $o['address_city'];
        if (isset($o['address_state'])) $this->address_state = $o['address_state'];
        if (isset($o['address_zip'])) $this->address_zip = $o['address_zip'];
        if (isset($o['DeletedBy'])) $this->DeletedBy = $o['DeletedBy'];
        if (isset($o['DeletedDateTimeUtc'])) $this->DeletedDateTimeUtc = JsonConverters::from('DateTime', $o['DeletedDateTimeUtc']);
        if (isset($o['HasNBC'])) $this->HasNBC = $o['HasNBC'];
        if (isset($o['HasFactFinderSheet'])) $this->HasFactFinderSheet = $o['HasFactFinderSheet'];
        if (isset($o['MiddleInitial'])) $this->MiddleInitial = $o['MiddleInitial'];
        if (isset($o['Tags'])) $this->Tags = $o['Tags'];
        if (isset($o['DateCreated'])) $this->DateCreated = JsonConverters::from('DateTime', $o['DateCreated']);
        if (isset($o['PhoneLabel'])) $this->PhoneLabel = $o['PhoneLabel'];
        if (isset($o['AltPhoneLabel'])) $this->AltPhoneLabel = $o['AltPhoneLabel'];
        if (isset($o['Carriers'])) $this->Carriers = $o['Carriers'];
        if (isset($o['ContactImage'])) $this->ContactImage = $o['ContactImage'];
        if (isset($o['CompanyAffiliation'])) $this->CompanyAffiliation = $o['CompanyAffiliation'];
        if (isset($o['AdditionalInformation'])) $this->AdditionalInformation = $o['AdditionalInformation'];
        if (isset($o['HasGiftCard'])) $this->HasGiftCard = $o['HasGiftCard'];
        if (isset($o['ContactCategory'])) $this->ContactCategory = $o['ContactCategory'];
        if (isset($o['WritingAgentId'])) $this->WritingAgentId = $o['WritingAgentId'];
        if (isset($o['WritingAgentName'])) $this->WritingAgentName = $o['WritingAgentName'];
        if (isset($o['MaritalStatus'])) $this->MaritalStatus = $o['MaritalStatus'];
        if (isset($o['TotalDebtAmount'])) $this->TotalDebtAmount = $o['TotalDebtAmount'];
        if (isset($o['NumberOfDebtAccounts'])) $this->NumberOfDebtAccounts = $o['NumberOfDebtAccounts'];
        if (isset($o['FactFinderCodeId'])) $this->FactFinderCodeId = $o['FactFinderCodeId'];
        if (isset($o['BusinessName'])) $this->BusinessName = $o['BusinessName'];
        if (isset($o['DBA'])) $this->DBA = $o['DBA'];
        if (isset($o['ContactGUID'])) $this->ContactGUID = $o['ContactGUID'];
        if (isset($o['ProjectEndDate'])) $this->ProjectEndDate = JsonConverters::from('DateTime', $o['ProjectEndDate']);
        if (isset($o['Rate'])) $this->Rate = $o['Rate'];
        if (isset($o['JobID'])) $this->JobID = $o['JobID'];
        if (isset($o['JobName'])) $this->JobName = $o['JobName'];
        if (isset($o['JobCount'])) $this->JobCount = $o['JobCount'];
        if (isset($o['Locked'])) $this->Locked = $o['Locked'];
        if (isset($o['LockedByAgentId'])) $this->LockedByAgentId = $o['LockedByAgentId'];
        if (isset($o['LockedTimestamp'])) $this->LockedTimestamp = JsonConverters::from('DateTime', $o['LockedTimestamp']);
        if (isset($o['Initials'])) $this->Initials = $o['Initials'];
        if (isset($o['ContactCategoryName'])) $this->ContactCategoryName = $o['ContactCategoryName'];
        if (isset($o['SMSOptIn'])) $this->SMSOptIn = $o['SMSOptIn'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ContactId)) $o['ContactId'] = $this->ContactId;
        if (isset($this->ContactType)) $o['ContactType'] = $this->ContactType;
        if (isset($this->FirstName)) $o['FirstName'] = $this->FirstName;
        if (isset($this->LastName)) $o['LastName'] = $this->LastName;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Role)) $o['Role'] = $this->Role;
        if (isset($this->Title)) $o['Title'] = $this->Title;
        if (isset($this->EmailWork)) $o['EmailWork'] = $this->EmailWork;
        if (isset($this->EmailPersonal)) $o['EmailPersonal'] = $this->EmailPersonal;
        if (isset($this->District)) $o['District'] = $this->District;
        if (isset($this->DistrictID)) $o['DistrictID'] = $this->DistrictID;
        if (isset($this->School)) $o['School'] = $this->School;
        if (isset($this->SchoolID)) $o['SchoolID'] = $this->SchoolID;
        if (isset($this->State)) $o['State'] = $this->State;
        if (isset($this->StateName)) $o['StateName'] = $this->StateName;
        if (isset($this->StateID)) $o['StateID'] = $this->StateID;
        if (isset($this->CountyID)) $o['CountyID'] = $this->CountyID;
        if (isset($this->County)) $o['County'] = $this->County;
        if (isset($this->Phone)) $o['Phone'] = $this->Phone;
        if (isset($this->Department)) $o['Department'] = $this->Department;
        if (isset($this->Flow)) $o['Flow'] = $this->Flow;
        if (isset($this->LastContact)) $o['LastContact'] = JsonConverters::to('DateTime', $this->LastContact);
        if (isset($this->DoNotContact)) $o['DoNotContact'] = $this->DoNotContact;
        if (isset($this->Active)) $o['Active'] = $this->Active;
        if (isset($this->AgentId)) $o['AgentId'] = $this->AgentId;
        if (isset($this->PhoneAlt)) $o['PhoneAlt'] = $this->PhoneAlt;
        if (isset($this->PeraContactId)) $o['PeraContactId'] = $this->PeraContactId;
        if (isset($this->RoomNumber)) $o['RoomNumber'] = $this->RoomNumber;
        if (isset($this->SourceTypeId)) $o['SourceTypeId'] = $this->SourceTypeId;
        if (isset($this->SourceTypeDesc)) $o['SourceTypeDesc'] = $this->SourceTypeDesc;
        if (isset($this->SourceNote)) $o['SourceNote'] = $this->SourceNote;
        if (isset($this->ContactStatusId)) $o['ContactStatusId'] = $this->ContactStatusId;
        if (isset($this->ContactStatusDesc)) $o['ContactStatusDesc'] = $this->ContactStatusDesc;
        if (isset($this->SSN)) $o['SSN'] = $this->SSN;
        if (isset($this->DateOfBirth)) $o['DateOfBirth'] = JsonConverters::to('DateTime', $this->DateOfBirth);
        if (isset($this->Deleted)) $o['Deleted'] = $this->Deleted;
        if (isset($this->IsShared)) $o['IsShared'] = $this->IsShared;
        if (isset($this->address_line1)) $o['address_line1'] = $this->address_line1;
        if (isset($this->address_city)) $o['address_city'] = $this->address_city;
        if (isset($this->address_state)) $o['address_state'] = $this->address_state;
        if (isset($this->address_zip)) $o['address_zip'] = $this->address_zip;
        if (isset($this->DeletedBy)) $o['DeletedBy'] = $this->DeletedBy;
        if (isset($this->DeletedDateTimeUtc)) $o['DeletedDateTimeUtc'] = JsonConverters::to('DateTime', $this->DeletedDateTimeUtc);
        if (isset($this->HasNBC)) $o['HasNBC'] = $this->HasNBC;
        if (isset($this->HasFactFinderSheet)) $o['HasFactFinderSheet'] = $this->HasFactFinderSheet;
        if (isset($this->MiddleInitial)) $o['MiddleInitial'] = $this->MiddleInitial;
        if (isset($this->Tags)) $o['Tags'] = $this->Tags;
        if (isset($this->DateCreated)) $o['DateCreated'] = JsonConverters::to('DateTime', $this->DateCreated);
        if (isset($this->PhoneLabel)) $o['PhoneLabel'] = $this->PhoneLabel;
        if (isset($this->AltPhoneLabel)) $o['AltPhoneLabel'] = $this->AltPhoneLabel;
        if (isset($this->Carriers)) $o['Carriers'] = $this->Carriers;
        if (isset($this->ContactImage)) $o['ContactImage'] = $this->ContactImage;
        if (isset($this->CompanyAffiliation)) $o['CompanyAffiliation'] = $this->CompanyAffiliation;
        if (isset($this->AdditionalInformation)) $o['AdditionalInformation'] = $this->AdditionalInformation;
        if (isset($this->HasGiftCard)) $o['HasGiftCard'] = $this->HasGiftCard;
        if (isset($this->ContactCategory)) $o['ContactCategory'] = $this->ContactCategory;
        if (isset($this->WritingAgentId)) $o['WritingAgentId'] = $this->WritingAgentId;
        if (isset($this->WritingAgentName)) $o['WritingAgentName'] = $this->WritingAgentName;
        if (isset($this->MaritalStatus)) $o['MaritalStatus'] = $this->MaritalStatus;
        if (isset($this->TotalDebtAmount)) $o['TotalDebtAmount'] = $this->TotalDebtAmount;
        if (isset($this->NumberOfDebtAccounts)) $o['NumberOfDebtAccounts'] = $this->NumberOfDebtAccounts;
        if (isset($this->FactFinderCodeId)) $o['FactFinderCodeId'] = $this->FactFinderCodeId;
        if (isset($this->BusinessName)) $o['BusinessName'] = $this->BusinessName;
        if (isset($this->DBA)) $o['DBA'] = $this->DBA;
        if (isset($this->ContactGUID)) $o['ContactGUID'] = $this->ContactGUID;
        if (isset($this->ProjectEndDate)) $o['ProjectEndDate'] = JsonConverters::to('DateTime', $this->ProjectEndDate);
        if (isset($this->Rate)) $o['Rate'] = $this->Rate;
        if (isset($this->JobID)) $o['JobID'] = $this->JobID;
        if (isset($this->JobName)) $o['JobName'] = $this->JobName;
        if (isset($this->JobCount)) $o['JobCount'] = $this->JobCount;
        if (isset($this->Locked)) $o['Locked'] = $this->Locked;
        if (isset($this->LockedByAgentId)) $o['LockedByAgentId'] = $this->LockedByAgentId;
        if (isset($this->LockedTimestamp)) $o['LockedTimestamp'] = JsonConverters::to('DateTime', $this->LockedTimestamp);
        if (isset($this->Initials)) $o['Initials'] = $this->Initials;
        if (isset($this->ContactCategoryName)) $o['ContactCategoryName'] = $this->ContactCategoryName;
        if (isset($this->SMSOptIn)) $o['SMSOptIn'] = $this->SMSOptIn;
        return empty($o) ? new class(){} : $o;
    }
}

class SchedulerTimeslot implements JsonSerializable
{
    public function __construct(
        /** @var DateTime */
        public DateTime $Day=new DateTime(),
        /** @var DateInterval|null */
        public ?DateInterval $Time=null,
        /** @var int */
        public int $Duration=0,
        /** @var DateTime */
        public DateTime $StartDateTime=new DateTime(),
        /** @var DateTime */
        public DateTime $EndDateTime=new DateTime(),
        /** @var string|null */
        public ?string $TimeFriendly=null,
        /** @var Contact|null */
        public ?Contact $Contact=null,
        /** @var array<string>|null */
        public ?array $ServiceIds=null,
        /** @var string */
        public string $LocationId='',
        /** @var bool|null */
        public ?bool $Unavailable=null,
        /** @var array<int>|null */
        public ?array $BookedIds=null,
        /** @var string */
        public string $CalendarId='',
        /** @var string|null */
        public ?string $SchedulerUrl=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Day'])) $this->Day = JsonConverters::from('DateTime', $o['Day']);
        if (isset($o['Time'])) $this->Time = JsonConverters::from('DateInterval', $o['Time']);
        if (isset($o['Duration'])) $this->Duration = $o['Duration'];
        if (isset($o['StartDateTime'])) $this->StartDateTime = JsonConverters::from('DateTime', $o['StartDateTime']);
        if (isset($o['EndDateTime'])) $this->EndDateTime = JsonConverters::from('DateTime', $o['EndDateTime']);
        if (isset($o['TimeFriendly'])) $this->TimeFriendly = $o['TimeFriendly'];
        if (isset($o['Contact'])) $this->Contact = JsonConverters::from('Contact', $o['Contact']);
        if (isset($o['ServiceIds'])) $this->ServiceIds = JsonConverters::fromArray('Guid', $o['ServiceIds']);
        if (isset($o['LocationId'])) $this->LocationId = $o['LocationId'];
        if (isset($o['Unavailable'])) $this->Unavailable = $o['Unavailable'];
        if (isset($o['BookedIds'])) $this->BookedIds = JsonConverters::fromArray('int', $o['BookedIds']);
        if (isset($o['CalendarId'])) $this->CalendarId = $o['CalendarId'];
        if (isset($o['SchedulerUrl'])) $this->SchedulerUrl = $o['SchedulerUrl'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Day)) $o['Day'] = JsonConverters::to('DateTime', $this->Day);
        if (isset($this->Time)) $o['Time'] = JsonConverters::to('DateInterval', $this->Time);
        if (isset($this->Duration)) $o['Duration'] = $this->Duration;
        if (isset($this->StartDateTime)) $o['StartDateTime'] = JsonConverters::to('DateTime', $this->StartDateTime);
        if (isset($this->EndDateTime)) $o['EndDateTime'] = JsonConverters::to('DateTime', $this->EndDateTime);
        if (isset($this->TimeFriendly)) $o['TimeFriendly'] = $this->TimeFriendly;
        if (isset($this->Contact)) $o['Contact'] = JsonConverters::to('Contact', $this->Contact);
        if (isset($this->ServiceIds)) $o['ServiceIds'] = JsonConverters::toArray('Guid', $this->ServiceIds);
        if (isset($this->LocationId)) $o['LocationId'] = $this->LocationId;
        if (isset($this->Unavailable)) $o['Unavailable'] = $this->Unavailable;
        if (isset($this->BookedIds)) $o['BookedIds'] = JsonConverters::toArray('int', $this->BookedIds);
        if (isset($this->CalendarId)) $o['CalendarId'] = $this->CalendarId;
        if (isset($this->SchedulerUrl)) $o['SchedulerUrl'] = $this->SchedulerUrl;
        return empty($o) ? new class(){} : $o;
    }
}

class SchedulerDay implements JsonSerializable
{
    public function __construct(
        /** @var DateTime */
        public DateTime $Day=new DateTime(),
        /** @var int */
        public int $MonthNumber=0,
        /** @var int */
        public int $DayNumber=0,
        /** @var string|null */
        public ?string $DayOfWeek=null,
        /** @var array<SchedulerTimeslot>|null */
        public ?array $Timeslots=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Day'])) $this->Day = JsonConverters::from('DateTime', $o['Day']);
        if (isset($o['MonthNumber'])) $this->MonthNumber = $o['MonthNumber'];
        if (isset($o['DayNumber'])) $this->DayNumber = $o['DayNumber'];
        if (isset($o['DayOfWeek'])) $this->DayOfWeek = $o['DayOfWeek'];
        if (isset($o['Timeslots'])) $this->Timeslots = JsonConverters::fromArray('SchedulerTimeslot', $o['Timeslots']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Day)) $o['Day'] = JsonConverters::to('DateTime', $this->Day);
        if (isset($this->MonthNumber)) $o['MonthNumber'] = $this->MonthNumber;
        if (isset($this->DayNumber)) $o['DayNumber'] = $this->DayNumber;
        if (isset($this->DayOfWeek)) $o['DayOfWeek'] = $this->DayOfWeek;
        if (isset($this->Timeslots)) $o['Timeslots'] = JsonConverters::toArray('SchedulerTimeslot', $this->Timeslots);
        return empty($o) ? new class(){} : $o;
    }
}

class SchedulerWeek implements JsonSerializable
{
    public function __construct(
        /** @var SchedulerConfiguration|null */
        public ?SchedulerConfiguration $Settings=null,
        /** @var array<SchedulerDay>|null */
        public ?array $Days=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Settings'])) $this->Settings = JsonConverters::from('SchedulerConfiguration', $o['Settings']);
        if (isset($o['Days'])) $this->Days = JsonConverters::fromArray('SchedulerDay', $o['Days']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Settings)) $o['Settings'] = JsonConverters::to('SchedulerConfiguration', $this->Settings);
        if (isset($this->Days)) $o['Days'] = JsonConverters::toArray('SchedulerDay', $this->Days);
        return empty($o) ? new class(){} : $o;
    }
}

class SchedulerResponse implements JsonSerializable
{
    public function __construct(
        /** @var Location|null */
        public ?Location $Location=null,
        /** @var Agent|null */
        public ?Agent $Agent=null,
        /** @var ResponseStatus|null */
        public ?ResponseStatus $ResponseStatus=null,
        /** @var SchedulerWeek|null */
        public ?SchedulerWeek $Week=null,
        /** @var array<Line>|null */
        public ?array $Services=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Location'])) $this->Location = JsonConverters::from('Location', $o['Location']);
        if (isset($o['Agent'])) $this->Agent = JsonConverters::from('Agent', $o['Agent']);
        if (isset($o['ResponseStatus'])) $this->ResponseStatus = JsonConverters::from('ResponseStatus', $o['ResponseStatus']);
        if (isset($o['Week'])) $this->Week = JsonConverters::from('SchedulerWeek', $o['Week']);
        if (isset($o['Services'])) $this->Services = JsonConverters::fromArray('Line', $o['Services']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Location)) $o['Location'] = JsonConverters::to('Location', $this->Location);
        if (isset($this->Agent)) $o['Agent'] = JsonConverters::to('Agent', $this->Agent);
        if (isset($this->ResponseStatus)) $o['ResponseStatus'] = JsonConverters::to('ResponseStatus', $this->ResponseStatus);
        if (isset($this->Week)) $o['Week'] = JsonConverters::to('SchedulerWeek', $this->Week);
        if (isset($this->Services)) $o['Services'] = JsonConverters::toArray('Line', $this->Services);
        return empty($o) ? new class(){} : $o;
    }
}

PHP SchedulerRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/Scheduler/{SchedulerUrl} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Location":{"Id":"00000000000000000000000000000000","ClientId":"00000000000000000000000000000000","Name":"String","Address1":"String","Address2":"String","City":"String","State":"String","Zip":"String","Phone":"String","Fax":"String","URL":"String","Email":"String","TimeZone":"String","Active":false,"EntDate":"0001-01-01T00:00:00.0000000","ModDate":"0001-01-01T00:00:00.0000000","LocationImage":"String"},"Agent":{"AgentId":0,"Company":"String","AgentName":"String","FirstName":"String","LastName":"String","MiddleInitial":"String","Address1":"String","Address2":"String","City":"String","State":"String","Zip":"String","Country":"String","Email":"String","EmailSignature":"String","HomePhone":"String","CellPhone":"String","WorkPhone":"String","InsLicensed":false,"AgreeToDisclosures":false,"AgreeToDate":"0001-01-01T00:00:00.0000000","PaidDate":"0001-01-01T00:00:00.0000000","AgentNumber":"String","ReferringAgent":"String","PlacementAgent":"String","CreatedDate":"0001-01-01T00:00:00.0000000","UserId":"00000000000000000000000000000000","IsAgent":false,"Package":"String","StoreName":"String","Notes":"String","Upline1":0,"Upline2":0,"Upline3":0,"Upline4":0,"MVPID":0,"AVPID":0,"RVPID":0,"AgentLevel":0,"IsMVP":false,"IsRVP":false,"IsAVP":false,"IsAdmin":false,"IsBusinessCardAdmin":false,"TeamName":"String","LocationId":"00000000000000000000000000000000","CalendarId":"00000000000000000000000000000000","Rank":"String","NBC":false,"Upline1Percent":0,"Upline2Percent":0,"Upline3Percent":0,"Upline4Percent":0,"AgentStatus":"String","Office":"String","DOB":"0001-01-01T00:00:00.0000000","SSN":"String","Fax":"String","BusinessEmail":"String","ModifiedDate":"0001-01-01T00:00:00.0000000","ModifiedBy":"String","TimeZone":"String","LeaderLocked":false,"LastSubmittedBusinessDate":"0001-01-01T00:00:00.0000000","GracePeriodDate":"0001-01-01T00:00:00.0000000","Vested":false,"DirectPay":"0001-01-01T00:00:00.0000000","DirectPayApprBy":"String","FactFinderBilling":0,"FullName":"String","ByLastName":"String","IsSecurityLicensed":false,"IsEncompassAdmin":false,"ApiKey":"00000000000000000000000000000000","LastSessionId":"String","LastLogin":"0001-01-01T00:00:00.0000000","MfaActive":false,"RequireMFA":false,"SMSPhoneNumber":"String","VerifiedEmailStatus":false,"VerifiedCellPhoneStatus":false,"SchedulerUrl":"String","QueueDefaults":{"LocationId":"00000000000000000000000000000000","Services":["00000000000000000000000000000000"]},"Roles":["String"],"PasswordUpdated":false,"RestrictToSingleSession":false,"AgentImage":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"Week":{"Settings":{"ConfigId":0,"SchedulerUrl":"String","SchedulerName":"String","DefaultLocation":"String","DefaultSummary":"String","DefaultDescription":"String","DayStart":"PT0S","DayStartFriendly":"00:00","DayEnd":"PT0S","DayEndFriendly":"00:00","TimeslotDuration":0,"NumberOfSlots":0,"LocationId":"00000000000000000000000000000000","CalendarId":"00000000000000000000000000000000","AgentId":0,"TimeZone":"String","AvailableDateTimes":[{"DayName":"String","DayNumber":0,"DayEnabled":false,"TimeBlocks":[{"StartTime":"PT0S","DayStartFriendly":"00:00","EndTime":"PT0S","DayEndFriendly":"00:00"}]}],"AvailableServices":["00000000000000000000000000000000"],"AllServices":[{"Id":"00000000000000000000000000000000","LocationId":"00000000000000000000000000000000","LocationName":"String","Name":"String","Description":"String","ServiceDurationMinutes":0,"WaitTime":0,"Cost":0,"UpperThreshold":0,"LowerThreshold":0,"Active":false,"EntDate":"0001-01-01T00:00:00.0000000","ModDate":"0001-01-01T00:00:00.0000000","SendQuestionnaire":false,"RequireUpload":false,"UploadMessage":"String","LineImages":[{"ImageId":"00000000000000000000000000000000","LineId":"00000000000000000000000000000000","ImageTitle":"String","UploadDate":"0001-01-01T00:00:00.0000000","MimeType":"String","FileName":"String"}]}]},"Days":[{}]},"Services":[{"Id":"00000000000000000000000000000000","LocationId":"00000000000000000000000000000000","LocationName":"String","Name":"String","Description":"String","ServiceDurationMinutes":0,"WaitTime":0,"Cost":0,"UpperThreshold":0,"LowerThreshold":0,"Active":false,"EntDate":"0001-01-01T00:00:00.0000000","ModDate":"0001-01-01T00:00:00.0000000","SendQuestionnaire":false,"RequireUpload":false,"UploadMessage":"String","LineImages":[{"ImageId":"00000000000000000000000000000000","LineId":"00000000000000000000000000000000","ImageTitle":"String","UploadDate":"0001-01-01T00:00:00.0000000","MimeType":"String","FileName":"String"}]}]}