2023-11-19 12:13:39 +05:30
|
|
|
from typing import Any
|
|
|
|
|
|
|
|
from sqlmodel import Field, String, JSON, Column
|
|
|
|
|
|
|
|
from .models_base import Model
|
|
|
|
from .metadata import gisaf_map
|
|
|
|
|
|
|
|
|
|
|
|
class BaseStyle(Model):
|
|
|
|
metadata = gisaf_map
|
|
|
|
__tablename__ = 'map_base_style'
|
|
|
|
|
|
|
|
class Admin:
|
|
|
|
menu = 'Other'
|
|
|
|
flask_admin_model_view = 'MapBaseStyleModelView'
|
|
|
|
|
|
|
|
id: int = Field(primary_key=True)
|
|
|
|
name: str
|
2023-12-13 01:25:00 +05:30
|
|
|
style: dict[str, Any] | None = Field(sa_type=JSON(none_as_null=True))
|
|
|
|
mbtiles: str = Field(sa_type=String(50))
|
2023-11-19 12:13:39 +05:30
|
|
|
static_tiles_url: str
|
|
|
|
enabled: bool = True
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
return '<models.BaseStyle {self.name:s}>'.format(self=self)
|
|
|
|
|
|
|
|
|
|
|
|
class BaseMap(Model):
|
|
|
|
metadata = gisaf_map
|
|
|
|
__tablename__ = 'base_map'
|
|
|
|
|
|
|
|
class Admin:
|
|
|
|
menu = 'Other'
|
|
|
|
|
|
|
|
id: int = Field(primary_key=True)
|
|
|
|
name: str
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
return '<models.BaseMap {self.name:s}>'.format(self=self)
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return self.name
|
|
|
|
|
|
|
|
|
|
|
|
class BaseMapLayer(Model):
|
|
|
|
metadata = gisaf_map
|
|
|
|
__tablename__ = 'base_map_layer'
|
|
|
|
|
|
|
|
class Admin:
|
|
|
|
menu = 'Other'
|
|
|
|
|
|
|
|
id: int = Field(primary_key=True)
|
|
|
|
base_map_id: int = Field(foreign_key='base_map.id', index=True)
|
2023-12-13 01:25:00 +05:30
|
|
|
store: str = Field(sa_type=String(100))
|
2023-11-19 12:13:39 +05:30
|
|
|
|
|
|
|
@classmethod
|
|
|
|
def dyn_join_with(cls):
|
|
|
|
return {
|
|
|
|
'base_map': BaseMap,
|
|
|
|
}
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
return f"<models.BaseMapLayer {self.store or '':s}>"
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return f"{self.store or '':s}"
|