コード例 #1
0
ファイル: Comment.py プロジェクト: Vncntmrchl/IMT-DCL-WEB
class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String(100), nullable=False)
    timestamp = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    post_id = db.Column(db.Integer, db.ForeignKey('post.id'), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)  # Author
    username = db.Column(db.String, nullable=False)  # Author, easier for username display, no circular import
コード例 #2
0
ファイル: item_favorite.py プロジェクト: bonybody/agri
class ItemFavorite(db.Model):
    __tablename__ = 'item_favorite'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    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'))
    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)


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

    @classmethod
    def getRecordByUserAndItemId(cls, item_id, user_id):
        record = cls.query.filter_by(user_id=user_id, item_id=item_id).first()
        current_app.logger.debug(record)
        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 CategorySchema(ma.SQLAlchemyAutoSchema):
#     class Meta:
#         model = Category
コード例 #3
0
ファイル: models.py プロジェクト: stelega/Project_IO
class SeanceModel(db.Model):
    __tablename__ = 'seance'

    seanceId = db.Column(UUID(as_uuid=True),
                         primary_key=True,
                         default=uuid.uuid4,
                         unique=True,
                         nullable=False)
    time = db.Column(db.Time, nullable=False)
    date = db.Column(db.Date, nullable=False)
    hallId = db.Column(UUID(as_uuid=True), db.ForeignKey('hall.hallId'))
    movieId = db.Column(UUID(as_uuid=True), db.ForeignKey('movie.movieId'))
    ticketsSold = db.Column(db.Integer, default=0)

    tickets = db.relationship("TicketModel", backref="seance")

    def __init__(self,
                 _id=None,
                 time=None,
                 date=None,
                 hallId=None,
                 movieId=None,
                 ticketsSold=None):
        self.id = _id or id
        self.time = time
        self.date = date
        self.hallId = hallId
        self.movieId = movieId
        self.ticketsSold = ticketsSold
コード例 #4
0
class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.Text)
    # Relationship Post <--> Comment
    post_id = db.Column(db.Integer, db.ForeignKey('post.id'))
    post = db.relationship('Post', back_populates='comments')
    # Relationship User <--> Comment
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
コード例 #5
0
ファイル: models.py プロジェクト: raphaelhamon/projetWEB
class Reservation(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    collect_date = db.Column(db.DateTime)
    reservation_time = db.Column(db.DateTime)
    paid = db.Column(db.Boolean)
    collected = db.Column(db.Boolean)
    pack = db.Column(db.Boolean)
    product_id = db.Column(db.Integer, db.ForeignKey('product.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
コード例 #6
0
ファイル: models.py プロジェクト: chardetm/ThroneMash
class MatchEnCours(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    id_personnage1 = db.Column(db.Integer, db.ForeignKey(Personnage.id))
    id_personnage2 = db.Column(db.Integer, db.ForeignKey(Personnage.id))

    def serialize(self):
        return {
            "id": self.id,
            "id_personnage1": self.id_personnage1,
            "id_personnage2": self.id_personnage2
        }
コード例 #7
0
class ItemImage(db.Model):
    __tablename__ = 'item_image'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    item_id = db.Column(
        db.Integer,
        db.ForeignKey('item.id', onupdate='CASCADE', ondelete='CASCADE'))
    url = db.Column(db.String(255), 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)

    def __init__(self, url='', item_id=None):
        self.url = url
        self.item_id = item_id

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

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


# class ItemImageSchema(ma.SQLAlchemyAutoSchema):
#     class Meta:
#         model = ItemImage
#         # load_instance = True
コード例 #8
0
ファイル: Post.py プロジェクト: Vncntmrchl/IMT-DCL-WEB
class Post(db.Model):
    id = db.Column(
        db.Integer, primary_key=True
    )  # Post id, will also be used for unique post url and image naming as we don't
    # have a dedicated server to store images for this project
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # Author id
    username = db.Column(
        db.String
    )  # Easier to display username this way (avoid circular import)
    date = db.Column(db.Date, default=datetime.now())
    image_name = db.Column(
        db.String
    )  # For local storage, post_id + file_extension (.jpg, .png ...)
    description = db.Column(db.Text)
    hearts = db.Column(db.Integer)  # The number of "likes" of the post
    current_user_liked_it = db.Column(
        db.Boolean
    )  # To know if the current user liked this post or not (no multiple likes)
    comments = db.relationship('Comment', backref='article', lazy=True)
    tags = db.Column(db.Text)

    def __init__(self,
                 user_id,
                 username,
                 image_name,
                 description,
                 tags,
                 hearts=0):
        self.user_id = user_id
        self.username = username
        self.image_name = image_name
        self.description = description
        self.hearts = hearts
        self.current_user_liked_it = False
        self.tags = tags
コード例 #9
0
ファイル: models.py プロジェクト: stelega/Project_IO
class TicketModel(db.Model):
    __tablename__ = 'ticket'
    __table_args__ = (db.UniqueConstraint(
        'seatId', 'seanceId', name='unique_ticket_seat_and_seance'), )
    ticketId = db.Column(UUID(as_uuid=True),
                         primary_key=True,
                         default=uuid.uuid4,
                         unique=True,
                         nullable=False)
    price = db.Column(db.Float)
    seatId = db.Column(UUID(as_uuid=True), db.ForeignKey('seat.seatId'))
    seanceId = db.Column(UUID(as_uuid=True), db.ForeignKey('seance.seanceId'))

    def __init__(self, _id=None, price=None, seatId=None, seanceId=None):
        self.id = _id or id
        self.price = price
        self.seatId = seatId
        self.seanceId = seanceId
コード例 #10
0
ファイル: models.py プロジェクト: mintiti/projet-web-app
class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order_date = db.Column(db.DateTime)
    delivery_date = db.Column(db.DateTime, nullable=True)
    delivered = db.Column(db.Boolean)
    validated = db.Column(db.Boolean)
    ordered_by = db.Column(db.Integer, db.ForeignKey('users.id'))
    paid = db.Column(db.Boolean)
    items = db.relationship("OrderItem")
コード例 #11
0
ファイル: models.py プロジェクト: chardetm/ThroneMash
class Match(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    id_gagnant = db.Column(db.Integer, db.ForeignKey(Personnage.id))
    ancien_elo_gagnant = db.Column(db.Float)
    nouvel_elo_gagnant = db.Column(db.Float)
    id_perdant = db.Column(db.Integer, db.ForeignKey(Personnage.id))
    ancien_elo_perdant = db.Column(db.Float)
    nouvel_elo_perdant = db.Column(db.Float)

    def serialize(self):
        return {
            "id": self.id,
            "id_gagnant": self.id_gagnant,
            "ancien_elo_gagnant": self.ancien_elo_gagnant,
            "nouvel_elo_gagnant": self.nouvel_elo_gagnant,
            "id_perdant": self.id_perdant,
            "ancien_elo_perdant": self.ancien_elo_perdant,
            "nouvel_elo_perdant": self.nouvel_elo_perdant
        }
コード例 #12
0
class Feedback(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    detail = db.Column(db.String, nullable=False)
    posted_at = db.Column(db.DateTime, default=datetime.now())
    talk_id = db.Column(db.Integer, db.ForeignKey(Talk.id), nullable=False)
    talks = db.relationship('Talk', lazy='select',
                            backref=db.backref('feedback_list', lazy='dynamic'))

    def __init__(self, detail, talk_id):
        self.detail = detail
        self.talk_id = talk_id

    def __repr__(self):
        return '<detail %r>' % self.detail
コード例 #13
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.Text)
    # Pour stocker l'image sous une suite de bytes BLOB. On encode l'encode en BLOB (app.py), elle est stocké dans la
    # database, puis elle sera décodé en BLOB lors de son affichage (homepage.html.jinja2)
    image_data = db.Column(db.BLOB)
    image_size = db.Column(db.Integer)
    tags = db.Column(db.Text)
    # Relationship User <--> Post
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    # Relationship Comment <--> Post
    # back-populates permet que lorsqu'on ajoute un commentaire il est aussi ajouté dans l'attribut comment de post
    comments = db.relationship('Comment', back_populates='post')
    # Relationship PostLike <--> Post
    # backref <=> comment on appel l'attribut de la jointure ici comment.post
    likes = db.relationship('PostLike', backref='post', lazy='dynamic')
コード例 #14
0
ファイル: models.py プロジェクト: stelega/Project_IO
class SeatModel(db.Model):
    __tablename__ = 'seat'

    seatId = db.Column(UUID(as_uuid=True),
                       primary_key=True,
                       default=uuid.uuid4,
                       unique=True,
                       nullable=False)
    number = db.Column(db.Integer)
    row = db.Column(db.Integer)
    hallId = db.Column(UUID(as_uuid=True), db.ForeignKey('hall.hallId'))
    tickets = db.relationship("TicketModel", backref="seat")

    def __init__(self, _id=None, number=None, row=None, hallId=None):
        self.id = _id or id
        self.number = number
        self.row = row
        self.hallId = hallId
コード例 #15
0
class Auth(db.Model):
    __tablename__ = 'auth'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_id = db.Column(
        db.Integer,
        db.ForeignKey('user.id', onupdate='CASCADE', ondelete='CASCADE'))
    email = db.Column(db.String(50), unique=True, nullable=False)
    password = db.Column(db.String(300), 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)

    def __init__(self, user_id='', email='', password=''):
        self.user_id = user_id
        self.email = email
        self.password = hashlib.sha256(password.encode('utf-8')).hexdigest()

    def setAttr(self, user_id='', email='', password=''):
        self.user_id = user_id
        self.email = email
        self.password = hashlib.sha256(password.encode('utf-8'))

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

    @classmethod
    def getRecordsAll(cls):
        records = cls.query.all()
        return records

    @classmethod
    def getRecordByEmail(cls, email):
        record = cls.query.filter_by(email=email).first()
        return record

    @classmethod
    def getRecordsByUserId(cls, user_id):
        record = cls.query.filter_by(user_id=user_id).first()
        return record
コード例 #16
0
ファイル: Followers.py プロジェクト: Vncntmrchl/IMT-DCL-WEB
from database.database import db

followers = db.Table(
    'followers', db.Column('follower_id', db.Integer,
                           db.ForeignKey('user.id')),
    db.Column('followed_id', db.Integer, db.ForeignKey('user.id')))
コード例 #17
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.Text)
    content = db.Column(db.Text)
    # Relationship User <--> Post
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
コード例 #18
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))
コード例 #19
0
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 == '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()
コード例 #20
0
ファイル: models.py プロジェクト: mintiti/projet-web-app
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)
コード例 #21
0
ファイル: models.py プロジェクト: mintiti/projet-web-app
class PrixMenu(db.Model):
    sandwich_principal = db.Column(db.Integer, db.ForeignKey('products.id'), primary_key=True)
    prix = db.Column(db.Float)
コード例 #22
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
コード例 #23
0
ファイル: models.py プロジェクト: mintiti/projet-web-app
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
コード例 #24
0
ファイル: models.py プロジェクト: mintiti/projet-web-app
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'))
コード例 #25
0
ファイル: models.py プロジェクト: mintiti/projet-web-app
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)
コード例 #26
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)
コード例 #27
0
ファイル: code_talk.py プロジェクト: jrodri0790/OpenSpaceApp
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)
                     )

コード例 #28
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'))
コード例 #29
0
ファイル: item_transaction.py プロジェクト: bonybody/agri
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