class Application(db.Model, EntityMixin): __tablename__ = 'application' id = db.Column(db.Integer, primary_key=True) application_token = db.Column(db.String(255)) position_id = db.Column( db.Integer, db.ForeignKey('position.id', name='application_position_fk')) position = db.relationship('Position') company_id = db.Column( db.Integer, db.ForeignKey('company.id', name='application_company_fk')) company = db.relationship('Company') talent_id = db.Column( db.Integer, db.ForeignKey('talent.id', name='application_talent_fk')) talent = db.relationship('Talent') status = db.Column(db.Integer, default=0) step = db.Column(db.String(255)) language = db.Column(db.Integer) application_date = db.Column(db.DateTime) outcome_status = db.Column(db.Integer) outcome_email_status = db.Column(db.String(255)) want_feedback = db.Column(db.Boolean, default=True, server_default='1') average_rating = db.Column(db.Float, default=None) feedback_score = db.Column(db.Float, default=None) feedback_rating = db.Column(db.Float, default=None) recommendation_similarity = db.Column(db.Float, default=None)
class Cart(db.Model): __tablename__ = 'cart' id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) item_id = db.Column(db.Integer, db.ForeignKey('item.id'), nullable=False) date = db.Column(db.Date, nullable=False) duration = db.Column(db.Integer, nullable=False) qty = db.Column(db.Integer, nullable=False) status = db.Column(db.Boolean, nullable=False) price = db.Column(db.Integer, nullable=False) response_fields = { 'id': fields.Integer, 'user_id': fields.Integer, 'item_id': fields.Integer, 'date': fields.String, 'duration': fields.Integer, 'qty': fields.Integer, 'status': fields.Boolean, 'price': fields.Integer } def __init__(self, user_id, item_id, date, duration, qty, status, price): self.user_id = user_id self.item_id = item_id self.date = date self.duration = duration self.qty = qty self.status = status self.price = price def __repr__(self): return '<cart %r>' % self.id
class Position(db.Model, EntityMixin): __tablename__ = 'position' id = db.Column(db.Integer, primary_key=True) position_token = db.Column(db.String(255)) name = db.Column(db.String(255)) internal_name = db.Column(db.String(255)) language = db.Column(db.Integer) company_id = db.Column(db.Integer, db.ForeignKey('company.id', name='position_ibfk_1')) company = db.relationship('Company') user_id = db.Column(db.Integer, db.ForeignKey('user.id', name="position_user_fk")) user = db.relationship('User') expiration_date = db.Column(db.DateTime) description = db.Column(db.Text) template_id = db.Column(db.String(255)) link = db.Column(db.String(2047)) starting_date = db.Column(db.DateTime) employment_type = db.Column(db.String(255)) reason_for_vacancy = db.Column(db.String(255)) business_unit_id = db.Column( db.Integer, db.ForeignKey('business_unit.id', name="job_business_unit_fk")) business_unit = db.relationship('BusinessUnit', backref=backref('jobs', lazy='dynamic')) status = db.Column(db.Integer, default=INACTIVE) approval_time = db.Column(db.DateTime) active_applications = db.relationship( "Application", primaryjoin='and_(Application.position_id==Position.id)', viewonly=True)
class ApplicationEvent(db.Model, EntityMixin): __tablename__ = 'application_event' id = db.Column(db.Integer, primary_key=True) applicant_id = db.Column(db.Integer, db.ForeignKey('application.id')) application = db.relationship('Application') application_event_token = db.Column(db.String(255)) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) user = db.relationship('User') status = db.Column(db.Integer) step = db.Column(db.String(255)) time = db.Column(db.DateTime, default=datetime.datetime.utcnow) note = db.Column(db.String(255)) duration = db.Column(db.Integer, nullable=True)
class BusinessUnit(db.Model, EntityMixin): __tablename__ = 'business_unit' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(255)) business_unit_token = db.Column(db.String(255)) parent_id = db.Column( db.Integer, db.ForeignKey('business_unit.id', name='business_unit_parent_fk')) parent = relationship('BusinessUnit', remote_side=[id]) company_id = db.Column(db.Integer, db.ForeignKey('company.id', name='business_unit_ibfk_1'), nullable=False) company = db.relationship('Company') json_data = db.Column(db.Text)
class EventGuest(db.Model): __tablename__ = 'eventguest' id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer,db.ForeignKey('user.id'), nullable=False) event_id = db.Column(db.Integer, db.ForeignKey('event.id'), nullable=False) response_fields={ 'id': fields.Integer, 'user_id': fields.Integer, 'event_id': fields.Integer, } def __init__(self, user_id, event_id): self.user_id = user_id self.event_id = event_id def __repr__(self): return str(self.id) + str(self.user_id) + str(self.event_id)
class TalentCommunities(db.Model, EntityMixin): __tablename__ = 'talent_communities' talent_id = db.Column(db.Integer, db.ForeignKey('talent.id', name="talent_communities_talent_fk", ondelete="CASCADE"), primary_key=True) community_id = db.Column(db.Integer, db.ForeignKey( 'community.id', name="talent_communities_community_fk", ondelete="CASCADE"), primary_key=True) talent = db.relationship("Talent") community = db.relationship("Community") def __init__(self, talent_id, community_id): self.talent_id = talent_id self.community_id = community_id
class ApplicationFeedback(db.Model, EntityMixin): __tablename__ = 'application_feedback' id = db.Column(db.Integer, primary_key=True) application_feedback_token = db.Column(db.String(255)) application_id = db.Column(db.Integer, db.ForeignKey('application.id'), nullable=False) application = db.relationship('Application') rating = db.Column(db.Integer) rating_time = db.Column(db.DateTime()) rating_message = db.Column(db.Text)
class PositionRights(db.Model, EntityMixin): __tablename__ = 'position_rights' id = db.Column(db.Integer, primary_key=True) position_id = db.Column( db.Integer, db.ForeignKey('position.id', name='position_right_position_fk')) position = relationship("Position", backref=backref("rights", cascade="all, delete-orphan", viewonly=True)) user_id = db.Column( db.Integer, db.ForeignKey('user.id', name='position_right_user_fk1')) user = relationship("User", backref=backref("jobs_has_rights_to", cascade="all, delete-orphan", viewonly=True)) role = db.Column(db.String(64)) json_data, data = json_property('json_data', db.Column(MEDIUMTEXT), default={})
class Shop(db.Model): __tablename__ = 'shop' id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) name = db.Column(db.String(100), nullable=False) address = db.Column(db.String(100), nullable=False) city = db.Column(db.String(30), nullable=False) province = db.Column(db.String(30), nullable=False) telephone = db.Column(db.String(15), nullable=False) photo = db.Column(db.Text, nullable=True) status = db.Column(db.Boolean, nullable=False) response_fields = { 'id': fields.Integer, 'user_id': fields.Integer, 'name': fields.String, 'address': fields.String, 'city': fields.String, 'province': fields.String, 'telephone': fields.String, 'photo': fields.String, 'status': fields.Boolean, } transaction_response_fields = { 'id': fields.Integer, 'name': fields.String, 'address': fields.String, 'city': fields.String, 'province': fields.String, 'telephone': fields.String, } name_response_fields = { 'id': fields.Integer, 'name': fields.String, } def __init__(self, user_id, name, address, city, province, telephone, photo, status): self.user_id = user_id self.name = name self.address = address self.city = city self.province = province self.telephone = telephone self.photo = photo self.status = status def __repr__(self): return '<Shop %r>' % self.id
class Community(db.Model, EntityMixin): __tablename__ = 'community' id = db.Column(db.Integer, primary_key=True) company_id = db.Column( db.Integer, db.ForeignKey('company.id', name='community_ibfk_1', ondelete="CASCADE")) name = db.Column(db.String(255)) def __init__(self, name, company_id): self.name = name self.company_id = company_id def serialize(self): return {"id": self.id, "name": self.name}
class Item(db.Model): __tablename__ = 'item' id = db.Column(db.Integer, primary_key=True, autoincrement=True) shop_id = db.Column(db.Integer, db.ForeignKey('shop.id'), nullable=False) name = db.Column(db.String(100), nullable=False) qty = db.Column(db.Integer, nullable=False) price = db.Column(db.Integer, nullable=False) status = db.Column(db.String(10), nullable=False) category = db.Column(db.String(30), nullable=False) description = db.Column(db.Text, nullable=True) detail = db.Column(db.Text, nullable=True) photo = db.Column(db.Text, nullable=True) response_fields = { 'id': fields.Integer, 'shop_id': fields.Integer, 'name': fields.String, 'qty': fields.Integer, 'price': fields.Integer, 'status': fields.String, 'category': fields.String, 'description': fields.String, 'detail': fields.String, 'photo': fields.String, } name_response_fields = { 'id': fields.Integer, 'name': fields.String, } def __init__(self, shop_id, name, qty, price, status, category, description, detail, photo): self.shop_id = shop_id self.name = name self.qty = qty self.price = price self.status = status self.category = category self.description = description self.detail = detail self.photo = photo def __repr__(self): return '<Item %r>' % self.id
class User(db.Model, EntityMixin): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True) first_name = db.Column(db.String(255), default="") last_name = db.Column(db.String(255), default="") title = db.Column(db.String(255), default="") user_token = db.Column(db.String(255)) company_id = db.Column(db.Integer, db.ForeignKey('company.id', name='company_userfk_1')) company = db.relationship('Company') photoname = db.Column(db.String(255)) language = db.Column(db.Integer) confirmed_at = db.Column(db.DateTime()) last_login_at = db.Column(db.DateTime()) current_login_at = db.Column(db.DateTime()) login_count = db.Column(db.Integer) roles = db.Column(db.Text) password = db.Column(db.String(255)) email = db.Column(db.String(255))
class Talent(db.Model, EntityMixin): __tablename__ = 'talent' id = db.Column(db.Integer, primary_key=True) company_id = db.Column( db.Integer, db.ForeignKey('company.id', name='company_talent_fk')) talent_token = db.Column(db.String(255), nullable=False) company = db.relationship('Company') talent_community = db.Column(db.Boolean, default=False, server_default='0') confirmed_talent_community = db.Column(db.Boolean, default=False, server_default='0') applications = db.relationship('Application', cascade="all, delete-orphan") talent_communities = db.relationship('TalentCommunities', cascade="all, delete-orphan") communities = association_proxy('talent_communities', 'community') time_confirmed_membership = db.Column(db.DateTime) time_added_to_talent_community = db.Column(db.DateTime, default=None) language = db.Column(db.Integer) image = db.Column(db.String(255))
class Event(db.Model): __tablename__ = 'event' id = db.Column(db.Integer, primary_key=True, autoincrement=True) nama = db.Column(db.String(30), nullable=False) ip = db.Column(db.String(20), nullable=False) waktu = db.Column(db.String(30), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) response_fields = { 'id': fields.Integer, 'nama': fields.String, 'ip': fields.String, 'waktu': fields.String, 'user_id': fields.Integer } def __init__(self, nama, ip, waktu, user_id): self.nama = nama self.ip = ip self.waktu = waktu self.user_id = user_id def __repr__(self): return '<Event %r>' % self.id