from flask_sqlalchemy import SQLAlchemy from sqlalchemy.orm import relationship db = SQLAlchemy() class Category(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(32)) labels = relationship("CategoryLabel", back_populates='category') class CategoryLabel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(32)) category_id = db.Column(db.Integer, db.ForeignKey('category.id')) category = relationship("Category", back_populates='labels') class AgentBap(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(16)) class AgentGrade(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(16)) class AgentStatus(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(16)) class Company(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(16)) class Agent(db.Model): id = db.Column(db.Integer, primary_key=True) firstname = db.Column(db.String(100)) secondname = db.Column(db.String(100)) company_id = db.Column(db.Integer, db.ForeignKey('company.id')) grade_id = db.Column(db.Integer, db.ForeignKey('agent_grade.id')) status_id = db.Column(db.Integer, db.ForeignKey('agent_status.id')) bap_id = db.Column(db.Integer, db.ForeignKey('agent_bap.id')) virtual = db.Column(db.Integer) # integer boolean permanent = db.Column(db.Integer) # integer boolean class Project(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), unique=True) class Service(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), unique=True) abbr = db.Column(db.String(50), unique=True) class Function(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), unique=True) class Capacity(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), unique=True) class Period(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), unique=True) num_months = db.Column(db.Integer) class Charge(db.Model): id = db.Column(db.Integer, primary_key=True) agent_id = db.Column(db.Integer, db.ForeignKey('agent.id')) project_id = db.Column(db.Integer, db.ForeignKey('project.id')) service_id = db.Column(db.Integer, db.ForeignKey('service.id')) capacity_id = db.Column(db.Integer, db.ForeignKey('capacity.id')) period_id = db.Column(db.Integer, db.ForeignKey('period.id')) charge_rate = db.Column(db.Integer)