def fetch_last(self): sql = 'SELECT price, delta, date, time FROM item_prices WHERE item_id = %s ORDER BY date DESC, time DESC' result = query_one(sql, (self.item_id,)) self.last_price = result[0] self.last_delta = result[1] self.last_date = result[2] self.last_time = result[3]
def find_by_item_id(cls, item_id): sql = 'SELECT * FROM {} WHERE item_id=%s'.format(ItemImage.db_table) item = query_one(sql, (item_id, )) return cls(*item) if item is not None else None
def find_by_item_id(cls, item_id): sql = 'SELECT * FROM {} WHERE item_id=%s ORDER BY id DESC'.format(ItemPrice.db_table) item_price = query_one(sql, (item_id,)) return cls(*item_price) if item_price is not None else None
def find_by_store_id(cls, store_id): sql = 'SELECT * FROM {} WHERE id=%s'.format(Store.db_table) store = query_one(sql, (store_id, )) return cls(*store) if store is not None else None
def find_by_store_product_id(cls, store_product_id, url): sql = 'SELECT * FROM {} WHERE store_product_id=%s AND url=%s'.format(Item.db_table) item = query_one(sql, (store_product_id, url)) return cls(*item) if item is not None else None
def fetch_last_delta(self): sql = 'SELECT delta FROM item_prices WHERE item_id = %s ORDER BY date DESC, time DESC' self.last_delta = query_one(sql, (self.item_id,))[0]
def fetch_max_price(self): sql = 'SELECT MAX(price) FROM item_prices WHERE item_id = %s' self.max_price = round(query_one(sql, (self.item_id,))[0], 2)
def fetch_avg_price(self): sql = 'SELECT AVG(price) FROM item_prices WHERE item_id = %s' self.avg_price = round(query_one(sql, (self.item_id,))[0], 2)
def fetch_min_price(self): sql = 'SELECT MIN(price) FROM item_prices WHERE item_id = %s' self.min_price = query_one(sql, (self.item_id,))[0]
def fetch_min_max(self): sql = 'SELECT MIN(price), MAX(price), AVG(price) FROM item_prices WHERE item_id = %s' result = query_one(sql, (self.item_id,)) self.min_price = round(result[0], 2) self.max_price = round(result[1], 2) self.avg_price = round(result[2], 2)
def fetch_stats_for_item_id(cls, item_id): sql = 'SELECT * FROM {} WHERE item_id = %s'.format(ItemStats.db_table) stats = query_one(sql, (item_id,)) return cls(*stats) if stats is not None else None
def fetch_count_of_min_price(self): sql = 'SELECT COUNT(*) FROM item_prices WHERE item_id = %s GROUP BY price ORDER BY price LIMIT 1' self.count_min_price = query_one(sql, (self.item_id,))[0]
def select_oldest(cls): sql = "SELECT * FROM {} ORDER BY lc_date ASC, lc_time ASC".format(StoreURL.db_table) store_url = query_one(sql) return cls(*store_url) if store_url is not None else None