Agentivity API

<back to all web services

PassiveSegmentsByUser

The following routes are available for this service:
GET/PassiveSegments
<?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};


// @DataContract(Name="Metadata", Namespace="schemas.agentivity.com/types")
class PagingMetadata implements JsonSerializable
{
    public function __construct(
        /** @description Starting Record */
        // @DataMember
        // @ApiMember(DataType="string", Description="Starting Record", Name="Offset", ParameterType="query")
        /** @var string|null */
        public ?string $Offset=null,

        /** @description Number of records to return (PageSize) */
        // @DataMember
        // @ApiMember(DataType="string", Description="Number of records to return (PageSize)", Name="Limit", ParameterType="query")
        /** @var string|null */
        public ?string $Limit=null,

        /** @description Total Number of Records in a Full Reponse (if no paging) */
        // @DataMember
        // @ApiMember(DataType="string", Description="Total Number of Records in a Full Reponse (if no paging)", Name="TotalRecords", ParameterType="query")
        /** @var int */
        public int $TotalRecords=0,

        /** @description Total Number of Records in this Reponse (on this page) */
        // @DataMember
        // @ApiMember(DataType="string", Description="Total Number of Records in this Reponse (on this page)", Name="ResponseRecords", ParameterType="query")
        /** @var int */
        public int $ResponseRecords=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Offset'])) $this->Offset = $o['Offset'];
        if (isset($o['Limit'])) $this->Limit = $o['Limit'];
        if (isset($o['TotalRecords'])) $this->TotalRecords = $o['TotalRecords'];
        if (isset($o['ResponseRecords'])) $this->ResponseRecords = $o['ResponseRecords'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Offset)) $o['Offset'] = $this->Offset;
        if (isset($this->Limit)) $o['Limit'] = $this->Limit;
        if (isset($this->TotalRecords)) $o['TotalRecords'] = $this->TotalRecords;
        if (isset($this->ResponseRecords)) $o['ResponseRecords'] = $this->ResponseRecords;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class CompanyLevelRequestBase extends PagingMetadata implements IMemberUsername, IMemberOwningCompanyCode, JsonSerializable
{
    /**
     * @param string|null $Offset
     * @param string|null $Limit
     * @param int $TotalRecords
     * @param int $ResponseRecords
     */
    public function __construct(
        ?string $Offset=null,
        ?string $Limit=null,
        int $TotalRecords=0,
        int $ResponseRecords=0,
        /** @description Comma Delimited List of Owning Company Codes */
        // @DataMember
        /** @var string[]|null */
        public ?array $OwningCompanyCode=null,

        /** @description UserName in form of an email address */
        // @DataMember
        /** @var string|null */
        public ?string $UserName=null
    ) {
        parent::__construct($Offset,$Limit,$TotalRecords,$ResponseRecords);
    }

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

// @DataContract(Name="PassiveSegmentWithOwningInformation", Namespace="schemas.agentivity.com/types")
class PassiveSegmentWithOwningInformation implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var int */
        public int $AgentivityRef=0,

        // @DataMember(Order=20)
        /** @var string|null */
        public ?string $OwningAgencyLocationID=null,

        // @DataMember(Order=10)
        /** @var string|null */
        public ?string $RecordLocator=null,

        // @DataMember
        /** @var string|null */
        public ?string $OwningConsultantID=null,

        // @DataMember(Order=30)
        /** @var string|null */
        public ?string $OwningConsultant=null,

        // @DataMember(Order=40)
        /** @var string|null */
        public ?string $Account=null,

        // @DataMember(Order=70)
        /** @var string|null */
        public ?string $SegmentStatus=null,

        // @DataMember
        /** @var string|null */
        public ?string $StartDate=null,

        // @DataMember(Order=60)
        /** @var string|null */
        public ?string $DepartureDate=null,

        // @DataMember
        /** @var string|null */
        public ?string $NbrNights=null,

        // @DataMember
        /** @var string|null */
        public ?string $VendorCode=null,

        // @DataMember
        /** @var string|null */
        public ?string $CityCode=null,

        // @DataMember
        /** @var string|null */
        public ?string $SegmentType=null,

        // @DataMember
        /** @var string|null */
        public ?string $Text=null,

        // @DataMember(Order=50)
        /** @var string|null */
        public ?string $Passenger=null,

        // @DataMember
        /** @var string|null */
        public ?string $Address=null,

        // @DataMember
        /** @var string|null */
        public ?string $BookingReasonCode=null,

        // @DataMember
        /** @var string|null */
        public ?string $BookingSource=null,

        // @DataMember
        /** @var string|null */
        public ?string $CommissionInformation=null,

        // @DataMember
        /** @var string|null */
        public ?string $ConfirmationNumber=null,

        // @DataMember
        /** @var string|null */
        public ?string $RateCode=null,

        // @DataMember
        /** @var string|null */
        public ?string $RateQuoted=null,

        // @DataMember
        /** @var string|null */
        public ?string $RateAccessCode=null,

        // @DataMember
        /** @var string|null */
        public ?string $PropertyName=null,

        // @DataMember
        /** @var string|null */
        public ?string $PropertyNumber=null,

        // @DataMember
        /** @var string|null */
        public ?string $ServiceInformation=null,

        // @DataMember
        /** @var string|null */
        public ?string $TotalAirSegs=null,

        // @DataMember
        /** @var string|null */
        public ?string $HotelCommission=null,

        // @DataMember
        /** @var string|null */
        public ?string $CountryName=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['AgentivityRef'])) $this->AgentivityRef = $o['AgentivityRef'];
        if (isset($o['OwningAgencyLocationID'])) $this->OwningAgencyLocationID = $o['OwningAgencyLocationID'];
        if (isset($o['RecordLocator'])) $this->RecordLocator = $o['RecordLocator'];
        if (isset($o['OwningConsultantID'])) $this->OwningConsultantID = $o['OwningConsultantID'];
        if (isset($o['OwningConsultant'])) $this->OwningConsultant = $o['OwningConsultant'];
        if (isset($o['Account'])) $this->Account = $o['Account'];
        if (isset($o['SegmentStatus'])) $this->SegmentStatus = $o['SegmentStatus'];
        if (isset($o['StartDate'])) $this->StartDate = $o['StartDate'];
        if (isset($o['DepartureDate'])) $this->DepartureDate = $o['DepartureDate'];
        if (isset($o['NbrNights'])) $this->NbrNights = $o['NbrNights'];
        if (isset($o['VendorCode'])) $this->VendorCode = $o['VendorCode'];
        if (isset($o['CityCode'])) $this->CityCode = $o['CityCode'];
        if (isset($o['SegmentType'])) $this->SegmentType = $o['SegmentType'];
        if (isset($o['Text'])) $this->Text = $o['Text'];
        if (isset($o['Passenger'])) $this->Passenger = $o['Passenger'];
        if (isset($o['Address'])) $this->Address = $o['Address'];
        if (isset($o['BookingReasonCode'])) $this->BookingReasonCode = $o['BookingReasonCode'];
        if (isset($o['BookingSource'])) $this->BookingSource = $o['BookingSource'];
        if (isset($o['CommissionInformation'])) $this->CommissionInformation = $o['CommissionInformation'];
        if (isset($o['ConfirmationNumber'])) $this->ConfirmationNumber = $o['ConfirmationNumber'];
        if (isset($o['RateCode'])) $this->RateCode = $o['RateCode'];
        if (isset($o['RateQuoted'])) $this->RateQuoted = $o['RateQuoted'];
        if (isset($o['RateAccessCode'])) $this->RateAccessCode = $o['RateAccessCode'];
        if (isset($o['PropertyName'])) $this->PropertyName = $o['PropertyName'];
        if (isset($o['PropertyNumber'])) $this->PropertyNumber = $o['PropertyNumber'];
        if (isset($o['ServiceInformation'])) $this->ServiceInformation = $o['ServiceInformation'];
        if (isset($o['TotalAirSegs'])) $this->TotalAirSegs = $o['TotalAirSegs'];
        if (isset($o['HotelCommission'])) $this->HotelCommission = $o['HotelCommission'];
        if (isset($o['CountryName'])) $this->CountryName = $o['CountryName'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->AgentivityRef)) $o['AgentivityRef'] = $this->AgentivityRef;
        if (isset($this->OwningAgencyLocationID)) $o['OwningAgencyLocationID'] = $this->OwningAgencyLocationID;
        if (isset($this->RecordLocator)) $o['RecordLocator'] = $this->RecordLocator;
        if (isset($this->OwningConsultantID)) $o['OwningConsultantID'] = $this->OwningConsultantID;
        if (isset($this->OwningConsultant)) $o['OwningConsultant'] = $this->OwningConsultant;
        if (isset($this->Account)) $o['Account'] = $this->Account;
        if (isset($this->SegmentStatus)) $o['SegmentStatus'] = $this->SegmentStatus;
        if (isset($this->StartDate)) $o['StartDate'] = $this->StartDate;
        if (isset($this->DepartureDate)) $o['DepartureDate'] = $this->DepartureDate;
        if (isset($this->NbrNights)) $o['NbrNights'] = $this->NbrNights;
        if (isset($this->VendorCode)) $o['VendorCode'] = $this->VendorCode;
        if (isset($this->CityCode)) $o['CityCode'] = $this->CityCode;
        if (isset($this->SegmentType)) $o['SegmentType'] = $this->SegmentType;
        if (isset($this->Text)) $o['Text'] = $this->Text;
        if (isset($this->Passenger)) $o['Passenger'] = $this->Passenger;
        if (isset($this->Address)) $o['Address'] = $this->Address;
        if (isset($this->BookingReasonCode)) $o['BookingReasonCode'] = $this->BookingReasonCode;
        if (isset($this->BookingSource)) $o['BookingSource'] = $this->BookingSource;
        if (isset($this->CommissionInformation)) $o['CommissionInformation'] = $this->CommissionInformation;
        if (isset($this->ConfirmationNumber)) $o['ConfirmationNumber'] = $this->ConfirmationNumber;
        if (isset($this->RateCode)) $o['RateCode'] = $this->RateCode;
        if (isset($this->RateQuoted)) $o['RateQuoted'] = $this->RateQuoted;
        if (isset($this->RateAccessCode)) $o['RateAccessCode'] = $this->RateAccessCode;
        if (isset($this->PropertyName)) $o['PropertyName'] = $this->PropertyName;
        if (isset($this->PropertyNumber)) $o['PropertyNumber'] = $this->PropertyNumber;
        if (isset($this->ServiceInformation)) $o['ServiceInformation'] = $this->ServiceInformation;
        if (isset($this->TotalAirSegs)) $o['TotalAirSegs'] = $this->TotalAirSegs;
        if (isset($this->HotelCommission)) $o['HotelCommission'] = $this->HotelCommission;
        if (isset($this->CountryName)) $o['CountryName'] = $this->CountryName;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract(Namespace="schemas.agentivity.com/types")
/**
 * @template TItemResponse
 * @template TItem
 */
class Report2 implements JsonSerializable
{
    public array $genericArgs = [];
    public static function create(array $genericArgs=[]): Report2 {
        $to = new Report2();
        $to->genericArgs = $genericArgs;
        return $to;
    }

    public function __construct(
        // @DataMember(Order=1, EmitDefaultValue=false)
        /** @var TItem|null */
        public mixed $Item=null
    ) {
    }

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

// @DataContract(Name="PassiveSegmentWithOwningInformation", Namespace="schemas.agentivity.com/types")
/**
 * @template Report2 of PassiveSegmentsResponse
 * @template Report21 of PassiveSegmentWithOwningInformation
 */
class PassiveSegmentsByUserResponseReport extends Report2 implements JsonSerializable
{
    /**
     * @param TItem|null $Item
     */
    public function __construct(
        ?TItem $Item=null
    ) {
        parent::__construct($Item);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract(Name="CacheMetadata", Namespace="schemas.agentivity.com/types")
class CacheMetadata implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var DateTime */
        public DateTime $CachedAt=new DateTime(),

        // @DataMember(Order=2)
        /** @var DateTime */
        public DateTime $CacheExpiresAt=new DateTime(),

        // @DataMember(Order=0)
        /** @var bool|null */
        public ?bool $IsFromCache=null
    ) {
    }

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

// @DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")
class ResponseMetadata implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=0)
        /** @var bool|null */
        public ?bool $Success=null,

        // @DataMember(Order=1)
        /** @var bool|null */
        public ?bool $HasCache=null,

        // @DataMember(Order=2)
        /** @var bool|null */
        public ?bool $HasPaging=null,

        // @DataMember(Order=3, EmitDefaultValue=false)
        /** @var CacheMetadata|null */
        public ?CacheMetadata $CacheMetadata=null,

        // @DataMember(Order=4, EmitDefaultValue=false)
        /** @var PagingMetadata|null */
        public ?PagingMetadata $PagingMetadata=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Success'])) $this->Success = $o['Success'];
        if (isset($o['HasCache'])) $this->HasCache = $o['HasCache'];
        if (isset($o['HasPaging'])) $this->HasPaging = $o['HasPaging'];
        if (isset($o['CacheMetadata'])) $this->CacheMetadata = JsonConverters::from('CacheMetadata', $o['CacheMetadata']);
        if (isset($o['PagingMetadata'])) $this->PagingMetadata = JsonConverters::from('PagingMetadata', $o['PagingMetadata']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Success)) $o['Success'] = $this->Success;
        if (isset($this->HasCache)) $o['HasCache'] = $this->HasCache;
        if (isset($this->HasPaging)) $o['HasPaging'] = $this->HasPaging;
        if (isset($this->CacheMetadata)) $o['CacheMetadata'] = JsonConverters::to('CacheMetadata', $this->CacheMetadata);
        if (isset($this->PagingMetadata)) $o['PagingMetadata'] = JsonConverters::to('PagingMetadata', $this->PagingMetadata);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")
class AgentivityError implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var string|null */
        public ?string $ErrorCode=null,

        // @DataMember
        /** @var string|null */
        public ?string $Message=null,

        // @DataMember
        /** @var string|null */
        public ?string $StatusCode=null,

        // @DataMember
        /** @var string|null */
        public ?string $VerboseMessage=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ErrorCode'])) $this->ErrorCode = $o['ErrorCode'];
        if (isset($o['Message'])) $this->Message = $o['Message'];
        if (isset($o['StatusCode'])) $this->StatusCode = $o['StatusCode'];
        if (isset($o['VerboseMessage'])) $this->VerboseMessage = $o['VerboseMessage'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ErrorCode)) $o['ErrorCode'] = $this->ErrorCode;
        if (isset($this->Message)) $o['Message'] = $this->Message;
        if (isset($this->StatusCode)) $o['StatusCode'] = $this->StatusCode;
        if (isset($this->VerboseMessage)) $o['VerboseMessage'] = $this->VerboseMessage;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
/**
 * @template TItem
 * @template TReport
 */
class ItemResponse2 implements JsonSerializable
{
    public array $genericArgs = [];
    public static function create(array $genericArgs=[]): ItemResponse2 {
        $to = new ItemResponse2();
        $to->genericArgs = $genericArgs;
        return $to;
    }

    public function __construct(
        // @DataMember(Order=1)
        /** @var ResponseMetadata|null */
        public mixed $ResponseMetadata=null,

        // @DataMember(Order=2, EmitDefaultValue=false)
        /** @var TReport|null */
        public mixed $ResponseReport=null,

        // @DataMember(Order=3, EmitDefaultValue=false)
        /** @var AgentivityError|null */
        public mixed $ResponseError=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ResponseMetadata'])) $this->ResponseMetadata = JsonConverters::from('ResponseMetadata', $o['ResponseMetadata']);
        if (isset($o['ResponseReport'])) $this->ResponseReport = JsonConverters::from($this->genericArgs[1], $o['ResponseReport']);
        if (isset($o['ResponseError'])) $this->ResponseError = JsonConverters::from('AgentivityError', $o['ResponseError']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ResponseMetadata)) $o['ResponseMetadata'] = JsonConverters::to('ResponseMetadata', $this->ResponseMetadata);
        if (isset($this->ResponseReport)) $o['ResponseReport'] = JsonConverters::to($this->genericArgs[1], $this->ResponseReport);
        if (isset($this->ResponseError)) $o['ResponseError'] = JsonConverters::to('AgentivityError', $this->ResponseError);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
/**
 * @template ItemResponse2 of PassiveSegmentWithOwningInformation
 * @template ItemResponse21 of PassiveSegmentsByUserResponseReport
 */
class PassiveSegmentsResponse extends ItemResponse2 implements JsonSerializable
{
    /**
     * @param ResponseMetadata|null $ResponseMetadata
     * @param TReport|null $ResponseReport
     * @param AgentivityError|null $ResponseError
     */
    public function __construct(
        ?ResponseMetadata $ResponseMetadata=null,
        ?TReport $ResponseReport=null,
        ?AgentivityError $ResponseError=null
    ) {
        parent::__construct($ResponseMetadata,$ResponseReport,$ResponseError);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class PassiveSegmentsByUser extends CompanyLevelRequestBase implements JsonSerializable
{
    /**
     * @param string|null $Offset
     * @param string|null $Limit
     * @param int $TotalRecords
     * @param int $ResponseRecords
     * @param string[]|null $OwningCompanyCode
     * @param string|null $UserName
     */
    public function __construct(
        ?string $Offset=null,
        ?string $Limit=null,
        int $TotalRecords=0,
        int $ResponseRecords=0,
        ?array $OwningCompanyCode=null,
        ?string $UserName=null,
        /** @description Date in format YYYYMMDD */
        // @DataMember
        /** @var string */
        public string $ArrivalDateEnd='',

        /** @description Date in format YYYYMMDD */
        // @DataMember
        /** @var string */
        public string $ArrivalDateStart='',

        /** @description Type of segment */
        // @DataMember
        /** @var string|null */
        public ?string $SegmentType=null,

        /** @description Account */
        // @DataMember
        /** @var string|null */
        public ?string $Account=null,

        /** @description 3 letter city code */
        // @DataMember
        /** @var string|null */
        public ?string $CityCode=null,

        /** @description Date search type option, a single character (T to search by segment start dates, C to search by booking creation dates). */
        // @DataMember
        /** @var string|null */
        public ?string $DateSearchType=null
    ) {
        parent::__construct($Offset,$Limit,$TotalRecords,$ResponseRecords,$OwningCompanyCode,$UserName);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['ArrivalDateEnd'])) $this->ArrivalDateEnd = $o['ArrivalDateEnd'];
        if (isset($o['ArrivalDateStart'])) $this->ArrivalDateStart = $o['ArrivalDateStart'];
        if (isset($o['SegmentType'])) $this->SegmentType = $o['SegmentType'];
        if (isset($o['Account'])) $this->Account = $o['Account'];
        if (isset($o['CityCode'])) $this->CityCode = $o['CityCode'];
        if (isset($o['DateSearchType'])) $this->DateSearchType = $o['DateSearchType'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->ArrivalDateEnd)) $o['ArrivalDateEnd'] = $this->ArrivalDateEnd;
        if (isset($this->ArrivalDateStart)) $o['ArrivalDateStart'] = $this->ArrivalDateStart;
        if (isset($this->SegmentType)) $o['SegmentType'] = $this->SegmentType;
        if (isset($this->Account)) $o['Account'] = $this->Account;
        if (isset($this->CityCode)) $o['CityCode'] = $this->CityCode;
        if (isset($this->DateSearchType)) $o['DateSearchType'] = $this->DateSearchType;
        return empty($o) ? new class(){} : $o;
    }
}

PHP PassiveSegmentsByUser DTOs

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

HTTP + OTHER

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

GET /PassiveSegments HTTP/1.1 
Host: api.agentivity.com 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ResponseMetadata":{"Success":false,"HasCache":false,"HasPaging":false,"CacheMetadata":{"IsFromCache":false,"CachedAt":"\/Date(-62135596800000-0000)\/","CacheExpiresAt":"\/Date(-62135596800000-0000)\/"},"PagingMetadata":{"Offset":"String","Limit":"String","TotalRecords":0,"ResponseRecords":0}},"ResponseReport":{"Item":{"AgentivityRef":0,"OwningConsultantID":"String","StartDate":"String","NbrNights":"String","VendorCode":"String","CityCode":"String","SegmentType":"String","Text":"String","Address":"String","BookingReasonCode":"String","BookingSource":"String","CommissionInformation":"String","ConfirmationNumber":"String","RateCode":"String","RateQuoted":"String","RateAccessCode":"String","PropertyName":"String","PropertyNumber":"String","ServiceInformation":"String","TotalAirSegs":"String","HotelCommission":"String","CountryName":"String","RecordLocator":"String","OwningAgencyLocationID":"String","OwningConsultant":"String","Account":"String","Passenger":"String","DepartureDate":"String","SegmentStatus":"String"}},"ResponseError":{"ErrorCode":"String","Message":"String","StatusCode":"String","VerboseMessage":"String"}}