class ServiceProvider(User): __tablename__ = 'service_provider' id = db.Column(db.Integer, db.ForeignKey('user.id'), primary_key=True) projects = db.relationship('AssociationServiceProviderProject', back_populates='service_provider') proposals = db.relationship('AssociationServiceProviderProposal', back_populates='service_provider') skills = db.Column(db.String(100), nullable=False) curriculum = db.Column(db.String(1000), nullable=False) proposal_id = db.Column(db.Integer, db.ForeignKey('proposal.id')) cost_per_project = db.Column(db.Float, nullable=False) __mapper_args__ = { 'polymorphic_identity': 'service_provider', } def __init__(self, name, email, password, skills, curriculum, cost_per_project): User.__init__(self, name, email, password) self.skills = skills self.curriculum = curriculum self.cost_per_project = cost_per_project def __repr__(self): return "Service Provider('{}', '{}', '{}', '{}', '{}', '{}', '{}')".format( self.id, self.name, self.skills, self.type, self.projects, self.cost_per_project, self.proposals)
class UserRoles(db.Model): __tablename__ = 'user_roles' id = db.Column(db.Integer(), primary_key=True) user_id = db.Column(db.Integer(), db.ForeignKey('users.id', ondelete='CASCADE')) role_id = db.Column(db.Integer(), db.ForeignKey('roles.id', ondelete='CASCADE'))
class Project(Base): __tablename__ = 'project' id = db.Column(db.Integer, primary_key=True, nullable=False) cost = db.Column(db.Float, nullable=False) final_date = db.Column(db.Date, nullable=False) spending = db.Column(db.Float, nullable=False) tasks_completed = db.Column(db.Integer, nullable=True) finalized = db.Column(db.Boolean, unique=False, default=False) # Relationships client_id = db.Column(db.Integer, db.ForeignKey('client.id'), nullable=False) service_providers = db.relationship('AssociationServiceProviderProject', back_populates='project') demand_id = db.Column(db.Integer, db.ForeignKey('demand.id'), nullable=False) origin_demand = db.relationship('Demand', foreign_keys=[demand_id]) # team # demand = db.relationship('Demand', uselist=False) # problems_solved # tasks_completed def __repr__(self): return "Project('{}', '{}', '{}', '{}', '{}', '{}', '{}')".format( self.id, self.cost, self.final_date, self.spending, self.client_id, self.service_providers, self.origin_demand)
class Message(db.Model): __tablename__ = 'messages' id = db.Column(db.Integer, primary_key=True) content = db.Column(db.Text, nullable=False) time_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) is_read = db.Column(db.Boolean, nullable=False, default=False) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) chat_id = db.Column(db.Integer, db.ForeignKey('chats.id'), nullable=False) def __repr__(self): return f"<Message {self.content} {self.time_date}>"
class ProductMovement(db.Model): id = db.Column(db.Integer, primary_key=True) date = db.Column(db.String(15), nullable=False) fromLocationId = db.Column(db.Integer, db.ForeignKey(Location.id)) toLocationId = db.Column(db.Integer, db.ForeignKey(Location.id)) productId = db.Column(db.Integer, db.ForeignKey(Product.id)) fromLocation = db.relationship(Location, foreign_keys=[fromLocationId]) toLocation = db.relationship(Location, foreign_keys=[toLocationId]) productName = db.relationship(Product, foreign_keys=[productId]) productQuantity = db.Column(db.Integer, db.CheckConstraint('productQuantity > 0')) def __repr__(self): return f'{self.date}\t{self.fromLocation}\t{self.toLocation}\t{self.productName}\t{self.productQuantity}'
class Ticket_Info(db.Model): __tablename__ = 'ticket_info' ticket_id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) flight_id = db.Column(db.Integer, db.ForeignKey('flight.flight_id')) flight_departure_date = db.Column( db.String(120), db.ForeignKey('flight_details.flight_departure_date')) status = db.Column(db.String(20), nullable=False) idNo = db.Column(db.String(20), nullable=True) name = db.Column(db.String(120), nullable=True) lastname = db.Column(db.String(120), nullable=True) birthday = db.Column(db.String(120), nullable=True) mail = db.Column(db.String(120), nullable=True) phone = db.Column(db.String(120), nullable=True)
class Demand(Base): __tablename__ = 'demand' id = db.Column(db.Integer, primary_key=True, nullable=False) name = db.Column(db.String(100), nullable=False) description = db.Column(db.String(1000), nullable=False) funcionalities = db.Column(db.String(300), nullable=False) platform = db.Column(db.String(100), nullable=False) final_date = db.Column(db.Date, nullable=False) proposals = db.relationship('Proposal', backref='demand', lazy=True) project = db.relationship('Project', backref='demand', lazy=True) client_id = db.Column(db.Integer, db.ForeignKey('client.id'), nullable=False) # project = db.relationship('Project', uselist=False) # project_id = db.Column(db.Integer, db.ForeignKey('project.id')) def __init__(self, name, description, funcionalities, platform, final_date, client_id): self.name = name self.description = description self.funcionalities = funcionalities self.platform = platform self.final_date = final_date self.client_id = client_id def __repr__(self): return "Demand('{}', '{}', '{}', '{}', '{}', '{}', '{}')".format( self.id, self.name, self.description, self.funcionalities, self.platform, self.final_date, self.client_id)
class Integrator(User): __tablename__ = 'integrator' id = db.Column(db.Integer, db.ForeignKey('user.id'), primary_key=True) __mapper_args__ = { 'polymorphic_identity': 'integrator', }
class User(db.Model): id = db.Column(db.Integer, primary_key=True) nickname = db.Column(db.String(120), index=True, unique=True) password = db.Column(db.String(255)) ## 1>n relationship to class File, allow file to backref user files = db.relationship('File',backref='user',lazy='dynamic') rank_id = db.Column(db.Integer, db.ForeignKey('rank.id')) mb_used = db.Column(db.Integer) ########## uses flask_login extension @property def is_authenticated(self): return True @property def is_active(self): return True @property def is_anonymous(self): return False def get_id(self): return str(self.id) def __repr__(self): return 'User %r' % (self.nickname)
class AssociationServiceProviderProject(Base): __tablename__ = 'association-service_provider-project' service_provider_id = db.Column(db.Integer, db.ForeignKey('service_provider.id'), primary_key=True) project_id = db.Column(db.Integer, db.ForeignKey('project.id'), primary_key=True) service_provider = db.relationship('ServiceProvider', back_populates='projects') project = db.relationship('Project', back_populates='service_providers') def __init__(self, project, service_provider): self.project = project self.project_id = project.id self.service_provider = service_provider self.service_provider_id = service_provider.id def __repr__(self): return "Association: ServiceProvider-Project('{}', '{}')".format( self.service_provider_id, self.project_id)
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) body = db.Column(db.String(200)) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) ## this is part of the foreign ## part two add here ## thats why we need the foreign key ## and the name will be 'user' not 'User' user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) date_posted = db.Column(db.DateTime, nullable=False,default=datetime.utcnow) content = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"Post('{self.title}', '{self.date_posted}')"
class UserPermission(db.Model): # type: ignore """ Class to map available permissions to a user. """ __tablename__ = "UserPermission" UserId = db.Column(db.Integer, db.ForeignKey('User.ID'), primary_key=True) PermissionId = db.Column(db.Integer, db.ForeignKey('Permission.ID'), primary_key=True) user_details = db.relationship('User', backref='permission', lazy="select") permission_details = db.relationship('Permission', backref='user', lazy="select") def __repr__(self): return f"User: {self.user_details.username}, Permission {self.permission_details.name}"
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(40), nullable=False) userID = db.Column(db.String(20), unique=True, nullable=False) D_o_B = db.Column(db.String(40), nullable=False, default=datetime.utcnow) address = db.Column(db.Text, nullable=False) password = db.Column(db.String(60), nullable=False) user_id = db.Column(db.String(20), db.ForeignKey('user.username'), nullable=False) def __repr__(self): return (self.username)
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) content = db.Column(db.Text, nullable=False) # user_id = id for the user who made this specific post user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) # Defines the default manner in which our object will be printed out def __repr__(self): return f"Post('{self.title}', '{self.date_posted}')"
class post(db.Model): id = db.Column(db.Integer, primary_key=True) Judul = db.Column(db.String(99), nullable=False) Isi = db.Column(db.Text, nullable=False) Tanggal = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) user_id = db.Column( db.Integer, db.ForeignKey("user.id"), nullable=False, ) def __repr__(self): return f"user('{self.Judul}', '{self.Tanggal}')"
class Session(db.Model): __tablename__ = 'sessions' id = db.Column(db.Text, primary_key=True) user_id = db.Column(db.Text, db.ForeignKey('users.id'), nullable=False) def __init__(self, id, user_id): self.id = id self.user_id = user_id def __repr__(self): return '<id {}>'.format(self.id)
class Client(User): __tablename__ = 'client' id = db.Column(db.Integer, db.ForeignKey('user.id'), primary_key=True) projects = db.relationship('Project', backref='client', lazy=True) demands = db.relationship('Demand', backref='client', lazy=True) def __init__(self, name, email, password): User.__init__(self, name, email, password) def __repr__(self): return "Client('{}', '{}', '{}', '{}', '{}')".format(self.id, self.name, self.email, self.type, self.projects) __mapper_args__ = { 'polymorphic_identity': 'client', }
class Proposal(Base): __tablename__ = 'proposal' id = db.Column(db.Integer, primary_key=True, nullable=False) service_providers = db.relationship('AssociationServiceProviderProposal', back_populates='proposal') cost = db.Column(db.Float, nullable=False) final_date = db.Column(db.Date, nullable=False) client_approval = db.Column(db.Boolean, nullable=False) demand_id = db.Column(db.Integer, db.ForeignKey('demand.id'), nullable=False) def __repr__(self): return "Proposal('{}', '{}', '{}', '{}', '{}', '{}')".format( self.id, self.cost, self.final_date, self.client_approval, self.demand_id, self.service_providers)
class Action(db.Model): __tablename__ = 'actions' id = db.Column(db.Integer, primary_key=True) time = db.Column(db.DateTime) type = db.Column(db.Text) properties = db.Column(JSON) session_id = db.Column(db.Text, db.ForeignKey('sessions.id')) def __init__(self,time, type, properties, session_id): self.time = time self.type = type self.properties = properties self.session_id = session_id def __repr__(self): return '<id {}>'.format(self.id)
class File(db.Model): id = db.Column(db.Integer(),primary_key=True) owner = db.Column(db.Integer(),db.ForeignKey('user.id'),index=True) name = db.Column(db.String(255),index=True) size = db.Column(db.Integer,index=True) fext = db.Column(db.String(20),index=True) datetime = db.Column(db.DateTime) public = db.Column(db.Boolean,default=False) public_key = db.Column(db.String(255),index=True) def __init__(self,owner=None,name=None,size=None,fext=None,public=None,public_key=None): self.datetime = datetime.utcnow() self.owner = owner self.name = name self.size = size self.fext = fext self.public = public self.public_key = public_key
from datetime import datetime from flask_login import UserMixin from __main__ import db, login_manager chat_user = db.Table( 'chat_user', db.Column('chat_id', db.Integer, db.ForeignKey('chats.id')), db.Column('user_id', db.Integer, db.ForeignKey('users.id'))) @login_manager.user_loader def load_user(user_id): return db.session.query(User).get(user_id) class User(db.Model, UserMixin): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(25), unique=True, nullable=False) email = db.Column(db.String(255), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False) messages = db.relationship('Message', lazy=True, backref='user') chats = db.relationship('Chat', secondary=chat_user, backref=db.backref('users')) def __repr__(self): return f"<User {self.username} {self.email}>"
class Flight_Details(db.Model): __tablename__ = 'flight_details' flight_id = db.Column(db.Integer, db.ForeignKey('flight.flight_id')) flight_departure_date = db.Column(db.String(120), primary_key=True) price = db.Column(db.Integer, nullable=False) available_seats = db.Column(db.Integer, nullable=False)
class Post(db.Model): id=db.Column(db.Integer, primary_key=True) title=db.Column(db.String(40),unique=False,nullable=False) content=db.Column(db.String(140),unique=False,nullable=False) user_id=db.Column(db.Integer, db.ForeignKey('user.id'),nullable=False)