price: Decimal | None = Field(decimal_places=2)
store: str | None = Field(default=None)
purchase_date: dt | None = Field(default=None)
+ def __str__(self):
+ date = self.purchase_date.strftime(DATE_FORMAT)
+ return f'{self.name} at {self.store} on {date}'
def _get_with_id(cls, item_id):
return select(cls).where(cls.id == item_id)
db_file = os.path.join(os.environ.get('MATRIX_DATA_DIR', ''), f'{MODULE}.db')
self.file = db_file
- logger.debug(f'Using db file {self.file}')
+ logger.debug(f'Shop bot is using db file {self.file}')
self.engine = self.get_engine()
self.last_store_id = None
item = session.exec(_get_with_id(Item, item_id)).first()
if item:
item.purchase_date = dt.today()
- results.append(str(item))
# Track purchase history (locally only!)
# to generate recommended shopping lists
record.name = item.name
record.price = item.price
record.purchase_date = item.purchase_date
- record.store = self._get_pref_store_id() # We bought it here
+
+ shopping_at = self._get_pref_store_id() # We bought it here
+ cmd = select(Store).where(Store.id == shopping_at)
+ store = session.exec(cmd).one()
+ record.store = store.name
session.add(record)
+ results.append(str(record))
+ # results.append(str(item))
+
session.commit()
return results