Ejemplo n.º 1
0
class PrixMenu(db.Model):
    sandwich_principal = db.Column(db.Integer, db.ForeignKey('products.id'), primary_key=True)
    prix = db.Column(db.Float)
Ejemplo n.º 2
0
 def email(cls):
     return cls.__table__.c.get('email', db.Column(db.String, default=''))
Ejemplo n.º 3
0
class Team(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text)
    sport_id = db.Column(db.Integer, db.ForeignKey('sport.id'))
    sport = db.relationship('Sport', backref='teams')  # Sport <-> Team relationship
    players = db.relationship('Player', backref='teams', secondary=junction_table)  # Sport <-> Player relationship
Ejemplo n.º 4
0
class Ingredients(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text)
Ejemplo n.º 5
0
from database.database import db
from models.code import Code
from models.talk import Talk

code_talk = db.Table('code_talk',
                     db.Column('code_id', db.String, db.ForeignKey(Code.id), primary_key=True),
                     db.Column('talk_id', db.Integer, db.ForeignKey(Talk.id), primary_key=True)
                     )

Ejemplo n.º 6
0
import datetime

# Constants
SANDWICH = 0
DRINK = 1
DESSERT = 2
MENU = 3


class Sport(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text)


junction_table = db.Table('participation',
                          db.Column('team_id', db.Integer, db.ForeignKey('team.id')),
                          db.Column('player_id', db.Integer, db.ForeignKey('player.id')),
                          )


class Team(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text)
    sport_id = db.Column(db.Integer, db.ForeignKey('sport.id'))
    sport = db.relationship('Sport', backref='teams')  # Sport <-> Team relationship
    players = db.relationship('Player', backref='teams', secondary=junction_table)  # Sport <-> Player relationship


class Player(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    firstname = db.Column(db.Text)
Ejemplo n.º 7
0
class WorstPlayers(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    worst_players = db.Column(db.String, unique=False)
Ejemplo n.º 8
0
class ItemTransaction(db.Model):
    __tablename__ = 'item_transaction'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    item_id = db.Column(db.Integer, db.ForeignKey('item.id', onupdate='CASCADE', ondelete='CASCADE'))  # 出品者id
    seller_id = db.Column(db.Integer, db.ForeignKey('user.id', onupdate='CASCADE', ondelete='CASCADE'))  # 出品者id
    buyer_id = db.Column(db.Integer, db.ForeignKey('user.id', onupdate='CASCADE', ondelete='CASCADE'))  # 購入者id
    set_count = db.Column(db.Integer, nullable=False)  # 販売数
    state = db.Column(db.Integer, nullable=False, default=0)
    created_at = db.Column(db.DateTime, nullable=False, default=datetime.now)
    updated_at = db.Column(db.DateTime, nullable=False, default=datetime.now, onupdate=datetime.now)
    seller = db.relationship(
        'User',
        primaryjoin="ItemTransaction.seller_id==User.id")
    buyer = db.relationship(
        'User',
        primaryjoin="ItemTransaction.buyer_id==User.id")

    def __init__(self, item_id='', seller_id='', buyer_id='', set_count='', state=0):
        self.item_id = item_id
        self.seller_id = seller_id
        self.buyer_id = buyer_id
        self.set_count = set_count
        self.state = state

    def postRecord(self):
        db.session.add(self)
        db.session.commit()
        db.session.refresh(self)

    @classmethod
    def getRecordById(cls, transaction_id):
        record = cls.query.filter_by(id=transaction_id).first()
        return record

    @classmethod
    def getRecordsByItemId(cls, item_id):
        records = cls.query.filter_by(item_id=item_id).all()
        return records

    @classmethod
    def getRecordsBySellerIdStateSold(cls, seller_id):
        records = cls.query.filter_by(seller_id=seller_id, state=2).all()
        return records

    @classmethod
    def getRecordsBySellerId(cls, seller_id):
        records = cls.query.filter_by(seller_id=seller_id).all()
        return records

    @classmethod
    def getRecordsByBuyerId(cls, buyer_id):
        records = cls.query.filter_by(buyer_id=buyer_id).all()
        return records

    @classmethod
    def getSalesDetailBySellerId(cls, seller_id, item_model):
        record = db.session.query(func.sum(item_model.price * cls.set_count)).\
            select_from(cls).\
            filter(and_(seller_id==seller_id, cls.state==2)).\
            outerjoin(item_model, item_model.id == cls.item_id).\
            group_by(cls.buyer_id).\
            first()
        return record
Ejemplo n.º 9
0
class Item(db.Model):
    __tablename__ = 'item'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(20), nullable=False)  # 商品名
    description = db.Column(db.Text)  # 商品説明文
    period = db.Column(db.Integer, nullable=False)  # 販売日数
    remaining_days = db.Column(db.Integer, nullable=False)
    remaining_format_id = db.Column(
        db.Integer,
        db.ForeignKey('remaining_format.id',
                      onupdate='CASCADE',
                      ondelete='CASCADE'))
    category_id = db.Column(db.Integer,
                            db.ForeignKey('category.id',
                                          onupdate='CASCADE',
                                          ondelete='CASCADE'))  # 設定したカテゴリのID
    shipment = db.Column(db.Integer, nullable=False)  # 配送にかかる時間(日)
    price = db.Column(db.Integer, nullable=False)  # 商品の値段
    volume = db.Column(db.String(10), nullable=False)  # 商品の1セットあたりの量
    area = db.Column(db.String(50), nullable=False)
    state = db.Column(db.Integer, default=1)  # 商品の状態
    user_id = db.Column(
        db.Integer,
        db.ForeignKey('user.id', onupdate='CASCADE', ondelete='CASCADE'))

    created_at = db.Column(db.DateTime, nullable=False, default=datetime.now)
    updated_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.now,
                           onupdate=datetime.now)
    images = db.relationship('ItemImage', backref='item', lazy="joined")
    item_transactions = db.relationship('ItemTransaction', backref='item')
    favorites = db.relationship('ItemFavorite', backref='item')

    # koes = db.relationship('Koe', backref='item')

    def __init__(self,
                 name=None,
                 description=None,
                 period=None,
                 remaining_days=None,
                 remaining_format_id=None,
                 category_id=None,
                 shipment=None,
                 price=None,
                 volume='',
                 area='',
                 state=None,
                 user_id=None):
        self.name = name
        self.description = description
        self.period = period
        self.remaining_days = remaining_days
        self.remaining_format_id = remaining_format_id
        self.category_id = category_id
        self.shipment = shipment
        self.price = price
        self.volume = volume
        self.area = area
        self.state = state
        self.user_id = user_id

    def postRecord(self):
        db.session.add(self)
        db.session.commit()

    @classmethod
    def getProductById(cls, item_id, user_id=0):
        record = db.session.query(
            cls, func.count(ItemFavorite.id),
            func.sum(ItemTransaction.set_count).label('remaining_set_count')
        ).select_from(cls).filter(cls.id == item_id).outerjoin(
            ItemTransaction,
            and_(
                ItemTransaction.item_id == cls.id,
                or_(
                    cls.remaining_format.has(name='whole'),
                    and_(cls.remaining_format.has(name='week'),
                         ItemTransaction.created_at >= monday,
                         ItemTransaction.created_at <= sunday),
                    and_(cls.remaining_format.has(name='month'),
                         ItemTransaction.created_at >= month_first,
                         ItemTransaction.created_at <= month_last),
                    and_(cls.remaining_format.has(name='day'),
                         ItemTransaction.created_at >= day_first,
                         ItemTransaction.created_at <= day_last)))).outerjoin(
                             ItemFavorite,
                             and_(ItemFavorite.item_id == cls.id,
                                  ItemFavorite.user_id == user_id)).group_by(
                                      cls.id).first()
        return record

    @classmethod
    def getItemsBySearch(cls, user_id, args):
        current_app.logger.debug(args)
        order_by = False
        records = db.session.query(
            cls, func.count(ItemFavorite.id),
            func.sum(ItemTransaction.set_count).label(
                'remaining_set_count')).select_from(cls)
        for k, v in args.items():
            if (k == 'text'):
                records = records.filter(
                    or_(cls.name.like('%' + v + '%'),
                        cls.description.like('%' + v + '%'),
                        cls.area.like('%' + v + '%')))
            if (k == 'category'):
                records = records.filter(cls.category_id == v)

            if (k == 'order_by'):
                order_by = v

                if (int(v) == 1):
                    current_app.logger.debug(order_by)
                    records = records.order_by(desc(cls.updated_at))

        records = records.outerjoin(
            ItemTransaction,
            and_(
                ItemTransaction.item_id == cls.id,
                or_(
                    cls.remaining_format.has(name='whole'),
                    and_(cls.remaining_format.has(name='week'),
                         ItemTransaction.created_at >= monday,
                         ItemTransaction.created_at <= sunday),
                    and_(cls.remaining_format.has(name='month'),
                         ItemTransaction.created_at >= month_first,
                         ItemTransaction.created_at <= month_last),
                    and_(cls.remaining_format.has(name='day'),
                         ItemTransaction.created_at >= day_first,
                         ItemTransaction.created_at <= day_last)))).outerjoin(
                             ItemFavorite,
                             and_(ItemFavorite.item_id == cls.id,
                                  ItemFavorite.user_id == user_id)).group_by(
                                      cls.id).order_by(desc(
                                          cls.updated_at)).all()

        return records

    @classmethod
    def getItemsByFavorite(cls, user_id=0):
        records = db.session.query(
            cls, func.count(ItemFavorite.id),
            func.sum(ItemTransaction.set_count).label('remaining_set_count')
        ).select_from(cls).filter(
            cls.favorites.any(user_id=user_id)).outerjoin(
                ItemTransaction,
                and_(
                    ItemTransaction.item_id == cls.id,
                    or_(
                        cls.remaining_format.has(name='whole'),
                        and_(cls.remaining_format.has(name='week'),
                             ItemTransaction.created_at >= monday,
                             ItemTransaction.created_at <= sunday),
                        and_(cls.remaining_format.has(name='month'),
                             ItemTransaction.created_at >= month_first,
                             ItemTransaction.created_at <= month_last),
                        and_(
                            cls.remaining_format.has(name='day'),
                            ItemTransaction.created_at >= day_first,
                            ItemTransaction.created_at <=
                            day_last)))).outerjoin(
                                ItemFavorite,
                                and_(
                                    ItemFavorite.item_id == cls.id,
                                    ItemFavorite.user_id == user_id)).group_by(
                                        cls.id).order_by(desc(
                                            cls.updated_at)).all()

        return records

    @classmethod
    def getItemsByNew(cls, user_id=0):
        records = db.session.query(
            cls, func.count(ItemFavorite.id),
            func.sum(ItemTransaction.set_count).label('remaining_set_count')
        ).select_from(cls).outerjoin(
            ItemTransaction,
            and_(
                ItemTransaction.item_id == cls.id,
                or_(
                    cls.remaining_format.has(name='whole'),
                    and_(cls.remaining_format.has(name='week'),
                         ItemTransaction.created_at >= monday,
                         ItemTransaction.created_at <= sunday),
                    and_(cls.remaining_format.has(name='month'),
                         ItemTransaction.created_at >= month_first,
                         ItemTransaction.created_at <= month_last),
                    and_(cls.remaining_format.has(name='day'),
                         ItemTransaction.created_at >= day_first,
                         ItemTransaction.created_at <= day_last)))).outerjoin(
                             ItemFavorite,
                             and_(ItemFavorite.item_id == cls.id,
                                  ItemFavorite.user_id == user_id)).group_by(
                                      cls.id).order_by(desc(
                                          cls.updated_at)).all()

        return records

    @classmethod
    def getItemsByUserId(cls, user_id=0):
        records = db.session.query(
            cls, func.count(ItemFavorite.id),
            func.sum(ItemTransaction.set_count).label('remaining_set_count')
        ).select_from(cls).filter(cls.user_id == user_id).outerjoin(
            ItemTransaction,
            and_(
                ItemTransaction.item_id == cls.id,
                or_(
                    cls.remaining_format.has(name='whole'),
                    and_(cls.remaining_format.has(name='week'),
                         ItemTransaction.created_at >= monday,
                         ItemTransaction.created_at <= sunday),
                    and_(cls.remaining_format.has(name='month'),
                         ItemTransaction.created_at >= month_first,
                         ItemTransaction.created_at <= month_last),
                    and_(cls.remaining_format.has(name='day'),
                         ItemTransaction.created_at >= day_first,
                         ItemTransaction.created_at <= day_last)))).outerjoin(
                             ItemFavorite,
                             and_(ItemFavorite.item_id == cls.id,
                                  ItemFavorite.user_id == user_id)).group_by(
                                      cls.id).order_by(desc(
                                          cls.updated_at)).all()

        return records
Ejemplo n.º 10
0
class TotalPlayers(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    total_players = db.Column(db.Integer, unique=False)
Ejemplo n.º 11
0
class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text)
    description = db.Column(db.Text)
    available_quantity_mon = db.Column(db.Integer)
    available_quantity_tue = db.Column(db.Integer)
    available_quantity_wed = db.Column(db.Integer)
    available_quantity_thu = db.Column(db.Integer)
    available_quantity_fri = db.Column(db.Integer)
    price = db.Column(db.Float)
    price_in_pack = db.Column(db.Float)
    image_format = db.Column(db.Text)
    reservations = db.relationship('Reservation',
                                   backref='product',
                                   lazy='dynamic')
Ejemplo n.º 12
0
class User(db.Model):
    userID = db.Column(db.Integer, primary_key=True)
    teamID = db.Column(db.Integer, db.ForeignKey('teams.teamID'))
    emailAddress = db.Column(db.String(255))
Ejemplo n.º 13
0
Archivo: koe.py Proyecto: bonybody/agri
class Koe(db.Model):
    __tablename__ = 'koe'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(25), nullable=False)
    text = db.Column(db.Text, nullable=False)
    created_at = db.Column(db.DateTime, nullable=False, default=datetime.now)
    updated_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.now,
                           onupdate=datetime.now)
    user_id = db.Column(
        db.Integer,
        db.ForeignKey('user.id', onupdate='CASCADE', ondelete='CASCADE'))
    item_id = db.Column(
        db.Integer,
        db.ForeignKey('item.id', onupdate='CASCADE', ondelete='CASCADE'))
    item = db.relationship('Item',
                           primaryjoin='Koe.item_id==Item.id',
                           backref='koes')
    favorites = db.relationship('KoeFavorite', backref='koe')

    def __init__(self, title='', text='', user_id='', item_id=''):
        self.title = title
        self.text = text
        self.user_id = user_id
        self.item_id = item_id

    def postRecord(self):
        db.session.add(self)
        db.session.commit()
        return self

    @classmethod
    def getRecordById(cls, koe_id):
        record = cls.query.filter_by(id=koe_id).first()
        return record

    @classmethod
    def getRecordsBySearch(cls, args):
        records = cls.query
        for k, v in args.items():
            if (k == 'text'):
                records = records.filter(
                    or_(cls.title.like('%' + v + '%'),
                        cls.text.like('%' + v + '%')))
            if (k == 'category'):
                records = records.filter(and_(cls.item.has(category_id=v)))
            if (k == 'order_by'):
                order_by = v

                if (int(v) == 1):
                    current_app.logger.debug(order_by)
                    records = records.order_by(desc(cls.updated_at))

        records = records.all()
        return records

    @classmethod
    def getRecordsByItem(cls, item_id):
        record = cls.query.filter_by(item_id=item_id).order_by(
            desc(cls.updated_at)).all()
        return record

    @classmethod
    def getRecordsByPostUser(cls, user_id):
        record = cls.query.filter_by(user_id=user_id).order_by(
            desc(cls.updated_at)).all()
        return record

    @classmethod
    def getRecordsByCatchUser(cls, user_id):
        record = cls.query.filter(cls.item.has(user_id=user_id)).order_by(
            desc(cls.updated_at)).all()
        return record

    @classmethod
    def getRecordsByNew(cls):
        record = cls.query.order_by(desc(cls.updated_at)).all()
        return record

    @classmethod
    def addTestData(cls):
        categories = []
        data_lists = ['grain', 'vegetable', 'fruit', 'other']
        for data in data_lists:
            categories.append(cls(data))

        db.session.add_all(categories)
        db.session.commit()
Ejemplo n.º 14
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    email = db.Column(db.String(120), index=True, unique=True)
    password = db.Column(db.String(128))
    authenticated = db.Column(db.Boolean, default=False)
    # Relationship User <--> Post
    posts = db.relationship('Post', backref='authorPost', lazy='dynamic')
    # Relationship User <--> Post
    comments = db.relationship('Comment', backref='authorComment', lazy='dynamic')
    liked_posts = db.relationship('PostLike', foreign_keys='PostLike.user_id', backref='user', lazy='dynamic')
    followers = db.relationship('Follow', foreign_keys=[Follow.followed_id], backref="followed", lazy='dynamic')
    followed = db.relationship('Follow', foreign_keys=[Follow.follower_id], backref="follower", lazy='dynamic')

    def is_active(self):
        return True

    def get_id(self):
        return self.email

    def is_authenticated(self):
        return self.authenticated

    def is_following(self, user):
        if user.id is None:
            return False
        return self.followed.filter_by(followed_id=user.id).first() is not None

    def is_followed_by(self, user):
        if user.id is None:
            return False
        return self.followers.filter_by(follower_id=user.id).first() is not None

    def follow(self, user):
        if not self.is_following(user):
            f = Follow(follower_id=self.id, followed_id=user.id)
            db.session.add(f)

    def unfollow(self, user):
        f = self.followed.filter_by(followed_id=user.id).first()
        if f:
            db.session.delete(f)

    def like_post(self, post):
        if not self.has_liked_post(post):
            like = PostLike(user_id=self.id, post_id=post.id)
            db.session.add(like)

    def unlike_post(self, post):
        if self.has_liked_post(post):
            PostLike.query.filter_by(
                user_id=self.id,
                post_id=post.id).delete()

    def has_liked_post(self, post):
        return PostLike.query.filter(
            PostLike.user_id == self.id,
            PostLike.post_id == post.id).count() > 0

    def __repr__(self):
        return '<User {}>'.format(self.username)
Ejemplo n.º 15
0
class AvgHeightWeight(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    average_height = db.Column(db.String, unique=False)
    average_weight = db.Column(db.String, unique=False)
Ejemplo n.º 16
0
class PostLike(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    post_id = db.Column(db.Integer, db.ForeignKey('post.id'))
Ejemplo n.º 17
0
class Correlation(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    age_rating_correlation = db.Column(db.Float, unique=False)
    age_pace_correlation = db.Column(db.Float, unique=False)
    pass_short_long_correlation = db.Column(db.Float, unique=False)
Ejemplo n.º 18
0
class Client(db.Model):
    id_c = db.Column(db.Integer, primary_key=True)
    nom_client = db.Column(db.Text)
    prenom_client = db.Column(db.Text)
Ejemplo n.º 19
0
class Variance(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    variance = db.Column(db.String, unique=False)
    standard_dev = db.Column(db.String, unique=False)
Ejemplo n.º 20
0
class User(db.Model):
    __tablename__ = 'user'
    __table_args__ = {'extend_existing': True}
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    display_name = db.Column(db.String(15), nullable=False)
    image = db.Column(db.String(255))
    name = db.Column(db.String(50), nullable=False)
    name_ruby = db.Column(db.String(50), nullable=False)
    birthday = db.Column(db.Date)
    payment = db.Column(db.String(255))
    created_at = db.Column(db.DateTime, nullable=False, default=datetime.now)
    updated_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.now,
                           onupdate=datetime.now)
    auth = db.relationship('Auth', backref='user')
    items = db.relationship('Item', backref='user')
    koes = db.relationship('Koe', backref='user')
    item_favorites = db.relationship('ItemFavorite', backref='user')
    koe_favorites = db.relationship('KoeFavorite', backref='user')

    def __init__(self,
                 display_name='',
                 image='',
                 name='',
                 name_ruby='',
                 birthday='',
                 payment=''):
        self.display_name = display_name
        self.image = image
        self.name = name
        self.name_ruby = name_ruby
        self.birthday = birthday
        self.payment = payment

    def setAttr(self,
                display_name='',
                image='',
                name='',
                name_ruby='',
                birthday='',
                payment=''):
        self.display_name = display_name
        self.image = image
        self.name = name
        self.name_ruby = name_ruby
        self.birthday = birthday
        self.payment = payment

    def postRecord(self):
        db.session.add(self)
        db.session.commit()
        return self

    def getUserInfo(self, user_id):
        record = db.session.query(self).filter_by(id=user_id).first()
        return record

    @classmethod
    def getUserInfo(cls, user_id):
        record = db.session.query(cls).filter_by(id=user_id).first()
        return record


# class UserSchema(ma.SQLAlchemyAutoSchema):
#     class Meta:
#         model = User
Ejemplo n.º 21
0
class Age(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    average_age = db.Column(db.Integer, unique=False)
    min_age = db.Column(db.Integer, unique=False)
    max_age = db.Column(db.Integer, unique=False)
Ejemplo n.º 22
0
class Sport(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text)
Ejemplo n.º 23
0
 def time(cls):
     return cls.__table__.c.get(
         'time', db.Column(db.TIMESTAMP, default=datetime.utcnow))
Ejemplo n.º 24
0
class Player(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    firstname = db.Column(db.Text)
    lastname = db.Column(db.Text)
Ejemplo n.º 25
0
 def diseases(cls):
     return cls.__table__.c.get('diseases', db.Column(JsonEncodedDict))
Ejemplo n.º 26
0
class Menu(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    sandwich = db.Column(db.Integer, db.ForeignKey('products.id'))
    boisson = db.Column(db.Integer, db.ForeignKey('products.id'))
    dessert = db.Column(db.Integer, db.ForeignKey('products.id'))
Ejemplo n.º 27
0
class Follow(db.Model):
    follower_id = db.Column(db.Integer, db.ForeignKey('user.id'), primary_key=True)
    followed_id = db.Column(db.Integer, db.ForeignKey('user.id'), primary_key=True)
Ejemplo n.º 28
0
class OrderItem(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order_id = db.Column(db.Integer, db.ForeignKey('order.id'))
    item = db.Column(db.Integer, db.ForeignKey('products.id'))
    quantity = db.Column(db.Integer)
Ejemplo n.º 29
0
 def name(cls):
     return cls.__table__.c.get('name', db.Column(db.String, default=''))