feat(web-client-tpos): tables, appointments, resources, schedules, kitchen, recipes CRUD

DB Migration:
- Created recipes + recipe_ingredients tables in catalog_service

BFF Endpoints (18 new):
- POST/PUT/DELETE tables — F&B table management (fnb_engine)
- POST/PUT/DELETE appointments — booking CRUD (booking_service)
- POST/PUT/DELETE resources — room/equipment CRUD (booking_service)
- POST/PUT/DELETE schedules — staff schedules (booking_service)
- GET/PUT kitchen/tickets — KDS ticket management (fnb_engine)
- GET/POST/PUT/DELETE recipes — recipe + ingredients CRUD (catalog_service)

PosDataService (12 new methods + DTOs)
ShopPage UI (325 lines): real UI for all 6 sections replacing placeholders
This commit is contained in:
Ho Ngoc Hai
2026-03-04 05:12:48 +07:00
parent 33047afa75
commit d95e80f274
4 changed files with 699 additions and 73 deletions

View File

@@ -1,30 +1,25 @@
# Context — GoodGo POS Platform
> Updated: 2026-03-03 21:01
> Updated: 2026-03-03 21:38
## Current Status
- **Phases Completed**: P1 (Order+Receipt), P2 (Dashboard), P3 (Products+Staff+Inventory CRUD)
- **All Phases Complete**: A + B + C-E
- **Branch**: master
- **Last Commit**: `aab80fd` (CreateStaff INSERT fix)
- **Commits**: `14d6c40` (Phase A) → `9630183` (Phase B) → `33047af` (Phase C-E)
- **Container**: web-client-tpos-net-local healthy on port 3001
- **Total**: +1,140 insertions, 15 new BFF endpoints, 17 new service methods
## Active Work
- **Phase A**: Categories CRUD → Order Management → Shop Update → Reports
- **Phase B**: Promotions CRUD → Apply discount POS → Customer CRUD
- **Phase C**: Table CRUD → KDS → Recipes
- **Phase D**: Appointments CRUD → Service Packages → Treatments
- **Phase E**: Shifts → RBAC → Shop Settings
## Completed Features
- Categories CRUD (menu tab)
- Order detail + cancel (finance tab)
- Shop update (overview tab)
- Revenue reports day/week/month (reports tab)
- Top products report (reports tab)
- Campaigns CRUD (promotions tab)
- Customer CRUD (customers tab)
- Shop settings (settings tab)
- Enhanced placeholders for sections without DB
## Key Files
- BFF: `apps/web-client-tpos-net/src/WebClientTpos.Server/Controllers/BffDataController.cs`
- Service: `apps/web-client-tpos-net/src/WebClientTpos.Client/Services/PosDataService.cs`
- Admin UI: `apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Admin/Shop/ShopPage.razor`
- Deploy: `deployments/local/docker-compose.yml``docker compose build --no-cache web-client-tpos-net`
## DB Schema Reference
- `merchant_service`: merchants, shops, merchant_staff, shop_tables, shop_resources
- `catalog_service`: products, categories
- `order_service`: orders, order_items
- `inventory_service`: inventory_items, inventory_transactions
- `membership_service`: members, level_definitions
- `wallet_service`: wallets, wallet_transactions
- `promotion_service`: promotions
## Remaining (need DB migration)
- Tables, Resources, Appointments → need table creation
- KDS → need WebSocket realtime
- Shifts, Recipes → need table creation