<?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
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"}}}