class PrixMenu(db.Model): sandwich_principal = db.Column(db.Integer, db.ForeignKey('products.id'), primary_key=True) prix = db.Column(db.Float)
def email(cls): return cls.__table__.c.get('email', db.Column(db.String, default=''))
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 Ingredients(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text)
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) )
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)
class WorstPlayers(db.Model): id = db.Column(db.Integer, primary_key=True) worst_players = db.Column(db.String, unique=False)
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
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
class TotalPlayers(db.Model): id = db.Column(db.Integer, primary_key=True) total_players = db.Column(db.Integer, unique=False)
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')
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))
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()
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)
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)
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'))
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)
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)
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)
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
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)
class Sport(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text)
def time(cls): return cls.__table__.c.get( 'time', db.Column(db.TIMESTAMP, default=datetime.utcnow))
class Player(db.Model): id = db.Column(db.Integer, primary_key=True) firstname = db.Column(db.Text) lastname = db.Column(db.Text)
def diseases(cls): return cls.__table__.c.get('diseases', db.Column(JsonEncodedDict))
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'))
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)
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)
def name(cls): return cls.__table__.c.get('name', db.Column(db.String, default=''))