class MasterFlags(db.Model): __tablename__ = 'master_flags' __bind_key__='datalake' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=True) flag = db.Column(db.String(120), nullable=True) flagShort = db.Column(db.String(120), nullable=True) def serialize(self): company = {} company["id"] = self.id company["name"] = self.name company["flag"] = self.flag company["flagShort"] = self.flagShort return company @classmethod def create(cls, data): model = cls() model.name = data.get('name') model.flag = data.get('flag') return model
class MastersCompany(db.Model): __tablename__ = 'master_companies' __bind_key__ = 'datalake' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=True) phone = db.Column(db.String(120), nullable=True) flag = db.Column(db.String(120), nullable=True) hiddenfield = db.Column(db.String(120), nullable=True) def serialize(self): company = {} company["id"] = self.id company["name"] = self.name company["flag"] = self.flag company["phone"] = self.phone return company @classmethod def create(cls, data): model = cls() model.name = data.get('name') model.phone = data.get('phone') model.flag = data.get('flag') model.hiddenfield = "somefiled not exposed to api and not serialized" return model
class TableApp(db.Model): __tablename__ = 'app_table_1' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) def serialize(self): return { "username": self.username, "emails":[self.email, self.email2] }
class RMCFormula(db.Model): __tablename__ = 'rmc_formula' __bind_key__ = 'datalake' id = db.Column(db.Integer, primary_key=True) formula = db.Column(db.String(1024), nullable=True) fee = db.Column(db.String(120), nullable=True) bussinesUnit = db.Column(db.String(120), nullable=True) def serialize(self): company = {} company["id"] = self.id company["fee"] = self.fee company["bussinesUnit"] = self.bussinesUnit company["fomula"] = json.load(self.formula) return company @classmethod def create(cls, data): model = cls() model.fee = data.get('fee') model.formula = json.dump(data.get('phone')) model.bussinesUnit = data.get('bussinesUnit') return model def update(self, data): self.fee = data.get('fee') self.formula = json.dump(data.get('formula')) self.bussinesUnit = data.get('bussinesUnit') db.session.commit() return self
class MastersVessel(db.Model): __tablename__ = 'master_vessels' __bind_key__ = 'datalake' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=True) imo = db.Column(db.String(80), nullable=True) tp_id = db.Column(db.Integer(), db.ForeignKey("master_companies.id"), nullable=True) so_id = db.Column(db.Integer(), db.ForeignKey("master_companies.id"), nullable=True) co_id = db.Column(db.Integer(), db.ForeignKey("master_companies.id"), nullable=True) ### JUST DEFINE RELATION AND LET SqlAchemy create dynamic python objects ## see company/views.py accesing to tpFleet / soFleet and coFleet tPartyCompany = db.relationship("MastersCompany", foreign_keys=tp_id, backref="tpFleet", lazy='joined') sOwnerCompany = db.relationship("MastersCompany", foreign_keys=so_id, backref="soFleet", lazy='joined') cOperCompany = db.relationship("MastersCompany", foreign_keys=co_id, backref="coFleet", lazy='joined') def serialize_simple(self): """ Simple serializacon method only name and imo """ company = {} company["id"] = self.id company["name"] = self.name company["imo"] = self.imo return company def serialize(self): """ Complet object serialization with companies etc... """ company = {} company["id"] = self.id company["name"] = self.name company["imo"] = self.imo company["thirdParty"] = self.tPartyCompany.serialize( ) if self.tPartyCompany else {} company["shipOwner"] = self.sOwnerCompany.serialize( ) if self.sOwnerCompany else {} company["comOperator"] = self.cOperCompany.serialize( ) if self.cOperCompany else {} return company @classmethod def create(cls, data): model = cls() model.name = data.get('name') model.imo = data.get('imo') model.tp_id = data.get('tp_id', None) model.so_id = data.get('so_id', None) model.co_id = data.get('co_id', None) return model def update(self, data): self.name = data.get('name') self.imo = data.get('imo') model.tp_id = data.get('tp_id', None) model.so_id = data.get('so_id', None) model.co_id = data.get('co_id', None) db.session.commit() return self