mirror of
https://github.com/thekiwismarthome/shopping-list-manager.git
synced 2026-05-01 11:46:30 +00:00
Update const.py
This commit is contained in:
@@ -1,12 +1,92 @@
|
|||||||
"""Constants for Shopping List Manager."""
|
"""Constants for Shopping List Manager."""
|
||||||
|
|
||||||
|
# Domain
|
||||||
DOMAIN = "shopping_list_manager"
|
DOMAIN = "shopping_list_manager"
|
||||||
|
|
||||||
# Storage keys
|
# Storage Keys
|
||||||
STORAGE_VERSION = 1
|
STORAGE_VERSION = 2
|
||||||
|
STORAGE_KEY_LISTS = f"{DOMAIN}.lists"
|
||||||
|
STORAGE_KEY_ITEMS = f"{DOMAIN}.items"
|
||||||
STORAGE_KEY_PRODUCTS = f"{DOMAIN}.products"
|
STORAGE_KEY_PRODUCTS = f"{DOMAIN}.products"
|
||||||
STORAGE_KEY_ACTIVE = f"{DOMAIN}.active_list"
|
STORAGE_KEY_CATEGORIES = f"{DOMAIN}.categories"
|
||||||
LISTS_STORE_KEY = "shopping_list_manager.lists"
|
|
||||||
|
# WebSocket Commands - Lists
|
||||||
|
WS_TYPE_LISTS_GET_ALL = f"{DOMAIN}/lists/get_all"
|
||||||
|
WS_TYPE_LISTS_CREATE = f"{DOMAIN}/lists/create"
|
||||||
|
WS_TYPE_LISTS_UPDATE = f"{DOMAIN}/lists/update"
|
||||||
|
WS_TYPE_LISTS_DELETE = f"{DOMAIN}/lists/delete"
|
||||||
|
WS_TYPE_LISTS_SET_ACTIVE = f"{DOMAIN}/lists/set_active"
|
||||||
|
|
||||||
|
# WebSocket Commands - Items
|
||||||
|
WS_TYPE_ITEMS_GET = f"{DOMAIN}/items/get"
|
||||||
|
WS_TYPE_ITEMS_ADD = f"{DOMAIN}/items/add"
|
||||||
|
WS_TYPE_ITEMS_UPDATE = f"{DOMAIN}/items/update"
|
||||||
|
WS_TYPE_ITEMS_CHECK = f"{DOMAIN}/items/check"
|
||||||
|
WS_TYPE_ITEMS_DELETE = f"{DOMAIN}/items/delete"
|
||||||
|
WS_TYPE_ITEMS_REORDER = f"{DOMAIN}/items/reorder"
|
||||||
|
WS_TYPE_ITEMS_BULK_CHECK = f"{DOMAIN}/items/bulk_check"
|
||||||
|
WS_TYPE_ITEMS_CLEAR_CHECKED = f"{DOMAIN}/items/clear_checked"
|
||||||
|
WS_TYPE_ITEMS_GET_TOTAL = f"{DOMAIN}/items/get_total"
|
||||||
|
|
||||||
|
# WebSocket Commands - Products
|
||||||
|
WS_TYPE_PRODUCTS_SEARCH = f"{DOMAIN}/products/search"
|
||||||
|
WS_TYPE_PRODUCTS_SUGGESTIONS = f"{DOMAIN}/products/suggestions"
|
||||||
|
WS_TYPE_PRODUCTS_ADD = f"{DOMAIN}/products/add"
|
||||||
|
WS_TYPE_PRODUCTS_UPDATE = f"{DOMAIN}/products/update"
|
||||||
|
WS_TYPE_PRODUCTS_DELETE = f"{DOMAIN}/products/delete"
|
||||||
|
|
||||||
|
# WebSocket Commands - Categories
|
||||||
|
WS_TYPE_CATEGORIES_GET_ALL = f"{DOMAIN}/categories/get_all"
|
||||||
|
WS_TYPE_CATEGORIES_REORDER = f"{DOMAIN}/categories/reorder"
|
||||||
|
|
||||||
|
# WebSocket Commands - Subscriptions
|
||||||
|
WS_TYPE_SUBSCRIBE = f"{DOMAIN}/subscribe"
|
||||||
|
WS_TYPE_UNSUBSCRIBE = f"{DOMAIN}/unsubscribe"
|
||||||
|
|
||||||
|
# WebSocket Commands - Barcode (Phase 5)
|
||||||
|
WS_TYPE_BARCODE_SCAN = f"{DOMAIN}/barcode/scan"
|
||||||
|
WS_TYPE_BARCODE_ADD = f"{DOMAIN}/barcode/add_to_list"
|
||||||
|
|
||||||
|
# WebSocket Commands - OpenFoodFacts (Phase 5)
|
||||||
|
WS_TYPE_OFF_FETCH = f"{DOMAIN}/openfoodfacts/fetch"
|
||||||
|
WS_TYPE_OFF_IMPORT = f"{DOMAIN}/openfoodfacts/import"
|
||||||
|
|
||||||
# Events
|
# Events
|
||||||
EVENT_SHOPPING_LIST_UPDATED = f"{DOMAIN}_updated"
|
EVENT_ITEM_ADDED = f"{DOMAIN}_item_added"
|
||||||
|
EVENT_ITEM_UPDATED = f"{DOMAIN}_item_updated"
|
||||||
|
EVENT_ITEM_CHECKED = f"{DOMAIN}_item_checked"
|
||||||
|
EVENT_ITEM_DELETED = f"{DOMAIN}_item_deleted"
|
||||||
|
EVENT_LIST_UPDATED = f"{DOMAIN}_list_updated"
|
||||||
|
EVENT_LIST_DELETED = f"{DOMAIN}_list_deleted"
|
||||||
|
|
||||||
|
# Image Configuration
|
||||||
|
IMAGE_FORMAT = "webp"
|
||||||
|
IMAGE_SIZE = 200 # 200x200px
|
||||||
|
IMAGE_QUALITY = 85
|
||||||
|
IMAGE_MAX_SIZE_KB = 15
|
||||||
|
|
||||||
|
# Metric Units (always metric, regardless of country)
|
||||||
|
METRIC_UNITS = {
|
||||||
|
"weight": ["kg", "g"],
|
||||||
|
"volume": ["L", "mL"],
|
||||||
|
"count": ["units", "pack", "loaf", "dozen"]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Default quantities for common products (NZ-focused, can be country-specific later)
|
||||||
|
DEFAULT_QUANTITIES = {
|
||||||
|
"milk": {"quantity": 2, "unit": "L"},
|
||||||
|
"bread": {"quantity": 1, "unit": "loaf"},
|
||||||
|
"butter": {"quantity": 500, "unit": "g"},
|
||||||
|
"eggs": {"quantity": 12, "unit": "units"},
|
||||||
|
"cheese": {"quantity": 1, "unit": "kg"},
|
||||||
|
"yogurt": {"quantity": 1, "unit": "kg"},
|
||||||
|
"flour": {"quantity": 1, "unit": "kg"},
|
||||||
|
"sugar": {"quantity": 1, "unit": "kg"},
|
||||||
|
"rice": {"quantity": 1, "unit": "kg"},
|
||||||
|
"pasta": {"quantity": 500, "unit": "g"}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Paths
|
||||||
|
CATEGORIES_FILE = "categories.json"
|
||||||
|
PRODUCTS_CATALOG_FILE = "products_catalog.json"
|
||||||
|
IMAGES_PATH = "images/products"
|
||||||
|
|||||||
Reference in New Issue
Block a user