Esempio n. 1
0
class User(db.Model):

    FollowedFollowers = db.Table(
        'followed_followers', db.Column('id', db.Integer, primary_key=True),
        db.Column('followed_id', db.Integer,
                  db.ForeignKey('users.id', ondelete='cascade')),
        db.Column('follower_id', db.Integer,
                  db.ForeignKey('users.id', ondelete='cascade')))

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.Text, unique=True)
    password = db.Column(db.Text)
    first_name = db.Column(db.Text)
    last_name = db.Column(db.Text)
    email = db.Column(db.Text, unique=True)
    warbles = db.relationship('Warble',
                              cascade='all, delete-orphan',
                              backref='user',
                              lazy='dynamic')
    followers = db.relationship(
        'User',
        secondary=FollowedFollowers,
        primaryjoin=(FollowedFollowers.c.follower_id == id),
        secondaryjoin=(FollowedFollowers.c.followed_id == id),
        backref=db.backref('following', lazy='dynamic'))

    def __init__(self, username, password, first_name, last_name, email):
        self.username = username
        self.password = bcrypt.generate_password_hash(password).decode('UTF-8')
        self.first_name = first_name
        self.last_name = last_name
        self.email = email

    def __repr__(self):
        return "User {} {}'s user name is {}, email is {}".format(
            self.first_name, self.last_name, self.username, self.email)
Esempio n. 2
0
from project import db
from datetime import datetime
# from project.users.models import User

Likes = db.Table(
    'likes', db.Column('id', db.Integer, primary_key=True),
    db.Column('user_id', db.Integer,
              db.ForeignKey('users.id', ondelete="cascade")),
    db.Column('message_id', db.Integer,
              db.ForeignKey('messages.id', ondelete="cascade")),
    db.UniqueConstraint('user_id', 'message_id', name="one_time_like"))


class Message(db.Model):

    __tablename__ = 'messages'

    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime)
    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.id', ondelete='CASCADE'))
    user_likes = db.relationship('User',
                                 secondary=Likes,
                                 backref=db.backref('message_likes'))

    def __init__(self, text, user_id, timestamp=datetime.utcnow()):
        self.text = text
        self.user_id = user_id
        self.timestamp = timestamp
import datetime
import jwt

from flask import current_app
from project import db
from sqlalchemy.ext.hybrid import hybrid_property

user_tag = db.Table(
    "user_tag",
    db.Column("user_id",
              db.Integer,
              db.ForeignKey("user.user_id",
                            onupdate="CASCADE",
                            ondelete="CASCADE"),
              primary_key=True),
    db.Column("tag_id",
              db.Integer,
              db.ForeignKey("tag.tag_id",
                            onupdate="CASCADE",
                            ondelete="CASCADE"),
              primary_key=True))


class Rating(db.Model):
    __tablename__ = "rating"
    from_user_id = db.Column(db.Integer,
                             db.ForeignKey("user.user_id",
                                           onupdate="CASCADE",
                                           ondelete="CASCADE"),
                             primary_key=True)
    to_user_id = db.Column(db.Integer,
Esempio n. 4
0
from project import db

subs = db.Table(
    'subs',
    db.Column('author_id',
              db.Integer,
              db.ForeignKey('author.author_id'),
              primary_key=True),
    db.Column('book_id',
              db.Integer,
              db.ForeignKey('book.book_id'),
              primary_key=True),
    extend_existing=True,
)


class Author(db.Model):

    author_id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))

    books = db.relationship('Book', secondary=subs, back_populates='books')


class Book(db.Model):

    book_id = db.Column(db.Integer, primary_key=True)
    book_name = db.Column(db.String(50))

    authors = db.relationship('Author',
                              secondary=subs,
Esempio n. 5
0
from project import db, bcrypt
from flask_login import UserMixin

from project.messages.models import Message

FollowersFollowee = db.Table(
    'follows', db.Column('id', db.Integer, primary_key=True),
    db.Column('followee_id', db.Integer,
              db.ForeignKey('users.id', ondelete="cascade")),
    db.Column('follower_id', db.Integer,
              db.ForeignKey('users.id', ondelete="cascade")),
    db.CheckConstraint('follower_id != followee_id', name="no_self_follow"))


class User(db.Model, UserMixin):

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.Text, unique=True)
    username = db.Column(db.Text, unique=True)
    image_url = db.Column(db.Text)
    header_image_url = db.Column(db.Text)
    bio = db.Column(db.Text)
    location = db.Column(db.Text)
    password = db.Column(db.Text)
    full_name = db.Column(db.Text)
    messages = db.relationship('Message', backref='user', lazy='dynamic')
    followers = db.relationship(
        "User",
        secondary=FollowersFollowee,
Esempio n. 6
0
from project import db
from project.tags.models import Tag
'''
Oggetti Tabella relativi al modulo "corsi"
'''
# corso_tags - tabella di relazione N:N tra Corso e Tag
tags = db.Table(
    "corso_tags",
    #__table_args__ = {'extend_existing': True},
    db.Column("corso_id",
              db.Integer,
              db.ForeignKey("corso.id"),
              primary_key=True),
    db.Column("tag_id", db.Integer, db.ForeignKey("tag.id"), primary_key=True),
)


# corso - tabella con i corsi
class Corso(db.Model):
    # Nome della tabella
    __tablename__ = "corso"

    # Struttura/Attributi
    id = db.Column(db.Integer(), primary_key=True)
    nome = db.Column(db.String(100), unique=True, nullable=False)
    insegnante = db.Column(db.String(100))
    livello = db.Column(db.String(100))
    descrizione = db.Column(db.String(255))
    # Immagine logo da cartella static, se presente
    logo_img = db.Column(db.String(100))
Esempio n. 7
0
    company = db.relationship('Company')
    created_at = db.Column(db.DateTime, nullable=False)

    def __init__(self,
                 company,
                 data_score,
                 company_uid,
                 created_at=datetime.datetime.utcnow()):
        self.company = company
        self.company_uid = company_uid
        self.data_score = data_score
        self.created_at = created_at


roles_users = db.Table(
    'roles_users',
    db.Column('admin_user_id', db.Integer(), db.ForeignKey('admin_users.id')),
    db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))


class Role(db.Model, RoleMixin):
    __tablename__ = "role"
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    def __str__(self):
        return self.name


class AdminUser(db.Model, UserMixin):
    __tablename__ = "admin_users"
Esempio n. 8
0
# project/models.py

import datetime
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.sql.functions import sum

from project import db, bcrypt

tag_categories_tags = db.Table(
    'tag_categories_tags',
    db.Column('tag_category_id', db.Integer(),
              db.ForeignKey('tag_category.id')),
    db.Column('tag_id', db.Integer(), db.ForeignKey('tag.id')))

components_tags = db.Table(
    'components_tags',
    db.Column('component_id', db.Integer(), db.ForeignKey('component.id')),
    db.Column('tag_id', db.Integer(), db.ForeignKey('tag.id')))


class Base(db.Model):
    __abstract__ = True
    id = db.Column(db.Integer, primary_key=True)
    date_create = db.Column(db.DateTime, default=db.func.current_timestamp())
    date_modified = db.Column(db.DateTime,
                              default=db.func.current_timestamp(),
                              onupdate=db.func.current_timestamp())


class User(db.Model):
Esempio n. 9
0
from uuid import uuid4
from datetime import datetime
from project import db
from .config import SIZE_NAME, SIZE_UUID, SIZE_TITLE, SIZE_META
from .config import POST_STATUS_DRAFT, POST_STATUS_PUBLISHED, POST_TEMPLATE_TEXT

tags = db.Table(
    'blog_tags',
    db.Column('tag_id', db.Integer, db.ForeignKey('blog_tag.tag_id')),
    db.Column('post_id', db.Integer, db.ForeignKey('blog_post.post_id')))

categories = db.Table(
    'blog_categories',
    db.Column('category_id', db.Integer,
              db.ForeignKey('blog_category.category_id')),
    db.Column('post_id', db.Integer, db.ForeignKey('blog_post.post_id')))


class Tag(db.Model):
    __tablename__ = 'blog_tag'
    id = db.Column('tag_id', db.Integer, primary_key=True)
    uuid = db.Column('uuid', db.String(SIZE_UUID), unique=True)
    slug = db.Column('slug', db.String(SIZE_NAME), unique=True, index=True)
    name = db.Column('name', db.String(SIZE_NAME), index=True)
    added = db.Column('added', db.DateTime)
    deleted = db.Column('deleted', db.Boolean, default=False)

    def __init__(self, slug, name):
        self.uuid = str(uuid4())
        self.slug = slug
        self.name = name
Esempio n. 10
0
from project import db, bcrypt
from flask_login import UserMixin
from project.preferences.models import Preference

UserPreference = db.Table(
    'user_preferences', db.Column('id', db.Integer, primary_key=True),
    db.Column('user_id', db.Integer,
              db.ForeignKey('users.id', ondelete='cascade')),
    db.Column('preference_id', db.Integer,
              db.ForeignKey('preferences.id', ondelete='cascade')))

UserPodcast = db.Table(
    'user_podcasts', db.Column('id', db.Integer, primary_key=True),
    db.Column('user_id', db.Integer,
              db.ForeignKey('users.id', ondelete='cascade')),
    db.Column('podcast_id', db.Integer,
              db.ForeignKey('podcasts.id', ondelete='cascade')))

LikedPodcasts = db.Table(
    'liked_podcasts', db.Column('id', db.Integer, primary_key=True),
    db.Column('id_of_user_who_liked_podcast', db.Integer,
              db.ForeignKey('users.id', ondelete='cascade')),
    db.Column('id_of_podcast_liked', db.Integer,
              db.ForeignKey('podcasts.id', ondelete='cascade')))


class User(db.Model, UserMixin):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.Text, unique=True)
Esempio n. 11
0
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(120), unique=True, nullable=False)
    found_email_sent = db.Column(db.Integer, default=0)
    #The backref will be a column in the Item table
    subscribed_items = db.relationship('Item',
                                       secondary='subscribes',
                                       backref=db.backref('subscribed_users'),
                                       lazy='dynamic')

    def __repr__(self):
        return f"User('{self.email}'"


#helper table
subscribes = db.Table(
    'subscribes', db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
    db.Column('item_id', db.Integer, db.ForeignKey('items.id')),
    db.Column('email_sent', db.Integer, default=0))


class Item(db.Model):
    __tablename__ = 'items'
    id = db.Column(db.Integer, primary_key=True)
    brand = db.Column(db.String(30), nullable=False)
    country = db.Column(db.String(15), nullable=False)
    sku = db.Column(db.String(30), nullable=False)
    is_available = db.Column(db.Boolean, default=False)

    #last_time = db.Column(db.DateTime, default=datetime.utcnow)
    #users = db.relationship("User", secondary="subscribes")

    def now_available(self):
Esempio n. 12
0
from project import db
from datetime import datetime
# from project.users.models import User

Likes = db.Table(
    'likes', db.Column('id', db.Integer, primary_key=True),
    db.Column('user_id', db.Integer,
              db.ForeignKey('users.id', ondelete="cascade")),
    db.Column('message_id', db.Integer,
              db.ForeignKey('messages.id', ondelete="cascade")))


class Message(db.Model):

    __tablename__ = 'messages'

    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime)
    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.id', ondelete='CASCADE'))
    user_likes = db.relationship("User",
                                 secondary=Likes,
                                 backref=db.backref('message_likes'))

    def __init__(self, text, user_id, timestamp=datetime.utcnow()):
        self.text = text
        self.user_id = user_id
        self.timestamp = timestamp
Esempio n. 13
0
from project import db


class Tag(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(10))

    @classmethod
    def get_all_tags(cls):
        existing_tags = []
        tags = cls.query.all()
        for tag in tags:
            t = (str(tag.id), str(tag.name))
            existing_tags.append(t)
        return existing_tags

    @classmethod
    def get_tag_by_id(cls, id):
        tag = cls.query.filter_by(id=id).first()
        return tag

    @classmethod
    def get_tag_by_name(cls, name):
        tag = cls.query.filter_by(name=name).first()
        return tag


assoc_table = db.Table(
    'posts_tags', db.Column('post_id', db.Integer, db.ForeignKey('post.id')),
    db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')))
Esempio n. 14
0
from project.models.serate import Serata
from project import db

# Tabella di relazione N:N tra Corso e Tag
tags = db.Table(
    "corso_tags",
    db.Column("corso_id",
              db.Integer,
              db.ForeignKey("corso.id"),
              primary_key=True),
    db.Column("tag_id", db.Integer, db.ForeignKey("tag.id"), primary_key=True),
)


class Corso(db.Model):
    # Nome della tabella
    __tablename__ = "corso"

    # Struttura/Attributi
    id = db.Column(db.Integer(), primary_key=True)
    nome = db.Column(db.String(100), unique=True, nullable=False)
    insegnante = db.Column(db.String(100))
    lezioni = db.Column(db.Integer())
    livello = db.Column(db.String(100))
    descrizione = db.Column(db.String(255))

    # Relazione 1:n; ordinamento serate per data
    serate = db.relationship("Serata",
                             order_by="asc(Serata.data)",
                             backref="corso",
                             lazy="subquery")
Esempio n. 15
0
from project import db

from sqlalchemy import UniqueConstraint

collection_guitars = db.Table(
    'collection_guitars',
    db.Column('collection_id', db.Integer, db.ForeignKey('collections.id')),
    db.Column('guitar_id', db.Integer, db.ForeignKey('guitars.id')))


class User(db.Model):

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String, unique=True, nullable=False)
    email = db.Column(db.String, unique=True, nullable=False)
    password = db.Column(db.String, nullable=False)
    role = db.Column(db.Integer, default=1)
    collections = db.relationship('Collection',
                                  backref='collections',
                                  lazy='dynamic')

    def __init__(self, username, email, password, role=1):
        self.username = username
        self.email = email
        self.password = password
        self.role = role

    def has_permission_to_edit(self, collection):
        if collection is not None:
Esempio n. 16
0
    username = db.Column(db.String(64), index=True, unique=True)
    password_hash = db.Column(db.String(128))
    invisible = db.Column(db.Boolean, default=False)

    def __repr__(self):
        return '<User {}>'.format(self.username)

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)


auth_users = db.Table(
    'auth_users', db.Column('room_id', db.Integer, db.ForeignKey('room.id')),
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')))

room_users = db.Table(
    'room_users', db.Column('room_id', db.Integer, db.ForeignKey('room.id')),
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')))


class Room(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    room_name = db.Column(db.String(30), default="")
    room_id = db.Column(db.String(10), index=True, unique=True)
    suggest_list_id = db.Column(db.String(11))
    gen_list_id = db.Column(db.String(11))
    owner_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    password_required = db.Column(db.Boolean(), default=True)
Esempio n. 17
0
        seller = Seller.query.filter_by(email=email).first()
        if seller:
            return seller
        else:
            return False


class Product(db.Model):
    __tablename__ = 'product'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    product_name = db.Column(db.String(200), nullable=False)
    product_price = db.Column(db.String(10), nullable=False)
    product_desc = db.Column(db.String(500), nullable=False)
    sellers = relationship('Seller',
                           secondary="seller_product",
                           backref="products")

    def __init__(self, product_name, product_price, product_desc):
        self.product_name = product_name
        self.product_price = product_price
        self.product_desc = product_desc

    def __repr__(self):
        return '<Product %r>' % self.product_name


seller_product_table = db.Table(
    'seller_product',
    db.Column('product_id', db.Integer, db.ForeignKey('product.id')),
    db.Column('seller_id', db.Integer, db.ForeignKey('seller.id')))
Esempio n. 18
0
from project import db
import datetime

user_gifts = db.Table('chest_avatars', db.Model.metadata,
                      db.Column('chest_id', db.ForeignKey('chests.id')),
                      db.Column('avatar_id', db.ForeignKey('avatars.id')))
Esempio n. 19
0
from project import db, bcrypt
from flask_login import UserMixin

BodyPartExercise = db.Table('bodypart_exercises',
							db.Column('id', db.Integer, primary_key=True),
							db.Column('exercise_id', db.Integer, db.ForeignKey('exercises.id', ondelete='cascade')),
							db.Column('bodypart_id', db.Integer, db.ForeignKey('bodyparts.id', ondelete='cascade'))
							)

class Exercise(db.Model):
	__tablename__ = 'exercises'

	id = db.Column(db.Integer, primary_key=True)
	name = db.Column(db.Text, unique = True)
	description = db.Column(db.Text)
	bodyparts = db.relationship('BodyPart', secondary=BodyPartExercise, backref=db.backref('exercises'))


	def __init__(self,name,description):
		self.name = name
		self.description = description

class BodyPart(db.Model):
	__tablename__ = 'bodyparts'

	id = db.Column(db.Integer, primary_key=True)
	name = db.Column(db.Text, unique = True)

	def __init__(self,name):
		self.name=name
Esempio n. 20
0
from project import db

EmployeeDepartment = db.Table('employee_departments',
                              db.Column('id',
                                        db.Integer,
                                        primary_key=True),
                              db.Column('employee_id',
                                        db.Integer,
                                        db.ForeignKey('employees.id', ondelete="cascade")),
                              db.Column('department_id',
                                        db.Integer,
                                        db.ForeignKey('departments.id', ondelete="cascade")))


EmployeeBenefit = db.Table('employee_benefits',
                          db.Column('id', db.Integer, primary_key= True),
                          db.Column('employee_id', db.Integer, db.ForeignKey('employees.id', ondelete='cascade')),
                          db.Column('benefit_id', db.Integer, db.ForeignKey('benefits.id', ondelete='cascade')))


class Employee(db.Model):
    __tablename__ = 'employees'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text)
    years_at_company = db.Column(db.Integer)
    departments = db.relationship("Department",
                                  secondary=EmployeeDepartment,
                                  backref=db.backref('employees'))
    # benefits = db.relationship("Benefit",
    #                             secondary=EmployeeBenefit,
Esempio n. 21
0
import datetime
from slugify import slugify

from project import db, bcrypt

student_table = db.Table(
    'student',
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('webinar_id', db.Integer, db.ForeignKey('webinar.id'))
)


class User(db.Model):

    __tablename__ = "user"

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String, unique=True, nullable=False)
    password = db.Column(db.String, nullable=False)
    registered_on = db.Column(db.DateTime, nullable=False)
    admin = db.Column(db.Boolean, nullable=False, default=False)
    confirmed = db.Column(db.Boolean, nullable=False, default=False)
    confirmed_on = db.Column(db.DateTime, nullable=True)
    rating = db.Column(db.Float, nullable=True)
    webinars = db.relationship("Webinar", backref="user")

    def __init__(self, email, password, confirmed,
                 paid=False, admin=False, confirmed_on=None, rating=None):
        self.email = email
        self.password = bcrypt.generate_password_hash(password)
        self.registered_on = datetime.datetime.now()
Esempio n. 22
0
# project/models.py


import datetime

from project import db, bcrypt
from sqlalchemy import UniqueConstraint
from utils.utils import random_color, random_pastel

position_assignments = db.Table('position_assignments',
                                db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
                                db.Column('position_id', db.Integer, db.ForeignKey('positions.id'))
                                )


class User(db.Model):
    __tablename__ = "users"

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String, unique=True, nullable=False)
    first_name = db.Column(db.String(20))
    last_name = db.Column(db.String(20))
    password = db.Column(db.String, nullable=False)
    registered_on = db.Column(db.DateTime, nullable=False)
    admin = db.Column(db.Boolean, nullable=False, default=False)

    # relationship with shifts
    shifts = db.relationship("Shift", backref="user")

    # relationship with organization
    orgs_owned = db.relationship('Organization', backref='owner', lazy='dynamic')
from project import db
import datetime

garanty_products = db.Table('garanty_products', db.Model.metadata,
    db.Column('garanty_id', db.ForeignKey('garanties.id')),
    db.Column('product_id', db.ForeignKey('products.id'))
)
Esempio n. 24
0
from project import db
from project.api.misc.enums import genres_list


class Genre(db.Model):
    __tablename__ = "Genre"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Enum(*genres_list, name="genres"), nullable=False, unique=True)


GenreArtist = db.Table(
    "GenreArtist",
    db.Column("artist_id", db.Integer, db.ForeignKey("Artist.id"), primary_key=True),
    db.Column("genre_id", db.Integer, db.ForeignKey("Genre.id"), primary_key=True),
)


GenreVenue = db.Table(
    "GenreVenue",
    db.Column("venue_id", db.Integer, db.ForeignKey("Venue.id"), primary_key=True),
    db.Column("genre_id", db.Integer, db.ForeignKey("Genre.id"), primary_key=True),
)
Esempio n. 25
0
from project import db, bcrypt

Followers = db.Table(
    'followers', db.Column('follower_id', db.Integer,
                           db.ForeignKey('users.id')),
    db.Column('followed_id', db.Integer, db.ForeignKey('users.id')))


class User(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.Text, unique=True)
    username = db.Column(db.Text, unique=True)
    name = db.Column(db.Text)
    password = db.Column(db.Text)
    image_url = db.Column(db.Text)
    messages = db.relationship('Warbler',
                               lazy='dynamic',
                               backref=db.backref('user'))
    followed = db.relationship('User',
                               secondary=Followers,
                               primaryjoin=(Followers.c.follower_id == id),
                               secondaryjoin=(Followers.c.followed_id == id),
                               backref=db.backref('followers', lazy='dynamic'),
                               lazy='dynamic')

    def __init__(self, email, username, name, password, image_url):
        self.email = email
        self.username = username
        self.name = name
Esempio n. 26
0
from project import db, bcrypt

subs = db.Table(
    'subs',
    db.Column('user_id',
              db.Integer,
              db.ForeignKey('usuario.user_id'),
              primary_key=True),
    db.Column('grupo_id',
              db.Integer,
              db.ForeignKey('grupos.grupo_id'),
              primary_key=True))

element = db.Table(
    'element',
    db.Column('grupo_id',
              db.Integer,
              db.ForeignKey('grupos.grupo_id'),
              primary_key=True),
    db.Column('aparato_id',
              db.Integer,
              db.ForeignKey('aparatos.aparato_id'),
              primary_key=True))


class Usuario(db.Model):
    user_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String, nullable=False)
    lastname = db.Column(db.String, nullable=False)
    email = db.Column(db.String, nullable=False)
    password = db.Column(db.String, nullable=False)
Esempio n. 27
0
from project import db
# from project.tags.models import Tag # May not be necessary

MessageTags = db.Table(
    'messages_tags', db.Column('id', db.Integer, primary_key=True),
    db.Column('message_id', db.Integer,
              db.ForeignKey('messages.id', ondelete="cascade")),
    db.Column('tag_id', db.Integer, db.ForeignKey('tags.id',
                                                  ondelete="cascade")))


class Message(db.Model):

    __tablename__ = "messages"

    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.String(100))
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    tags = db.relationship('Tag',
                           secondary=MessageTags,
                           backref=db.backref('messages'))

    def __init__(self, content, user_id):
        self.content = content
        self.user_id = user_id

    # Set a custom string representation of message objects
    def __repr__(self):
        return f"User {self.user_id} wrote '{self.content}'"
Esempio n. 28
0
from project import db

UserMessages = db.Table(
    "user_messages",
    db.Column("id", db.Integer, primary_key=True),
    db.Column("user_id", db.Integer,
              db.ForeignKey("users.id", ondelete="cascade")),
    db.Column("message_id", db.Integer,
              db.ForeignKey("messages.id", ondelete="cascade")),
)

MessageTags = db.Table(
    "message_tags",
    db.Column("id", db.Integer, primary_key=True),
    db.Column("message_id", db.Integer,
              db.ForeignKey("messages.id", ondelete="cascade")),
    db.Column("tag_id", db.Integer, db.ForeignKey("tags.id",
                                                  ondelete="cascade")),
)


class User(db.Model):
    __tablename__ = "users"

    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.Text)
    last_name = db.Column(db.Text)
    messages = db.relationship("Message",
                               secondary=UserMessages,
                               backref=db.backref("users"))
Esempio n. 29
0
from project import db
import datetime

user_roles = db.Table('user_roles', db.Model.metadata,
                      db.Column('user_id', db.ForeignKey('users.id')),
                      db.Column('role_id', db.ForeignKey('roles.id')))
Esempio n. 30
0
from locale import currency
import os
from project import app, db
from sqlalchemy_searchable import SearchQueryMixin, make_searchable
from sqlalchemy_utils import UUIDType
from sqlalchemy_utils.types import TSVectorType
from time import time
import uuid

make_searchable()

try:
    if int(os.environ['TESTING']) == 1:
        restaurants_users = db.Table(
            'restaurants_users', db.Column('restaurants_id', db.Integer,
                                           db.ForeignKey('restaurants.id')),
            db.Column('users_id', db.Integer, db.ForeignKey('users.id')),
            db.PrimaryKeyConstraint('restaurants_id', 'users_id'))

        dishes_users = db.Table(
            'dishes_users',
            db.Column('dishes_id', db.Integer, db.ForeignKey('dishes.id')),
            db.Column('users_id', db.Integer, db.ForeignKey('users.id')),
            db.PrimaryKeyConstraint('dishes_id', 'users_id'))
except KeyError:
    restaurants_users = db.Table(
        'restaurants_users',
        db.Column('restaurants_id', UUIDType, db.ForeignKey('restaurants.id')),
        db.Column('users_id', UUIDType, db.ForeignKey('users.id')),
        db.PrimaryKeyConstraint('restaurants_id', 'users_id'))