Ejemplo n.º 1
0
class UserDto(db.Model):
    __tablename__ = "user"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}  # 한글 인코딩

    userid: str = db.Column(db.String(20), primary_key=True, index=True)
    password: str = db.Column(db.String(200))
    name: str = db.Column(db.String(30))
    age: int = db.Column(db.Integer)
    gender: int = db.Column(db.Integer)
    addr: str = db.Column(db.String(100))
    lat: float = db.Column(db.Float)
    lng: float = db.Column(db.Float)

    order_reviews = db.relationship('OrderReviewDto',
                                    backref='user',
                                    lazy='dynamic',
                                    cascade="all, delete, delete-orphan")

    def __init__(self,
                 userid,
                 password,
                 name,
                 age=0,
                 gender=0,
                 addr='',
                 lat=0,
                 lng=0):
        self.userid = userid
        self.password = password
        self.name = name
        self.age = age
        self.gender = gender
        self.addr = addr
        self.lat = lat
        self.lng = lng

    def __repr__(self):
        return f'User(userid={self.userid}, ' \
               f'password={self.password}, ' \
               f'name={self.name},' \
               f'age={self.age},' \
               f'gender={self.gender},' \
               f'addr={self.addr}, ' \
               f'lat={self.lat}, ' \
               f'lng={self.lng})'

    @property
    def json(self):
        return {
            'userid': self.userid,
            'password': self.password,
            'name': self.name,
            'age': self.age,
            'gender': self.gender,
            'addr': self.addr,
            'lat': self.lat,
            'lng': self.lng
        }
Ejemplo n.º 2
0
class ShopDto(db.Model):
    __tablename__ = "shop"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}  # 한글 인코딩

    shop_id: int = db.Column(db.Integer, primary_key=True, index=True)
    shop_name: str = db.Column(db.String(30))
    shop_addr: str = db.Column(db.String(100))
    shop_img: str = db.Column(db.String(200), default='shop_default.png')
    cat: str = db.Column(db.String(100))
    shop_lat: float = db.Column(db.Float)
    shop_lng: float = db.Column(db.Float)
    shop_rev_avg: float = db.Column(db.Float)
    shop_rev_cnt: int = db.Column(db.Integer)
    open_time: str = db.Column(db.String(30))

    foods = db.relationship('FoodDto',
                            backref='shop',
                            lazy='dynamic',
                            cascade="all, delete, delete-orphan")
    order_reviews = db.relationship('OrderReviewDto',
                                    backref='shop',
                                    lazy='dynamic',
                                    cascade="all, delete, delete-orphan")

    def __init__(self, shop_id, shop_name, shop_addr, shop_img, cat, shop_lat,
                 shop_lng, shop_rev_avg, shop_rev_cnt, open_time):
        self.shop_id = shop_id
        self.shop_name = shop_name
        self.shop_addr = shop_addr
        self.shop_img = shop_img
        self.cat = cat
        self.shop_lat = shop_lat
        self.shop_lng = shop_lng
        self.shop_rev_avg = shop_rev_avg
        self.shop_rev_cnt = shop_rev_cnt
        self.open_time = open_time

    def __repr__(self):
        return f'Shop(shop_id={self.shop_id}, shop_name={self.shop_name}, ' \
               f'shop_addr={self.shop_addr}, ,shop_img={self.shop_img}, cat={self.cat},' \
               f'shop_lat={self.shop_lat}, shop_lng="{self.shop_lng}"' \
               f'shopt_rev_avg={self.shop_rev_avg}, shop_rev_cnt={self.shop_rev_cnt}' \
               f'open_time={self.open_time}'

    @property
    def json(self):
        return {
            'shop_id': self.shop_id,
            'shop_name': self.shop_name,
            'shop_addr': self.shop_addr,
            'shop_img': self.shop_img,
            'cat': self.cat,
            'shop_lat': self.shop_lat,
            'shop_lng': self.shop_lng,
            'shop_rev_avg': self.shop_rev_avg,
            'shop_rev_cnt': self.shop_rev_cnt,
            'open_time': self.open_time
        }
Ejemplo n.º 3
0
class OrderDto(db.Model):
    __tablename__ = 'order'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    order_id: int = db.Column(db.Integer, primary_key=True, index=True)
    order_time: int = db.Column(db.Integer)
    # order_time : str = db.Column(db.DateTime, server_default=db.func.now()) #수정
    order_cmnt: str = db.Column(db.String(200))
    userid: str = db.Column(db.String(20), db.ForeignKey('User.userid'))  #수정
    shop_id: int = db.Column(db.Integer, db.ForeignKey('Shop.shop_id'))  #수정
    food_id: int = db.Column(db.Integer, db.ForeignKey('Food.food_id'))  #수정
    review_id: int = db.Column(db.Integer,
                               db.ForeignKey('Review.review_id'))  #수정

    def __init__(self, order_time, order_cmnt, userid, shop_id, food_id,
                 review_id):
        self.order_time = order_time
        self.order_cmnt = order_cmnt
        self.userid = userid
        self.shop_id = shop_id
        self.food_id = food_id
        self.review_id = review_id

    def __repr__(self):
        return f'order_id = {self.order_id},\
            order_time = {self.order_time},\
            order_cmnt = {self.order_cmnt},\
            userid = {self.userid},\
            shop_id = {self.shop_id},\
            food_id = {self.food_id},\
            review_id = {self.review_id}'

    @property
    def json(self):
        return {
            'order_id': self.order_id,
            'order_time': self.order_time,
            'order_cmnt': self.order_cmnt,
            'userid': self.userid,
            'shop_id': self.shop_id,
            'food_id': self.food_id,
            'review_id': self.review_id
        }

    def save(self):
        # update와 create를 모두 수행
        db.session.add(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Ejemplo n.º 4
0
class FoodDto(db.Model):
    __tablename__ = "food"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}  # 한글 인코딩

    food_id: int = db.Column(db.Integer, primary_key=True, index=True)
    food_name: str = db.Column(db.String(200))
    price: int = db.Column(db.Integer)
    food_img: str = db.Column(db.String(1000))  # 최대 길이가 634정도였음
    food_rev_avg: float = db.Column(db.Float)
    food_rev_cnt: float = db.Column(db.Integer)

    shop_id: int = db.Column(db.Integer,
                             db.ForeignKey('shop.shop_id', ondelete="CASCADE"))

    # order_reviews = db.relationship('OrderReviewDto', backref='food', lazy='dynamic', cascade="all, delete, delete-orphan")
    order_reviews = db.relationship('OrderReviewDto',
                                    back_populates='foods',
                                    lazy='dynamic',
                                    cascade="all, delete, delete-orphan")

    def __init__(self, food_id, food_name, price, food_img, food_rev_avg,
                 food_rev_cnt, shop_id):
        self.food_id = food_id
        self.food_name = food_name
        self.price = price
        self.food_img = food_img
        self.food_rev_avg = food_rev_avg
        self.food_rev_cnt = food_rev_cnt
        self.shop_id = shop_id

    def __repr__(self):
        return f'Food(food_id={self.food_id}, ' \
               f'food_name={self.food_name}, ' \
               f'price={self.price}, ' \
               f'food_img={self.food_img}, ' \
               f'food_rev_avg={self.food_rev_avg}, ' \
               f'food_rev_cnt={self.food_rev_cnt}, ' \
               f'shop_id="{self.shop_id}"'

    @property
    def json(self):
        return {
            'food_id': self.food_id,
            'food_name': self.food_name,
            'price': self.price,
            'food_img': self.food_img,
            'food_rev_avg': self.food_rev_avg,
            'food_rev_cnt': self.food_rev_cnt,
            'shop_id': self.shop_id
        }
Ejemplo n.º 5
0
class OrderDto(db.Model):
    __tablename__ = "order"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}  # 한글 인코딩

    order_id: int = db.Column(db.Integer, primary_key=True, index=True)
    order_time: str = db.Column(db.Date)
    order_cmnt: str = db.Column(db.String(200))

    userid: str = db.Column(db.String(20), db.ForeignKey('user.userid'))
    shop_id: int = db.Column(db.Integer, db.ForeignKey('shop.shop_id'))
    food_id: int = db.Column(db.Integer, db.ForeignKey('food.food_id'))

    reviews = db.relationship('ReviewDto', backref='order', lazy=True)

    def __init__(self, order_id, order_time, order_cmnt, userid, shop_id,
                 food_id):
        self.order_id = order_id
        self.order_time = order_time
        self.order_cmnt = order_cmnt
        self.userid = userid
        self.shop_id = shop_id
        self.food_id = food_id

    def __repr__(self):
        return f'Order(order_id={self.order_id}, ' \
               f'order_time={self.order_time}, ' \
               f'order_cmnt={self.order_cmnt}, ' \
               f'userid={self.userid}, ' \
               f'shop_id={self.shop_id}' \
               f'food_id={self.food_id}'

    @property
    def json(self):
        return {
            'order_id': self.order_id,
            'order_time': self.order_time,
            'order_cmnt': self.order_cmnt,
            'userid': self.userid,
            'shop_id': self.shop_id,
            'food_id': self.food_id
        }
Ejemplo n.º 6
0
class FoodDto(db.Model):
    __tablename__ = "food"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}  # 한글 인코딩

    food_id: int = db.Column(db.Integer, primary_key=True, index=True)
    food_name: str = db.Column(db.String(30))
    price: int = db.Column(db.Integer)
    food_rev_avg: float = db.Column(db.Float)
    food_rev_amt: float = db.Column(db.Integer)

    shop_id: int = db.Column(db.Integer, db.ForeignKey('shop.shop_id'))

    reviews = db.relationship('ReviewDto', backref='food', lazy=True)
    orders = db.relationship('OrderDto', backref='food', lazy=True)

    def __init__(self, food_id, food_name, price, food_rev_avg, food_rev_amt,
                 shop_id):
        self.food_id = food_id
        self.food_name = food_name
        self.price = price
        self.food_rev_avg = food_rev_avg
        self.food_rev_amt = food_rev_amt
        self.shop_id = shop_id

    def __repr__(self):
        return f'Food(food_id={self.food_id}, ' \
               f'food_name={self.food_name}, ' \
               f'price={self.price}, ' \
               f'food_rev_avg={self.food_rev_avg}, ' \
               f'food_rev_amt={self.food_rev_amt}, ' \
               f'shop_id="{self.shop_id}"'

    @property
    def json(self):
        return {
            'food_id': self.food_id,
            'food_name': self.food_name,
            'price': self.price,
            'food_rev_avg': self.food_rev_avg,
            'food_rev_amt': self.food_rev_amt,
            'shop_id': self.shop_id
        }
Ejemplo n.º 7
0
class OrderReviewDto(db.Model):
    __tablename__ = "order_review"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}  # 한글 인코딩

    or_id: int = db.Column(db.Integer, primary_key=True, index=True)
    order_time: str = db.Column(db.Date)
    review_cmnt: str = db.Column(db.Text)
    taste_rate: float = db.Column(db.Float)
    quantity_rate: float = db.Column(db.Float)
    delivery_rate: float = db.Column(db.Float)
    review_time: str = db.Column(db.Date)
    review_img: str = db.Column(db.String(300))
    owner_cmnt: str = db.Column(db.Text)

    userid: str = db.Column(db.String(20), db.ForeignKey('user.userid', ondelete="CASCADE"))
    shop_id: int = db.Column(db.Integer, db.ForeignKey('shop.shop_id', ondelete="CASCADE"))
    food_id: int = db.Column(db.Integer, db.ForeignKey('food.food_id', ondelete="CASCADE")) 

    foods = db.relationship('FoodDto', back_populates='order_reviews')

    # self.or_id = or_id
    def __init__(self, order_time=-1, userid='', shop_id=-1, food_id=-1, review_cmnt='', taste_rate=0.0, quantity_rate=0.0,
                 delivery_rate=0.0, review_time=0.0, review_img='', owner_cmnt=1):
        
        self.order_time = order_time
        self.review_cmnt = review_cmnt
        self.taste_rate = taste_rate
        self.quantity_rate = quantity_rate
        self.delivery_rate = delivery_rate
        self.review_time = review_time
        self.review_img = review_img
        self.owner_cmnt = owner_cmnt
        self.userid = userid
        self.shop_id = shop_id
        self.food_id = food_id
        

    def __repr__(self):
        return f'OrderReview(or_id={self.or_id}, ' \
               f'order_time={self.order_time}, ' \
               f'review_cmnt={self.review_cmnt}, ' \
               f'taste_rate={self.taste_rate}, ' \
               f'quantity_rate={self.quantity_rate}, ' \
               f'delivery_rate={self.delivery_rate}, ' \
               f'review_time="{self.review_time}" ' \
               f'review_img={self.review_img}, ' \
               f'owner_cmnt={self.owner_cmnt}, ' \
               f'userid={self.userid}, ' \
               f'shop_id={self.shop_id} ' \
               f'food_id={self.food_id}) ' \


    @property
    def json(self):
        return {
            'or_id': self.or_id,
            'order_time': self.order_time,
            'review_cmnt': self.review_cmnt,
            'taste_rate': self.taste_rate,
            'quantity_rate': self.quantity_rate,
            'delivery_rate': self.delivery_rate,
            'review_time': self.review_time,
            'review_img': self.review_img,
            'owner_cmnt': self.owner_cmnt,
            'userid': self.userid,
            'shop_id': self.shop_id,
            'food_id': self.food_id,
        }