""" Defines the DB entities. """ from pony.orm import Required, Optional, PrimaryKey, Set from app import db class City(db.Entity): city_id = PrimaryKey(str, auto=True) display_name = Optional(str) lat = Required(float) lon = Required(float) simulations = Set("Simulation") networks = Set("Network") class Network(db.Entity): id = PrimaryKey(int, auto=True) name = Required(str) description = Optional(str) city = Required(City) plans = Set("Plan") east = Optional(float) west = Optional(float) north = Optional(float) south = Optional(float) done_osm_processing = Optional(bool) donematsim_processing = Optional(bool) conversion_error = Optional(str) class Status: CREATED = 0 RUNNING = 1 FINISHED = 2 ERROR = 3 class Simulation(db.Entity): id = PrimaryKey(int, auto=True) name = Required(str) description = Optional(str) city = Required(City) plan = Required("Plan") status = Optional(int) class Plan(db.Entity): id = PrimaryKey(int, auto=True) name = Optional(str) simulation = Set(Simulation) network = Required(Network)