Exemplo n.º 1
0
class Entity(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    name = db.Column(db.String)
    is_searchable = db.Column(db.Boolean)
    marked_deleted = db.Column(db.Boolean)
    date_created = db.Column(db.DateTime)
    date_updated_ac = db.Column(db.DateTime, server_default=func.now())
    date_updated_org = db.Column(db.DateTime, server_default=func.now())
    is_verified = db.Column(db.Boolean)
    last_verified = db.Column(db.DateTime)
    rating = db.Column(db.REAL)
    is_closed = db.Column(db.Boolean)
    phone = db.Column(db.String)
    user_id = db.Column(db.String)
    website = db.Column(db.String)
    lat = db.Column(db.REAL)
    lon = db.Column(db.REAL)
    address_id = db.Column(db.CHAR(255), db.ForeignKey('address.id'))

    attachements = db.relationship('Attachement', backref='entity', lazy=True)
    comments = db.relationship('Comments', backref='entity', lazy=True)
    emails = db.relationship('Email', backref='entity', lazy=True)
    entity_languages = db.relationship('EntityLanguage', backref='entity', lazy=True)
    entity_properties = db.relationship('EntityProperty', backref='entity', lazy=True)
    entity_tags = db.relationship('EntityTag', backref='entity', lazy=True)
    service_providers = db.relationship('ServiceProvider', backref='entity', lazy=True)
    user_favorites = db.relationship('UserFavorites', backref='entity', lazy=True)
Exemplo n.º 2
0
class Schedule(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
    day_time_id = db.Column(db.CHAR(255), db.ForeignKey('day_time.id'))

    entities = db.relationship('Entity', backref='schedules', lazy=True)
    day_times = db.relationship('DayTime', backref='schedules', lazy=True)
Exemplo n.º 3
0
class Email(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    email = db.Column(db.String(255))
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))

    def __init__(self, email):
        self.email = email
Exemplo n.º 4
0
class Address(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    street_number = db.Column(db.Integer)
    street_number_suffix = db.Column(db.String)
    street_name = db.Column(db.String)
    street_type = db.Column(db.String)
    street_direction = db.Column(db.String)
    address_type = db.Column(db.String)
    address_type_id = db.Column(db.String)
    minor_municipality = db.Column(db.String)
    major_municipality = db.Column(db.String)
    governing_district = db.Column(db.String)
    postal_area = db.Column(db.String)
    iso3_code = db.Column(db.CHAR(3))
    lat = db.Column(db.REAL)
    lon = db.Column(db.REAL)

    @property
    def serialize(self):
        address = f'{self.street_number} {self.street_name} {self.street_type} {self.street_direction},'

        return {
            'address': address,
            'city': self.major_municipality,
            'id': self.id,
            'state': self.governing_district,
            'unit': f'{self.address_type} {self.address_type_id}',
            'zip_code': self.postal_area,
            'lat': self.lat,
            'lon': self.lon
        }
Exemplo n.º 5
0
class Users(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String)
    user_type = db.Column(db.String)
    hashed_password = db.Column(db.String)
    salt = db.Column(db.String)
    created_at = db.Column(db.DateTime)
    iso3_code = db.Column(db.CHAR(3))
    active = db.Column(db.Boolean)
    preferred_language = db.Column(db.CHAR(3))

    comments = db.relationship('Comments', backref='user', lazy=True)
    user_favorites = db.relationship('UserFavorites',
                                     backref='user',
                                     lazy=True)
    asylum_seekers = db.relationship('AsylumSeeker', backref='user', lazy=True)
    service_providers = db.relationship('ServiceProvider',
                                        backref='user',
                                        lazy=True)

    def __init__(self, id, email, preferred_language):
        self.id = id
        self.email = email
        self.preferred_language = preferred_language

    @property
    def serialize(self):
        return {
            'user_id': self.id,
            'email': self.email,
            'preferred_language': self.preferred_language
        }
Exemplo n.º 6
0
class Services(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
    parent_organization = db.Column(db.CHAR(255), db.ForeignKey('organization.id'))
    appointment = db.Column(db.Boolean)

    access = db.relationship('Access', backref='service', lazy=True)
Exemplo n.º 7
0
class Comments(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
    date_created = db.Column(db.DateTime)
    date_updated = db.Column(db.DateTime)
    flagged = db.Column(db.Boolean)
    comment = db.Column(db.Text)
Exemplo n.º 8
0
class Attachement(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
    image = db.Column(db.Boolean)
    name = db.Column(db.String)
    date_uploaded = db.Column(db.DateTime)

    entities = db.relationship('Entity', backref='attachement', lazy=True)
Exemplo n.º 9
0
class Organization(db.Model):
    __tablename__ = 'organization'
    id = db.Column(db.CHAR(255), primary_key=True)
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))

    entity = db.relationship('Entity', backref="organization", uselist=False)
    services = db.relationship('Services', backref='organization', lazy=True)

    @property
    def serialize(self):
        return {'id': self.id}
Exemplo n.º 10
0
class Entity(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    name = db.Column(db.String)
    is_searchable = db.Column(db.Boolean)
    marked_deleted = db.Column(db.Boolean)
    date_created = db.Column(db.DateTime)
    date_updated_ac = db.Column(db.DateTime, server_default=func.now())
    date_updated_org = db.Column(db.DateTime, server_default=func.now())
    is_verified = db.Column(db.Boolean)
    last_verified = db.Column(db.DateTime)
    rating = db.Column(db.REAL)
    is_closed = db.Column(db.Boolean)
    user_id = db.Column(db.String)
    website = db.Column(db.String)

    address_id = db.Column(db.CHAR(255), db.ForeignKey('address.id'))

    attachements = db.relationship('Attachement', backref='entity', lazy=True)
    comments = db.relationship('Comments', backref='entity', lazy=True)
    emails = db.relationship('Email', backref='entity', lazy=True)
    entity_languages = db.relationship('EntityLanguage',
                                       backref='entity',
                                       lazy=True)
    phones = db.relationship('Phone', backref='entity', lazy=True)
    service_providers = db.relationship('ServiceProvider',
                                        backref='entity',
                                        lazy=True)
    user_favorites = db.relationship('UserFavorites',
                                     backref='entity',
                                     lazy=True)
    address = db.relationship('Address', backref='entity', uselist=False)
    properties = db.relationship('Property',
                                 backref='entity',
                                 secondary=entity_property)
    tags = db.relationship('Tags',
                           backref='entity',
                           secondary=entity_tag,
                           lazy=False)

    @property
    def serialize(self):
        return {
            'name': self.name,
            'last_verified': self.last_verified,
            'updated_at': self.date_updated_ac,
            'website': self.website,
            'rating': self.rating,
            'is_closed': self.is_closed
        }
Exemplo n.º 11
0
class ServiceProvider(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    type = db.Column(db.String)
    description = db.Column(db.String)
    organization_name = db.Column(db.String)
    about = db.Column(db.String)
    phone = db.Column(db.String)
    website = db.Column(db.String)
    cost = db.Column(db.String)
    appointment_needed = db.Column(db.Boolean)
    languages_spoken = db.Column(db.String)
    who_we_serve = db.Column(db.String)
    verified = db.Column(db.Boolean)
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
Exemplo n.º 12
0
class User(db.Model, UserMixin):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(32), nullable=False)
    last_name = db.Column(db.String(32), nullable=False)
    genre = db.Column(db.CHAR(1),
                      db.CheckConstraint('genre in (\'M\', \'F\')'),
                      nullable=False)
    username = db.Column(db.String(80), nullable=False, unique=True)
    email = db.Column(db.String(120), nullable=False, unique=True)
    _password = db.Column('password', db.String(128), nullable=False)

    def __init__(self, name, last_name, genre, username, email, pw):
        self.name = name
        self.last_name = last_name
        self.genre = genre
        self.username = username
        self.email = email
        self._password = bcrypt.generate_password_hash(pw)

    @hybrid_property
    def password(self):
        return self._password

    @password.setter
    def _set_password(self, pw):
        self._password = bcrypt.generate_password_hash(pw)

    def validate_password(self, password):
        return bcrypt.check_password_hash(bytes(self.password), password)

    def __repr__(self):
        return 'User <%r>' % self.username
Exemplo n.º 13
0
class Address(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    street_number = db.Column(db.Integer)
    street_number_suffix = db.Column(db.String)
    street_name = db.Column(db.String)
    street_type = db.Column(db.String)
    street_direction = db.Column(db.String)
    address_type = db.Column(db.String)
    address_type_id = db.Column(db.String)
    minor_municipality = db.Column(db.String)
    major_municipality = db.Column(db.String)
    governing_district = db.Column(db.String)
    postal_area = db.Column(db.String)
    iso3_code = db.Column(db.CHAR(3))

    entities = db.relationship('Entity', backref='address', lazy=True)
Exemplo n.º 14
0
class Property(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    name = db.Column(db.String)
    definition = db.Column(db.Text)
    value = db.Column(db.String)

    entity_properties = db.relationship('EntityProperty', backref='property', lazy=True)
Exemplo n.º 15
0
class Comments(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
    date_created = db.Column(db.DateTime)
    date_updated = db.Column(db.DateTime)
    flagged = db.Column(db.Boolean)
    comment = db.Column(db.Text)

    @property
    def serialize(self):
        return {
            'id': self.id,
            'user_id': self.user_id,
            'date_updated': self.date_updated,
            'comment': self.comment
        }
Exemplo n.º 16
0
class Services(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
    parent_organization_id = db.Column(db.CHAR(255),
                                       db.ForeignKey('organization.id'))
    appointment = db.Column(db.Boolean)

    entity = db.relationship('Entity', backref="services", uselist=False)
    access = db.relationship('Access', backref="access", lazy=False)

    @property
    def serialize(self):
        return {
            'id': self.id,
            'parent_organization_id': self.parent_organization_id,
            'is_appointment': self.appointment
        }
Exemplo n.º 17
0
class Access(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    access_type = db.Column(db.String)
    access_value = db.Column(db.String)
    location = db.Column(db.String)
    direct_access = db.Column(db.Boolean)
    opportunities_id = db.Column(db.String, db.ForeignKey('services.id'))
    date_created = db.Column(db.DateTime)
    date_updated = db.Column(db.DateTime)
    meta_data = db.Column(db.Text)
Exemplo n.º 18
0
class AsylumSeeker(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    first_name = db.Column(db.String)
    last_name = db.Column(db.String)

    def __init__(self, id, user_id, first_name, last_name):
        self.id = id
        self.user_id = user_id
        self.first_name = first_name
        self.last_name = last_name
Exemplo n.º 19
0
class Email(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    email = db.Column(db.String(255))
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
    is_primary = db.Column(db.Boolean)

    def __init__(self, email):
        self.email = email

    @property
    def serialize(self):
        return {
            'email': self.email,
            'id': self.id,
            'is_primary': self.is_primary,
            'first_name': 'Jane',
            'last_name': 'Doe',
            'show_on_organization': True,
            'title': 'Jane Doe'
        }
Exemplo n.º 20
0
class Phone(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    country_code = db.Column(db.VARCHAR(255))
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
    area_code = db.Column(db.VARCHAR(255))
    digits = db.Column(db.VARCHAR(255))
    is_primary = db.Column(db.Boolean)

    @property
    def serialize(self):
        return {
            'id': self.id,
            'digits': f'{self.area_code}{self.digits}',
            'phone_type': '',
            'is_primary': self.is_primary
        }
Exemplo n.º 21
0
class Paramedic(Employee):
    __tablename__ = 'paramedic'

    dni = db.Column(db.Integer,
                    db.ForeignKey('employee.dni'),
                    primary_key=True)
    specialization = db.Column(db.CHAR(3), nullable=False, default='UNK')
    id_params_team = db.Column(db.Integer,
                               db.ForeignKey('paramedics_team.id_params_team'))
    team = db.relationship('ParamedicTeam', back_populates='members')

    __mapper_args__ = {'polymorphic_identity': 'PRM'}

    __table_args__ = (db.CheckConstraint("""
            specialization = 'PAB' OR
            specialization = 'APA' OR
            specialization = 'AEM' OR
            specialization = 'TEM'"""), )

    def __init__(self, dni, name, ln, addr, pn, salary, available, _type,
                 specialization):
        super(Paramedic, self).__init__(dni, name, ln, addr, pn, salary,
                                        available, _type)
        self.specialization = specialization
Exemplo n.º 22
0
class EntityTag(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
    tag_id = db.Column(db.CHAR(255), db.ForeignKey('tags.id'))
Exemplo n.º 23
0
class Tags(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    name = db.Column(db.String)
    parent_tag = db.Column(db.String, db.ForeignKey('tags.id'))

    entity_tags = db.relationship('EntityTag', backref='tag', lazy=True)
Exemplo n.º 24
0
class UserFavorites(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
Exemplo n.º 25
0
class TimeBlock(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    start_time = db.Column(db.Time)
    end_time = db.Column(db.Time)

    daytimes = db.relationship('DayTime', backref='timeblock', lazy=True)
Exemplo n.º 26
0
class Day(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    day = db.Column(db.Integer)

    daytimes = db.relationship('DayTime', backref='day', lazy=True)
Exemplo n.º 27
0
class EntityLanguage(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))
    iso3_language = db.Column(db.CHAR(3))
    description = db.Column(db.Text)
    notes = db.Column(db.Text)
Exemplo n.º 28
0
from application import db
from sqlalchemy import func

# For many-many relationships table are best suited
# https://docs.sqlalchemy.org/en/13/orm/basic_relationships.html#relationships-one-to-one
entity_property = db.Table(
    'entity_property', db.Model.metadata,
    db.Column('entity_id', db.CHAR(255), db.ForeignKey('entity.id')),
    db.Column('property_id', db.Integer, db.ForeignKey('property.id')))

entity_tag = db.Table(
    'entity_tag', db.Model.metadata,
    db.Column('entity_id', db.CHAR(255), db.ForeignKey('entity.id')),
    db.Column('tag_id', db.Integer, db.ForeignKey('tags.id')))


# create our database models
class Access(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    access_type = db.Column(db.String)
    access_value = db.Column(db.String)
    location = db.Column(db.String)
    direct_access = db.Column(db.Boolean)
    service_id = db.Column(db.String, db.ForeignKey('services.id'))
    date_created = db.Column(db.DateTime)
    date_updated = db.Column(db.DateTime)
    meta_data = db.Column(db.Text)

    @property
    def serialize(self):
        return {
Exemplo n.º 29
0
class DayTime(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    time_id = db.Column(db.CHAR(255), db.ForeignKey('time_block.id'))
    day_id = db.Column(db.Integer, db.ForeignKey('day.id'))
Exemplo n.º 30
0
class Organization(db.Model):
    id = db.Column(db.CHAR(255), primary_key=True)
    entity_id = db.Column(db.CHAR(255), db.ForeignKey('entity.id'))

    services = db.relationship('Services', backref='organization', lazy=True)