]> apps.delaporte.us Git - matrix-shop-bot.git/commitdiff
Fixup for purchase records
authorEdward Delaporte <edward@delaporte.us>
Thu, 9 Apr 2026 13:27:15 +0000 (08:27 -0500)
committerEdward Delaporte <edward@delaporte.us>
Sun, 7 Jun 2026 00:29:23 +0000 (19:29 -0500)
matrix_shop_bot/db.py
matrix_shop_bot/tasks.py

index a6d51e3ff4d9163d42c177b050df9278e1eb9a37..d56bb6a0c7529b178a8dab60164ffbcbca07b63a 100644 (file)
@@ -50,6 +50,9 @@ class PurchaseRecord(SQLModel, table=True):
     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)
@@ -61,7 +64,7 @@ class Data():
             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
 
@@ -141,7 +144,6 @@ class Data():
                 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
@@ -149,9 +151,16 @@ class Data():
                 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
 
index f4775fa22d1eec00f7518a585258cbe87f3c08ca..52484a0c58378cc1a09247b3696c953c32c1880d 100644 (file)
@@ -42,8 +42,8 @@ def buy(c, items):
 @task
 def list_bought(c, store):
     result = Data().list_purchases(store)
-    print(result)
-
+    for item in result:
+        print(str(item))
 
 @task
 def clear_all(c, store_id):