entire v3 datamodel orm NEXT: test orm

This commit is contained in:
2024-11-01 14:47:03 +01:00
parent 4bfebf2f61
commit ae1156bd6c
6 changed files with 213 additions and 167 deletions

45
neofarm/orm/asset.py Normal file
View File

@@ -0,0 +1,45 @@
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')