Exemple #1
0
class Photo(TimedBaseModel):
    __tablename__ = "photos"

    id = db.Column(db.Integer, primary_key=True, index=True, unique=True)
    url = db.Column(db.String)
    photo_id = db.Column(db.String)
    solution_id = db.Column(db.Integer, db.ForeignKey("solutions.id"))
Exemple #2
0
class Community(db.Model):
    __tablename__ = "communities"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    description = db.Column(db.Text, nullable=False)
    created_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.datetime.utcnow)
    updated_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.datetime.utcnow)

    posts = db.relationship("Post", back_populates="community")

    def to_simple_dict(self):
        return {
            "id": self.id,
            "name": self.name,
        }

    def to_dict(self):
        return {
            "id": self.id,
            "name": self.name,
            "description": self.description,
            "created_at": self.created_at,
        }
Exemple #3
0
class User(UserMixin, db.Model, ModelMixin):
    __tablename__ = "dashboard_users"

    id = db.Column(db.BigInteger(), primary_key=True)
    role = db.Column(db.String(255))

    def __repr__(self):
        return f"<id: {self.id}, role: {self.role}>"
Exemple #4
0
class ItemOption(TimedBaseModel, ItemRelatedModel):
    __tablename__ = "item_options"

    id = db.Column(
        db.Integer, autoincrement=True, primary_key=True, index=True, unique=True
    )
    price = db.Column(db.Float)
    calculated_price = db.Column(db.Float)
    condition = db.Column(sa.Enum(ItemCondition))
Exemple #5
0
class Lot(TimedBaseModel, UserRelatedModel, ItemRelatedModel):
    __tablename__ = "lots"

    id = db.Column(
        db.Integer, autoincrement=True, primary_key=True, index=True, unique=True
    )
    is_demand = db.Column(db.Boolean, default=expression.false())
    price = db.Column(db.Integer)
    status = db.Column(sa.Enum(LotStatus), default=LotStatus.created)
class Deal(TimedBaseModel, UserRelatedModel, LotRelatedModel):
    __tablename__ = "deals"

    id = db.Column(db.Integer,
                   autoincrement=True,
                   primary_key=True,
                   index=True,
                   unique=True)
    type = db.Column(sa.Enum(DealType), default=DealType.lot_tax)
Exemple #7
0
class Chat(TimedBaseModel):
    __tablename__ = "chats"

    id = db.Column(db.BigInteger, primary_key=True, index=True)
    type = db.Column(db.String)
    is_official = db.Column(db.Boolean, server_default=expression.false())

    language = db.Column(db.String(12), default="en")
    join_filter = db.Column(db.Boolean, server_default=expression.false())
Exemple #8
0
class LocalizedItem(TimedBaseModel, ItemRelatedModel):
    __tablename__ = "localized_items"

    id = db.Column(
        db.Integer, autoincrement=True, primary_key=True, index=True, unique=True
    )
    language = db.Column(db.String)
    item_name = db.Column(db.String, index=True)
    source_url = db.Column(db.String)
    image_url = db.Column(db.String)
Exemple #9
0
class WpAuthKey(db.Model):
    __tablename__ = "wpti_proxy_tmp_keys"

    id = db.Column(db.BigInteger(), primary_key=True)
    creation_time = db.Column(db.DateTime, default=datetime.datetime.utcnow)
    uuid = db.Column(db.String(60), nullable=False)
    role = db.Column(db.String(255))

    def __str__(self):
        return "<Uuid: %s>" % self.uuid
Exemple #10
0
class User(TimedBaseModel):
    __tablename__ = "users"

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

    is_superuser = db.Column(db.Boolean, server_default=expression.false())
    start_conversation = db.Column(db.Boolean,
                                   server_default=expression.false())
    do_not_disturb = db.Column(db.Boolean,
                               default=False,
                               server_default=expression.false(),
                               nullable=False)
Exemple #11
0
class Channel(TimedBaseModel):
    __tablename__ = "channels"

    id = db.Column(db.Integer, primary_key=True, index=True, unique=True)
    chat_id = db.Column(db.String)
    name = db.Column(db.String)
    publications_counter_total = db.Column(db.Integer, default=0)
    publications_counter_day = db.Column(db.Integer, default=0)
    last_publication_datetime = db.Column(db.DateTime,
                                          server_default=db.func.now())
    count_of_publications = db.Column(db.Integer, default=1)
    start_time_publications = db.Column(db.Time)
    end_time_publications = db.Column(db.Time)
    is_enable = db.Column(db.Boolean, server_default=expression.false())
Exemple #12
0
class Retailer(db.Model):
    __tablename__ = "retailers"

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    name = db.Column(db.String(50), nullable=False)
    description = db.Column(db.Text, nullable=False)
    city = db.Column(db.String(50), nullable=False)
    state = db.Column(db.String(25), nullable=False)
    lat = db.Column(db.Numeric(scale=7))
    lng = db.Column(db.Numeric(scale=7))
    created_at = db.Column(
        db.DateTime, nullable=False, default=datetime.datetime.utcnow
    )
    updated_at = db.Column(
        db.DateTime, nullable=False, default=datetime.datetime.utcnow
    )

    user = db.relationship("User", back_populates="retailers")
    images = db.relationship("RetailerImage", back_populates="retailer")
    ratings = db.relationship("RetailerRating", back_populates="retailer")

    def to_dict(self):
        return {
            "id": self.id,
            "owner": MinimalUserResponse.from_orm(self.user).dict(),
            "name": self.name,
            "description": self.description,
            "city": self.city,
            "state": self.state,
            "lat": float(self.lat or 0),
            "lng": float(self.lng or 0),
            "created_at": self.created_at,
            "images": [image.image_url for image in self.images],
            "ratings": {rating.user_id: rating.to_dict() for rating in self.ratings},
        }

    def to_simple_dict(self):
        return {
            "id": self.id,
            "owner": MinimalUserResponse.from_orm(self.user).dict(),
            "name": self.name,
            "description": self.description,
            "city": self.city,
            "state": self.state,
            "created_at": self.created_at,
            "ratings": [rating.to_dict() for rating in self.ratings],
        }
Exemple #13
0
class Post(TimedBaseModel):
    __tablename__ = "posts"

    id = db.Column(db.Integer, primary_key=True, index=True, unique=True)
    donor_id = db.Column(db.Integer, db.ForeignKey('donors.id'))
    channel_id = db.Column(db.Integer, db.ForeignKey('channels.id'))
    title = db.Column(db.String)
    photo = db.Column(db.ARRAY(db.String))
    video = db.Column(db.ARRAY(db.String))
    type = db.Column(db.String, default=0)
    publication_date = db.Column(db.DateTime)
    is_enable = db.Column(db.Boolean, server_default=expression.false())
Exemple #14
0
class UserRelatedModel(BaseModel):
    __abstract__ = True

    user_id = db.Column(
        db.ForeignKey(f"{User.__tablename__}.id", ondelete="CASCADE", onupdate="CASCADE"),
        nullable=False
    )
Exemple #15
0
class Thread(db.Model):
    __tablename__ = "threads"

    id = db.Column(db.Integer, primary_key=True)
    post_id = db.Column(db.Integer, db.ForeignKey("posts.id"), nullable=False)

    comments = db.relationship("Comment", back_populates="thread")
    post = db.relationship("Post", back_populates="threads")

    def to_dict(self):
        return {
            "id": self.id,
            "comments": {
                comment.id: comment.to_simple_dict() for comment in self.comments
            },
            "post_id": self.post_id,
        }
Exemple #16
0
class ItemOptionRelatedModel(BaseModel):
    __abstract__ = True

    item_option_id = db.Column(
        db.ForeignKey(
            f"{ItemOption.__tablename__}.id", ondelete="CASCADE", onupdate="CASCADE"
        ),
        nullable=False,
    )
Exemple #17
0
class LotRelatedModel(BaseModel):
    __abstract__ = True

    lot_id = db.Column(
        db.ForeignKey(
            f"{Lot.__tablename__}.id", ondelete="CASCADE", onupdate="CASCADE"
        ),
        nullable=False,
    )
Exemple #18
0
class Tag(db.Model):
    __tablename__ = "tags"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    description = db.Column(db.String(100), nullable=True)
    created_at = db.Column(
        db.DateTime, nullable=False, default=datetime.datetime.utcnow
    )
    updated_at = db.Column(
        db.DateTime, nullable=False, default=datetime.datetime.utcnow
    )

    def to_dict(self):
        return {
            "id": self.id,
            "name": self.name,
            "description": self.description,
            "created_at": self.created_at,
        }
Exemple #19
0
class Item(TimedBaseModel):
    __tablename__ = "items"

    id = db.Column(
        db.Integer, autoincrement=True, primary_key=True, index=True, unique=True
    )
    product_id = db.Column(db.Integer, index=True)
    source = db.Column(db.String)
    original_name = db.Column(db.String, index=True)
    set_name = db.Column(db.String, index=True)
    card_type = db.Column(db.String)
    rarity = db.Column(db.String)
    finish = db.Column(db.String)
Exemple #20
0
class PostsImage(db.Model):
    __tablename__ = "posts_images"

    id = db.Column(db.Integer, primary_key=True)
    post_id = db.Column(db.Integer, db.ForeignKey("posts.id"), nullable=False)
    image_url = db.Column(db.String, nullable=False)
    created_at = db.Column(db.DateTime, default=datetime.datetime.utcnow)
    updated_at = db.Column(db.DateTime, default=datetime.datetime.utcnow)

    post = db.relationship("Post", back_populates="images")

    def to_dict(self):
        return {
            "id": self.id,
            "post_id": self.post_id,
            "image_url": self.image_url,
            "created_at": self.created_at,
            "updated_at": self.updated_at,
            "post": self.post.to_dict(),
        }
Exemple #21
0
class Donor(TimedBaseModel):
    __tablename__ = "donors"

    id = db.Column(db.Integer, primary_key=True, index=True, unique=True)
    type = db.Column(db.String)
    name = db.Column(db.String)
    link = db.Column(db.String)
    parsing_rate = db.Column(db.Integer, default=0)
    is_enable = db.Column(db.Boolean, server_default=expression.false())
    channel_id = db.Column(db.Integer, db.ForeignKey('channels.id'))
Exemple #22
0
class PostRating(db.Model):
    __tablename__ = "post_ratings"

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    post_id = db.Column(db.Integer, db.ForeignKey("posts.id"), nullable=False)
    rating = db.Column(db.Integer, nullable=False)
    created_at = db.Column(
        db.DateTime, nullable=False, default=datetime.datetime.utcnow
    )
    updated_at = db.Column(
        db.DateTime, nullable=False, default=datetime.datetime.utcnow
    )

    user = db.relationship("User")
    post = db.relationship("Post", back_populates="ratings")

    def to_simple_dict(self):
        return {
            "user_id": self.user_id,
            "rating": self.rating,
        }

    def to_dict(self):
        return {
            "id": self.id,
            "user": MinimalUserResponse.from_orm(self.user).dict(),
            "post": self.post.to_simple_dict(),
            "rating": self.rating,
        }
Exemple #23
0
class Message(db.Model):
    __tablename__ = "messages"

    id = db.Column(db.Integer, primary_key=True)
    sender_id = db.Column(db.Integer,
                          db.ForeignKey("users.id"),
                          nullable=False)
    recipient_id = db.Column(db.Integer,
                             db.ForeignKey("users.id"),
                             nullable=False)
    body = db.Column(db.String(255), nullable=False)
    created_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.datetime.utcnow)
    updated_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.datetime.utcnow)

    sender = db.relationship("User",
                             foreign_keys=[sender_id],
                             back_populates="sent_messages")
    recipient = db.relationship("User",
                                foreign_keys=[recipient_id],
                                back_populates="received_messages")

    def to_dict(self):
        return {
            "id": self.id,
            "sender": MinimalUserResponse.from_orm(self.sender).dict(),
            "recipient": MinimalUserResponse.from_orm(self.recipient).dict(),
            "created_at": self.created_at,
        }
Exemple #24
0
class RetailerImage(db.Model):
    __tablename__ = "retailer_images"

    id = db.Column(db.Integer, primary_key=True)
    retailer_id = db.Column(db.Integer,
                            db.ForeignKey("retailers.id"),
                            nullable=False)
    image_url = db.Column(db.String, nullable=False)
    created_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.datetime.utcnow)
    updated_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.datetime.utcnow)

    retailer = db.relationship("Retailer", back_populates="images")

    def to_dict(self):
        return {
            "id": self.id,
            "retailer_id": self.retailer_id,
            "image_url": self.image_url,
            "created_at": self.created_at,
        }
Exemple #25
0
class Band(db.Model):
    __tablename__ = 'band'
    id = db.Column(db.Integer, primary_key=True, index=True)
    name = db.Column(db.String(30))  #not null
    state = db.Column(db.Integer, db.ForeignKey('state.id'))  #not null
    pic = db.Column(db.String(200))
    review = db.Column(db.String(5000))

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

    def __repr__(self):
        return \
            '<name %r, state %r' % (
                self.name, self.state)

    def createBand(self, name, state):
        logging.info('Creando Banda: %r' % name)

        checkBandName = len(name) <= properties.maxBandName

        if checkBandName:

            band = Band(name, state)
            logging.info('Banda creada')
            return band.save()
        else:
            logging.info("Error creando banda")
            return properties.responsaBandNotCreated

    def getBands(self):
        logging.info("Obteniendo bandas")
        result = self.query.all()
        return result

    def getBandsByStateId(self, state):
        logging.info('Obteniendo bandas por estado: %r' % state)
        bands = self.query.filter_by(state=state).all()
        return bands

    def getBandsByName(self, name):
        logging.info('Obteniendo bandas por nombre: %r' % name)
        bands = self.query.filter(Band.name.like("%name%")).all()
        return bands

    def getBandById(self, id):
        logging.info('Obteniendo banda por id: %r' % id)
        band = self.query.filter_by(id=id).first()
        return band

    def setBandPic(self, pic):
        self.pic = pic

    def setBandReview(self, review):
        self.review = review

    def update(self):
        try:
            db.session.commit()
            return properties.responseBandUpdated
        except:
            db.session.rollback()
            return properties.responseBandNotUpdated

    def save(self):
        try:
            db.session.add(self)

            db.session.commit()
            return properties.responseBandCreated
        except:
            db.session.rollback()
            return properties.responseBandNotCreated

    def delete(self):
        try:
            band = self.getBandById(self.id)
            db.session.delete(band)

            db.session.commit()
            return properties.responseBandDeleted
        except:
            db.session.rollback()
            return properties.responseBandNotDeleted
class User(TimedBaseModel):
    __tablename__ = "users"

    user_id = db.Column(db.Integer, primary_key=True, index=True, unique=True)
Exemple #27
0
from app.models.db import db

saved_comments = db.Table(
    "saved_comments",
    db.Model.metadata,
    db.Column("user_id", db.Integer, db.ForeignKey("users.id"),
              nullable=False),
    db.Column("comment_id",
              db.Integer,
              db.ForeignKey("comments.id"),
              nullable=False),
)
Exemple #28
0
class Meetup(db.Model):
    __tablename__ = "meetups"

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    name = db.Column(db.String(50), nullable=False)
    description = db.Column(db.Text, nullable=False)
    city = db.Column(db.String(50), nullable=False)
    state = db.Column(db.String(25), nullable=False)
    lat = db.Column(db.Numeric(scale=7))
    lng = db.Column(db.Numeric(scale=7))
    date = db.Column(db.DateTime, nullable=False)
    created_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.datetime.utcnow)
    updated_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.datetime.utcnow)

    user = db.relationship("User", back_populates="meetups")

    def to_dict(self):
        return {
            "id": self.id,
            "user": MinimalUserResponse.from_orm(self.user).dict(),
            "name": self.name,
            "description": self.description,
            "city": self.city,
            "state": self.state,
            "lat": float(self.lat or 0),
            "lng": float(self.lng or 0),
            "date": self.date,
            "created_at": self.created_at,
            "updated_at": self.updated_at,
        }
Exemple #29
0
class User(TimedBaseModel):
    __tablename__ = "users"

    user_id = db.Column(db.Integer, primary_key=True, index=True, unique=True)
    grade = db.Column(db.Integer)
    subject = db.Column(db.String)
    author = db.Column(db.String)
    specification = db.Column(db.String)
    year = db.Column(db.Integer)
    main_topic = db.Column(db.String)
    sub_topic = db.Column(db.String)
    sub_sub_topic = db.Column(db.String)
    exercise = db.Column(db.String)

    is_blocked = db.Column(db.Boolean)
    is_subscribed_to_notifications = db.Column(db.Boolean, default=True)
Exemple #30
0
class New(db.Model):
    __tablename__ = 'new'
    id = db.Column(db.Integer, primary_key=True, index=True)
    type = db.Column(db.String(30))
    date = db.Column(db.DateTime, default=datetime.datetime.now())
    title = db.Column(db.String(100))
    pic = db.Column(db.String(200))
    content = db.Column(db.String(5000))

    def __init__(self, type, date, title, pic, content):
        self.type = type
        self.date = date
        self.title = title
        self.pic = pic
        self.content = content

    def __repr__(self):
        return \
            '<title %r, date %r>' % (
                self.title, self.date)

    def createNew(self, type, date, title, pic, content):
        logging.info('Creando Noticia: %r' % title)

        checkNewType = type in properties.newTypes

        if checkNewType:

            new = New(type, date, title, pic, content)
            res = new.save()
            logging.info('Noticia creada')
            return res
        else:
            logging.info('Error al crear noticia')
            return properties.responseNewInvalidType

    def getNews(self, type):
        logging.info("Obteniendo noticia")
        result = self.query.filter(New.type.like(type)).all()
        return result

    def getNewById(self, id):
        logging.info('Obteniendo noticia por id: %r' % id)
        new = self.query.filter_by(id=id).first()
        return new

    def getNewsByDate(self, type, startDate, endDate):
        logging.info('Obteniendo noticia por fecha: %r hasta %r ' %
                     (startDate, endDate))
        if startDate is None:
            news = self.query.filter(
                and_(New.date <= endDate, New.type == type)).all()
        else:
            news = self.query.filter(
                and_(New.date <= endDate, New.date >= startDate,
                     New.type == type)).all()
        return news

    def getNewsByTitle(self, type, title):
        logging.info('Obteniendo noticia por titulo: %r' % title)
        news = self.query.filter(
            and_(New.name.like("%name%"), New.type == type)).all()
        return news

    def update(self):
        try:
            db.session.commit()
            return properties.responseNewUpdated
        except:
            db.session.rollback()
            return properties.responseNewNotUpdated

    def save(self):
        db.session.add(self)
        try:
            db.session.commit()
            return properties.responseNewCreated
        except:
            db.session.rollback()
            return properties.responseNewNotCreated

    def delete(self):
        try:
            new = self.getBandById(self.id)
            db.session.delete(new)

            db.session.commit()
            return properties.responseNewDeleted
        except:
            db.session.rollback()
            return properties.responseNewNotDeleted