import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class QueryBase:
skip: Optional[int] = None
take: Optional[int] = None
order_by: Optional[str] = None
order_by_desc: Optional[str] = None
include: Optional[str] = None
fields: Optional[str] = None
meta: Optional[Dict[str, str]] = None
T = TypeVar('T')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class QueryDb(Generic[T], QueryBase, IReturn[QueryResponse[T]]):
@staticmethod
def response_type(): return QueryResponse[T]
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProductsMetrics:
# @Required()
id: int = 0
# @Required()
# @References(typeof(Tenants))
tenants_id: int = 0
# @Required()
# @References(typeof(Zones))
zones_id: int = 0
# @Required()
# @References(typeof(Products))
products_id: int = 0
# @Required()
price_kg: float = 0.0
# @Required()
price_description: Optional[str] = None
betaine_mg: Optional[float] = None
calcium_mg: Optional[float] = None
choline_mg: Optional[float] = None
copper_mg: Optional[float] = None
fiber_g: Optional[float] = None
fluoride_mg: Optional[float] = None
folate_mcg: Optional[float] = None
iron_mg: Optional[float] = None
magnesium_mg: Optional[float] = None
mangenese_mg: Optional[float] = None
mono_g: Optional[float] = None
niacin_mg: Optional[float] = None
omega3_mg: Optional[float] = None
omega6_mg: Optional[float] = None
panthenic_acid_mg: Optional[float] = None
phosphorus_mg: Optional[float] = None
poly_g: Optional[float] = None
potassium_mg: Optional[float] = None
protein_g: Optional[float] = None
riboflavin_mg: Optional[float] = None
saturated_g: Optional[float] = None
selenium_mcg: Optional[float] = None
sodium_mg: Optional[float] = None
starch_g: Optional[float] = None
sugars_g: Optional[float] = None
thiamin_mg: Optional[float] = None
vitamin_a_mcg: Optional[float] = None
vitamin_b12_mcg: Optional[float] = None
vitamin_b6_mg: Optional[float] = None
vitamin_c_mg: Optional[float] = None
vitamin_d_mg: Optional[float] = None
vitamin_e_mg: Optional[float] = None
vitamin_k_mcg: Optional[float] = None
zinc_mg: Optional[float] = None
trans_g: Optional[float] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProductsMetricsAutoQueryLookup(QueryDb[ProductsMetrics]):
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Tenants:
# @Required()
id: int = 0
# @Required()
# @References(typeof(Zones))
main_zones_id: int = 0
is_public: bool = False
Tenants = TypeVar('Tenants')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class QueryResponse(Generic[Tenants]):
offset: int = 0
total: int = 0
results: Optional[List[Tenants]] = None
meta: Optional[Dict[str, str]] = None
response_status: Optional[ResponseStatus] = None
Python ProductsMetricsAutoQueryLookup DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/ProductsMetricsAutoQueryLookup HTTP/1.1
Host: api-stage.smartfarmertech.com
Accept: text/jsv
Content-Type: text/jsv
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: text/jsv
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
}
}
}