import jsonapi_requests from . my_meta import MyMeta class Quantity(jsonapi_requests.orm.ApiModel): class Meta(MyMeta): type = 'quantity' measure = jsonapi_requests.orm.AttributeField('measure') json_value = jsonapi_requests.orm.AttributeField('value') units = jsonapi_requests.orm.RelationField('units') inventory_adjustment = jsonapi_requests.orm.AttributeField('inventory_adjustment') inventory_asset = jsonapi_requests.orm.RelationField('inventory_asset') @property def value(self): return float(self.json_value['decimal']) class Standard(Quantity): class Meta(Quantity.Meta): name = 'standard' type, path = Quantity.Meta.get_type_and_path(name) class Price(Quantity): class Meta(Quantity.Meta): name = 'price' type, path = Quantity.Meta.get_type_and_path(name) json_unit_price = jsonapi_requests.orm.AttributeField('unit_price') json_total_price = jsonapi_requests.orm.AttributeField('total_price') @property def unit_price(self): return float(self.json_unit_price['decimal']) @property def total_price(self): return float(self.json_total_price['decimal']) class Material(Quantity): class Meta(Quantity.Meta): name = 'material' type, path = Quantity.Meta.get_type_and_path(name) material_types = jsonapi_requests.orm.RelationField('material_type')