sfgboxapi

<back to all web services

ProductsMetricsAutoQueryLookup

<?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
class QueryBase implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var int|null */
        public ?int $skip=null,

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

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

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

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

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

        // @DataMember(Order=7)
        /** @var array<string,string>|null */
        public ?array $meta=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['skip'])) $this->skip = $o['skip'];
        if (isset($o['take'])) $this->take = $o['take'];
        if (isset($o['orderBy'])) $this->orderBy = $o['orderBy'];
        if (isset($o['orderByDesc'])) $this->orderByDesc = $o['orderByDesc'];
        if (isset($o['include'])) $this->include = $o['include'];
        if (isset($o['fields'])) $this->fields = $o['fields'];
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->skip)) $o['skip'] = $this->skip;
        if (isset($this->take)) $o['take'] = $this->take;
        if (isset($this->orderBy)) $o['orderBy'] = $this->orderBy;
        if (isset($this->orderByDesc)) $o['orderByDesc'] = $this->orderByDesc;
        if (isset($this->include)) $o['include'] = $this->include;
        if (isset($this->fields)) $o['fields'] = $this->fields;
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        return empty($o) ? new class(){} : $o;
    }
}

/**
 * @template T
 */
class QueryDb extends QueryBase implements JsonSerializable
{
    public array $genericArgs = [];
    public static function create(array $genericArgs=[]): QueryDb {
        $to = new QueryDb();
        $to->genericArgs = $genericArgs;
        return $to;
    }

    /**
     * @param int|null $skip
     * @param int|null $take
     * @param string|null $orderBy
     * @param string|null $orderByDesc
     * @param string|null $include
     * @param string|null $fields
     * @param array<string,string>|null $meta
     */
    public function __construct(
        mixed $skip=null,
        mixed $take=null,
        mixed $orderBy=null,
        mixed $orderByDesc=null,
        mixed $include=null,
        mixed $fields=null,
        mixed $meta=null
    ) {
        parent::__construct($skip,$take,$orderBy,$orderByDesc,$include,$fields,$meta);
    }

    /** @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;
    }
}

class ProductsMetrics implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        // @Required()
        /** @var int */
        public int $id=0,

        // @DataMember(Order=2)
        // @Required()
        // @References("typeof(sfgboxapi.ServiceModel.Types.Tenants)")
        /** @var int */
        public int $tenantsId=0,

        // @DataMember(Order=3)
        // @Required()
        // @References("typeof(sfgboxapi.ServiceModel.Types.Zones)")
        /** @var int */
        public int $zonesId=0,

        // @DataMember(Order=4)
        // @Required()
        // @References("typeof(sfgboxapi.ServiceModel.Types.Products)")
        /** @var int */
        public int $productsId=0,

        // @DataMember(Order=5)
        // @Required()
        /** @var float */
        public float $priceKg=0.0,

        // @DataMember(Order=6)
        // @Required()
        /** @var string */
        public string $priceDescription='',

        // @DataMember(Order=8)
        /** @var float|null */
        public ?float $betaineMg=null,

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

        // @DataMember(Order=18)
        /** @var float|null */
        public ?float $cholineMg=null,

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

        // @DataMember(Order=25)
        /** @var float|null */
        public ?float $fiberG=null,

        // @DataMember(Order=27)
        /** @var float|null */
        public ?float $fluorideMg=null,

        // @DataMember(Order=29)
        /** @var float|null */
        public ?float $folateMcg=null,

        // @DataMember(Order=31)
        /** @var float|null */
        public ?float $ironMg=null,

        // @DataMember(Order=34)
        /** @var float|null */
        public ?float $magnesiumMg=null,

        // @DataMember(Order=36)
        /** @var float|null */
        public ?float $mangeneseMg=null,

        // @DataMember(Order=37)
        /** @var float|null */
        public ?float $monoG=null,

        // @DataMember(Order=39)
        /** @var float|null */
        public ?float $niacinMg=null,

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

        // @DataMember(Order=41)
        /** @var float|null */
        public ?float $omega6Mg=null,

        // @DataMember(Order=43)
        /** @var float|null */
        public ?float $panthenicAcidMg=null,

        // @DataMember(Order=45)
        /** @var float|null */
        public ?float $phosphorusMg=null,

        // @DataMember(Order=46)
        /** @var float|null */
        public ?float $polyG=null,

        // @DataMember(Order=48)
        /** @var float|null */
        public ?float $potassiumMg=null,

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

        // @DataMember(Order=54)
        /** @var float|null */
        public ?float $riboflavinMg=null,

        // @DataMember(Order=55)
        /** @var float|null */
        public ?float $saturatedG=null,

        // @DataMember(Order=57)
        /** @var float|null */
        public ?float $seleniumMcg=null,

        // @DataMember(Order=59)
        /** @var float|null */
        public ?float $sodiumMg=null,

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

        // @DataMember(Order=61)
        /** @var float|null */
        public ?float $sugarsG=null,

        // @DataMember(Order=63)
        /** @var float|null */
        public ?float $thiaminMg=null,

        // @DataMember(Order=65)
        /** @var float|null */
        public ?float $vitaminAMcg=null,

        // @DataMember(Order=67)
        /** @var float|null */
        public ?float $vitaminB12Mcg=null,

        // @DataMember(Order=69)
        /** @var float|null */
        public ?float $vitaminB6Mg=null,

        // @DataMember(Order=71)
        /** @var float|null */
        public ?float $vitaminCMg=null,

        // @DataMember(Order=73)
        /** @var float|null */
        public ?float $vitaminDMg=null,

        // @DataMember(Order=75)
        /** @var float|null */
        public ?float $vitaminEMg=null,

        // @DataMember(Order=77)
        /** @var float|null */
        public ?float $vitaminKMcg=null,

        // @DataMember(Order=79)
        /** @var float|null */
        public ?float $zincMg=null,

        // @DataMember(Order=80)
        /** @var float|null */
        public ?float $transG=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['tenantsId'])) $this->tenantsId = $o['tenantsId'];
        if (isset($o['zonesId'])) $this->zonesId = $o['zonesId'];
        if (isset($o['productsId'])) $this->productsId = $o['productsId'];
        if (isset($o['priceKg'])) $this->priceKg = $o['priceKg'];
        if (isset($o['priceDescription'])) $this->priceDescription = $o['priceDescription'];
        if (isset($o['betaineMg'])) $this->betaineMg = $o['betaineMg'];
        if (isset($o['calciumMg'])) $this->calciumMg = $o['calciumMg'];
        if (isset($o['cholineMg'])) $this->cholineMg = $o['cholineMg'];
        if (isset($o['copperMg'])) $this->copperMg = $o['copperMg'];
        if (isset($o['fiberG'])) $this->fiberG = $o['fiberG'];
        if (isset($o['fluorideMg'])) $this->fluorideMg = $o['fluorideMg'];
        if (isset($o['folateMcg'])) $this->folateMcg = $o['folateMcg'];
        if (isset($o['ironMg'])) $this->ironMg = $o['ironMg'];
        if (isset($o['magnesiumMg'])) $this->magnesiumMg = $o['magnesiumMg'];
        if (isset($o['mangeneseMg'])) $this->mangeneseMg = $o['mangeneseMg'];
        if (isset($o['monoG'])) $this->monoG = $o['monoG'];
        if (isset($o['niacinMg'])) $this->niacinMg = $o['niacinMg'];
        if (isset($o['omega3Mg'])) $this->omega3Mg = $o['omega3Mg'];
        if (isset($o['omega6Mg'])) $this->omega6Mg = $o['omega6Mg'];
        if (isset($o['panthenicAcidMg'])) $this->panthenicAcidMg = $o['panthenicAcidMg'];
        if (isset($o['phosphorusMg'])) $this->phosphorusMg = $o['phosphorusMg'];
        if (isset($o['polyG'])) $this->polyG = $o['polyG'];
        if (isset($o['potassiumMg'])) $this->potassiumMg = $o['potassiumMg'];
        if (isset($o['proteinG'])) $this->proteinG = $o['proteinG'];
        if (isset($o['riboflavinMg'])) $this->riboflavinMg = $o['riboflavinMg'];
        if (isset($o['saturatedG'])) $this->saturatedG = $o['saturatedG'];
        if (isset($o['seleniumMcg'])) $this->seleniumMcg = $o['seleniumMcg'];
        if (isset($o['sodiumMg'])) $this->sodiumMg = $o['sodiumMg'];
        if (isset($o['starchG'])) $this->starchG = $o['starchG'];
        if (isset($o['sugarsG'])) $this->sugarsG = $o['sugarsG'];
        if (isset($o['thiaminMg'])) $this->thiaminMg = $o['thiaminMg'];
        if (isset($o['vitaminAMcg'])) $this->vitaminAMcg = $o['vitaminAMcg'];
        if (isset($o['vitaminB12Mcg'])) $this->vitaminB12Mcg = $o['vitaminB12Mcg'];
        if (isset($o['vitaminB6Mg'])) $this->vitaminB6Mg = $o['vitaminB6Mg'];
        if (isset($o['vitaminCMg'])) $this->vitaminCMg = $o['vitaminCMg'];
        if (isset($o['vitaminDMg'])) $this->vitaminDMg = $o['vitaminDMg'];
        if (isset($o['vitaminEMg'])) $this->vitaminEMg = $o['vitaminEMg'];
        if (isset($o['vitaminKMcg'])) $this->vitaminKMcg = $o['vitaminKMcg'];
        if (isset($o['zincMg'])) $this->zincMg = $o['zincMg'];
        if (isset($o['transG'])) $this->transG = $o['transG'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->tenantsId)) $o['tenantsId'] = $this->tenantsId;
        if (isset($this->zonesId)) $o['zonesId'] = $this->zonesId;
        if (isset($this->productsId)) $o['productsId'] = $this->productsId;
        if (isset($this->priceKg)) $o['priceKg'] = $this->priceKg;
        if (isset($this->priceDescription)) $o['priceDescription'] = $this->priceDescription;
        if (isset($this->betaineMg)) $o['betaineMg'] = $this->betaineMg;
        if (isset($this->calciumMg)) $o['calciumMg'] = $this->calciumMg;
        if (isset($this->cholineMg)) $o['cholineMg'] = $this->cholineMg;
        if (isset($this->copperMg)) $o['copperMg'] = $this->copperMg;
        if (isset($this->fiberG)) $o['fiberG'] = $this->fiberG;
        if (isset($this->fluorideMg)) $o['fluorideMg'] = $this->fluorideMg;
        if (isset($this->folateMcg)) $o['folateMcg'] = $this->folateMcg;
        if (isset($this->ironMg)) $o['ironMg'] = $this->ironMg;
        if (isset($this->magnesiumMg)) $o['magnesiumMg'] = $this->magnesiumMg;
        if (isset($this->mangeneseMg)) $o['mangeneseMg'] = $this->mangeneseMg;
        if (isset($this->monoG)) $o['monoG'] = $this->monoG;
        if (isset($this->niacinMg)) $o['niacinMg'] = $this->niacinMg;
        if (isset($this->omega3Mg)) $o['omega3Mg'] = $this->omega3Mg;
        if (isset($this->omega6Mg)) $o['omega6Mg'] = $this->omega6Mg;
        if (isset($this->panthenicAcidMg)) $o['panthenicAcidMg'] = $this->panthenicAcidMg;
        if (isset($this->phosphorusMg)) $o['phosphorusMg'] = $this->phosphorusMg;
        if (isset($this->polyG)) $o['polyG'] = $this->polyG;
        if (isset($this->potassiumMg)) $o['potassiumMg'] = $this->potassiumMg;
        if (isset($this->proteinG)) $o['proteinG'] = $this->proteinG;
        if (isset($this->riboflavinMg)) $o['riboflavinMg'] = $this->riboflavinMg;
        if (isset($this->saturatedG)) $o['saturatedG'] = $this->saturatedG;
        if (isset($this->seleniumMcg)) $o['seleniumMcg'] = $this->seleniumMcg;
        if (isset($this->sodiumMg)) $o['sodiumMg'] = $this->sodiumMg;
        if (isset($this->starchG)) $o['starchG'] = $this->starchG;
        if (isset($this->sugarsG)) $o['sugarsG'] = $this->sugarsG;
        if (isset($this->thiaminMg)) $o['thiaminMg'] = $this->thiaminMg;
        if (isset($this->vitaminAMcg)) $o['vitaminAMcg'] = $this->vitaminAMcg;
        if (isset($this->vitaminB12Mcg)) $o['vitaminB12Mcg'] = $this->vitaminB12Mcg;
        if (isset($this->vitaminB6Mg)) $o['vitaminB6Mg'] = $this->vitaminB6Mg;
        if (isset($this->vitaminCMg)) $o['vitaminCMg'] = $this->vitaminCMg;
        if (isset($this->vitaminDMg)) $o['vitaminDMg'] = $this->vitaminDMg;
        if (isset($this->vitaminEMg)) $o['vitaminEMg'] = $this->vitaminEMg;
        if (isset($this->vitaminKMcg)) $o['vitaminKMcg'] = $this->vitaminKMcg;
        if (isset($this->zincMg)) $o['zincMg'] = $this->zincMg;
        if (isset($this->transG)) $o['transG'] = $this->transG;
        return empty($o) ? new class(){} : $o;
    }
}

/**
 * @template QueryDb of ProductsMetrics
 */
class ProductsMetricsAutoQueryLookup extends QueryDb implements JsonSerializable
{
    /**
     * @param int|null $skip
     * @param int|null $take
     * @param string|null $orderBy
     * @param string|null $orderByDesc
     * @param string|null $include
     * @param string|null $fields
     * @param array<string,string>|null $meta
     */
    public function __construct(
        ?int $skip=null,
        ?int $take=null,
        ?string $orderBy=null,
        ?string $orderByDesc=null,
        ?string $include=null,
        ?string $fields=null,
        ?array $meta=null
    ) {
        parent::__construct($skip,$take,$orderBy,$orderByDesc,$include,$fields,$meta);
    }

    /** @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;
    }
}

class Tenants implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        // @Required()
        /** @var int */
        public int $id=0,

        // @DataMember(Order=2)
        // @Required()
        // @References("typeof(sfgboxapi.ServiceModel.Types.Zones)")
        /** @var int */
        public int $mainZonesId=0,

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

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

// @DataContract
/**
 * @template Tenants
 */
class QueryResponse implements JsonSerializable
{
    public array $genericArgs = [];
    public static function create(array $genericArgs=[]): QueryResponse {
        $to = new QueryResponse();
        $to->genericArgs = $genericArgs;
        return $to;
    }

    public function __construct(
        // @DataMember(Order=1)
        /** @var int */
        public mixed $offset=0,

        // @DataMember(Order=2)
        /** @var int */
        public mixed $total=0,

        // @DataMember(Order=3)
        /** @var array<Tenants>|null */
        public mixed $results=null,

        // @DataMember(Order=4)
        /** @var array<string,string>|null */
        public mixed $meta=null,

        // @DataMember(Order=5)
        /** @var ResponseStatus|null */
        public mixed $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['offset'])) $this->offset = $o['offset'];
        if (isset($o['total'])) $this->total = $o['total'];
        if (isset($o['results'])) $this->results = JsonConverters::fromArray($this->genericArgs[0], $o['results']);
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->offset)) $o['offset'] = $this->offset;
        if (isset($this->total)) $o['total'] = $this->total;
        if (isset($this->results)) $o['results'] = JsonConverters::toArray($this->genericArgs[0], $this->results);
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

PHP ProductsMetricsAutoQueryLookup DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

POST /json/reply/ProductsMetricsAutoQueryLookup HTTP/1.1 
Host: api-stage.smartfarmertech.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"skip":0,"take":0,"orderBy":"String","orderByDesc":"String","include":"String","fields":"String","meta":{"String":"String"}}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"offset":0,"total":0,"results":[{"id":0,"tenantsId":0,"zonesId":0,"productsId":0,"priceKg":0,"priceDescription":"String","betaineMg":0,"calciumMg":0,"cholineMg":0,"copperMg":0,"fiberG":0,"fluorideMg":0,"folateMcg":0,"ironMg":0,"magnesiumMg":0,"mangeneseMg":0,"monoG":0,"niacinMg":0,"omega3Mg":0,"omega6Mg":0,"panthenicAcidMg":0,"phosphorusMg":0,"polyG":0,"potassiumMg":0,"proteinG":0,"riboflavinMg":0,"saturatedG":0,"seleniumMcg":0,"sodiumMg":0,"starchG":0,"sugarsG":0,"thiaminMg":0,"vitaminAMcg":0,"vitaminB12Mcg":0,"vitaminB6Mg":0,"vitaminCMg":0,"vitaminDMg":0,"vitaminEMg":0,"vitaminKMcg":0,"zincMg":0,"transG":0}],"meta":{"String":"String"},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}