import jsonapi_requests class Asset(jsonapi_requests.orm.ApiModel): class Meta: type = 'asset' api = api @classmethod def get_type_and_path(cls, name): return (f"{cls.type}{api_type_spatrator}{name}", f"{cls.path}{api_path_separator}{name}") name = jsonapi_requests.orm.AttributeField('name') timestamp = jsonapi_requests.orm.AttributeField('timestamp') class Land(Asset): class Meta(Asset.Meta): name = 'land' type, path = Asset.Meta.get_type_and_path(name) geometry = jsonapi_requests.orm.AttributeField('intrinsic_geometry') class Plant(Asset): class Meta(Asset.Meta): name = 'plant' type, path = Asset.Meta.get_type_and_path(name) crop = jsonapi_requests.orm.RelationField('plant_type') season = jsonapi_requests.orm.RelationField('season') class Equipment(Asset): class Meta(Asset.Meta): name = 'equipment' type, path = Asset.Meta.get_type_and_path(name) class Material(Asset): class Meta(Asset.Meta): name = 'material' type, path = Asset.Meta.get_type_and_path(name) crop = jsonapi_requests.orm.RelationField('material_type') class Seed(Asset): class Meta(Asset.Meta): name = 'seed' type, path = Asset.Meta.get_type_and_path(name) crop = jsonapi_requests.orm.RelationField('plant_type') season = jsonapi_requests.orm.RelationField('season') class Product(Asset): class Meta(Asset.Meta): name = 'product' type, path = Asset.Meta.get_type_and_path(name) type = jsonapi_requests.orm.RelationField('product_type')