Ho Ngoc Hai
30b3f9a37c
feat(staff-portal): implement staff attendance and leave request management with dedicated portal UI and backend services
2026-03-06 04:29:00 +07:00
Ho Ngoc Hai
a51ecacfac
feat(shop-recipes): add product linking, ingredient display, and edit functionality for recipes.
2026-03-06 03:29:28 +07:00
Ho Ngoc Hai
fd75da34dc
feat: enhance inventory management with new item types, stocktake, wastage, and recipe-based deductions
2026-03-05 22:28:45 +07:00
Ho Ngoc Hai
6d5d4108c7
refactor(api, web-client): remove API versioning from services and update client calls, and enhance staff schedule management in the admin UI to support multiple days and shift presets.
2026-03-05 16:40:02 +07:00
Ho Ngoc Hai
3f1ecc8122
feat(booking-service, web-client-tpos): implement staff schedule creation/deletion and enhance staff name display.
2026-03-05 16:19:46 +07:00
Ho Ngoc Hai
81c5be9e37
fix(staff): Vấn đề trạng thái nhân viên "Invited"
2026-03-05 15:56:37 +07:00
Ho Ngoc Hai
e4bedf2cd3
feat(allPos): upgrad frontend
2026-03-05 15:33:23 +07:00
Ho Ngoc Hai
1fb1a5c52c
feat(claude): establish detailed agent role definitions and comprehensive project context
2026-03-05 14:30:06 +07:00
Ho Ngoc Hai
91a219d65f
feat: implement hourly rates for tables/rooms, add shop publishing, and introduce system health checks.
2026-03-05 12:09:28 +07:00
Ho Ngoc Hai
c70248fdec
feat(karaoke-pos): integrate session management and F&B ordering with backend APIs across the workflow pages.
2026-03-05 11:15:46 +07:00
Ho Ngoc Hai
e748c43b22
feat(shop-admin): add happy hour and promotion configuration UI and enhance room management with add/edit/delete functionality.
2026-03-05 08:44:47 +07:00
Ho Ngoc Hai
cd979970e7
feat(fnb, tpos): implement table QR code scanning for customer menu and reservation management
2026-03-05 08:28:32 +07:00
Ho Ngoc Hai
cfcdbd069d
feat(pos): implement order payment flow and update order aggregate status handling.
2026-03-05 08:05:19 +07:00
Ho Ngoc Hai
0901e91673
feat(pos): implement table-based ordering, kitchen ticket workflow, and table floor plan management
2026-03-05 07:53:00 +07:00
Ho Ngoc Hai
7102b89ef1
refactor(web-client-tpos): extract shop admin sections into dedicated Blazor components and centralize helpers
2026-03-05 07:16:16 +07:00
Ho Ngoc Hai
802c03995a
feat(order-processing): execute order item strategies during order creation and add kitchen ticket API with session management.
2026-03-05 06:19:18 +07:00
Ho Ngoc Hai
926d4ee83c
feat(tpos-client): implement send to kitchen workflow, table reservations, and enhanced admin zone management.
2026-03-05 06:00:21 +07:00
Ho Ngoc Hai
a4f4c4755e
feat(fnb-reservation): implement reservation management with API, infrastructure, and TPOS client UI.
2026-03-05 05:39:02 +07:00
Ho Ngoc Hai
c0301a22e5
feat(pos): Display empty state messages for resource grids and implement shop-specific staff management in POS views.
2026-03-05 05:03:28 +07:00
Ho Ngoc Hai
88cd45c3a8
feat(pos-cafe): implement payment method settings, add detailed order history view, and update payment icons to Lucide
2026-03-05 04:40:06 +07:00
Ho Ngoc Hai
b041ba5449
feat(web-client-tpos): integrate StorageService API and adapt client data handling while removing multi-vertical architecture plan documentation.
2026-03-05 04:25:53 +07:00
Ho Ngoc Hai
14f6ddea77
feat(web-client-tpos): implement shop storage management and enhance revenue charts with membership level improvements
2026-03-05 04:16:49 +07:00
Ho Ngoc Hai
c86500214b
feat: implement category CRUD with image upload, extend staff profile fields, and add membership level/EXP management
2026-03-05 03:03:48 +07:00
Ho Ngoc Hai
4d6c9c6ba3
feat: enhance error handling for staff and member creation, update IAM token lifetime, and refine staff query enumeration.
2026-03-05 02:10:52 +07:00
Ho Ngoc Hai
629fed8a55
commit
2026-03-05 01:39:40 +07:00
Ho Ngoc Hai
df7eec1ec2
feat(web-client-tpos, inventory-service): implement percentage-based campaigns and enrich inventory with product names
2026-03-04 20:22:54 +07:00
Ho Ngoc Hai
051261accd
feat: implement recipe management, inventory operations, voucher integration, and order discounts
2026-03-04 20:05:38 +07:00
Ho Ngoc Hai
65f3da53ae
refactor(merchant-service): standardize enumeration name resolution in shop queries using a new helper method.
2026-03-04 16:11:55 +07:00
Ho Ngoc Hai
028ef4c1cd
feat: implement user-based wallet and transaction retrieval by parsing JWT sub claim and adjust JWT validation parameters across services.
2026-03-04 13:08:08 +07:00
Ho Ngoc Hai
7baba14fad
refactor(web-client-tpos, order-service): improve API deserialization, update DTO types for Dapper compatibility, and refine API proxying for staff schedules and order cancellations.
2026-03-04 12:53:43 +07:00
Ho Ngoc Hai
64e7b4e00d
refactor: update EF Core backing field mapping and ignore DDD enumeration types
2026-03-04 12:36:19 +07:00
Ho Ngoc Hai
2d74f53f0d
refactor: update DTO numeric types, refactor EF Core entity configurations to use HasField, and enable JsonDocument change tracking.
2026-03-04 11:44:43 +07:00
Ho Ngoc Hai
89bd8232a8
feat: Implement Blazor lifecycle improvements, enhance navigation with browser history, and update EF Core entity configurations for backing fields
2026-03-04 11:35:41 +07:00
Ho Ngoc Hai
ba11317293
refactor(web-client-tpos): unify JSON serialization for API client, streamline authentication flows, and update UI layouts and navigation.
2026-03-04 11:21:22 +07:00
Ho Ngoc Hai
ce61b4d3db
feat(fnb-engine): add shopId and status filters to kitchen tickets
...
Add shopId and status query params to GET /api/v1/kitchen/tickets.
Joins through Session to resolve shopId since KitchenTicket only
has SessionId. Backward-compatible: without shopId falls back to
existing pending-by-station behavior.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:37:55 +07:00
Ho Ngoc Hai
4cd172bee5
feat(booking-service): add shop-wide staff schedules endpoint
...
Add GET /api/v1/schedules?shopId= to return all staff schedules
for a shop. Existing per-staff endpoint unchanged. BFF needs this
to display all schedules on the admin dashboard.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:36:43 +07:00
Ho Ngoc Hai
9b44e88a6a
feat(order-service): add dashboard and reporting endpoints
...
- GET /api/v1/orders/dashboard — POS dashboard stats (revenue, orders,
items sold, popular items, payment breakdown, hourly revenue, recent orders)
- GET /api/v1/reports/revenue — Revenue report grouped by daily/weekly/monthly
- GET /api/v1/reports/top-products — Top selling products by quantity
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:36:09 +07:00
Ho Ngoc Hai
37042b48b7
feat(inventory-service): add shopId filter to transactions endpoint
...
BFF needs to query inventory transactions by shopId. The existing
endpoint only supported inventoryItemId. Now accepts either shopId
or inventoryItemId as query parameters.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:35:54 +07:00
Ho Ngoc Hai
4a1094b080
fix(web-client-tpos): restore JWT from localStorage before admin API calls
...
Root cause: AdminBase had no auth initialization. AuthStateService is
in-memory Singleton — token is null after page refresh. Admin pages
called PosDataService without token → BFF forwarded requests without
Authorization header → microservices returned 401.
Fix:
- AdminBase.cs: inject AuthService, call TryRestoreSessionAsync()
- 9 admin pages: add await base.OnInitializedAsync() calls
- BffHttpClient.cs: add debug logging for auth forwarding
2026-03-04 10:27:56 +07:00
Ho Ngoc Hai
710f87a94d
chore(docker): replace BFF direct DB vars with microservice HTTP proxy URLs
...
- Remove BFF_DB_HOST/PORT/USER/PASS env vars (no more direct DB access)
- Add 9 {ServiceName}__BaseUrl env vars for HTTP proxy pattern
- BFF now communicates via internal Docker network to microservices
2026-03-04 10:13:42 +07:00
Ho Ngoc Hai
9be3450ab9
refactor(web-client-tpos): convert BFF from direct DB to HTTP proxy
...
- Replace Dapper/Npgsql direct DB access with HttpClient proxy to microservice APIs
- Create BffHttpClient.cs with AuthForwardingHandler (forwards JWT tokens)
- Register 9 named HttpClients: Merchant, Catalog, Order, Inventory, Membership, Wallet, Promotion, Booking, FnbEngine
- Delete BffDbConnectionFactory.cs and TenantContext.cs (no more direct DB)
- Remove Dapper and Npgsql package references from .csproj
- All 10 controllers are now thin HTTP proxy bridges
- Zero breaking changes: all api/bff/ routes preserved
2026-03-04 10:13:28 +07:00
Ho Ngoc Hai
0a5e1a9271
refactor(web-client-tpos): split monolithic BffDataController into 10 module controllers
...
- Extract shared infrastructure: BffDbConnectionFactory, TenantContext (per-request cache)
- Extract 19 DTOs to Models/BffDtos.cs
- Create 10 controllers: Shop, Catalog, Staff, Order, Inventory, Financial, Booking, Fnb, Reports, Membership
- Register DI services in Program.cs
- Delete monolithic BffDataController.cs (1831 lines)
- All API routes preserved under api/bff prefix (zero breaking changes)
2026-03-04 09:36:57 +07:00
Ho Ngoc Hai
b8b8bf1336
fix(web-client-tpos): fix all build errors — add CRUD methods, fix type bindings
...
- Added missing CRUD methods: DeleteRecipeItem, SaveRecipe, AddTable, SaveTable,
EditTable, DeleteTableItem, AddAppointment, AddResource, SaveResource,
DeleteResourceItem, DeleteScheduleItem, MarkTicketDone, LoadKitchenTickets
- Fixed CS1654: recipe ingredient foreach mutation → index-based for loop
- Fixed CS1503: schedule time input type=time → type=text (Blazor binding)
- Fixed CS1061: Guid.HasValue/Value → direct Guid in BFF kitchen/recipes
2026-03-04 08:18:07 +07:00
Ho Ngoc Hai
cf68aee67f
fix(web-client-tpos): remove duplicate case recipes — fix CS0152 Docker build failure
2026-03-04 08:02:33 +07:00
Ho Ngoc Hai
6548b5babf
fix(web-client-tpos): fix kitchen/recipes BFF routes — SPA fallback intercepted short routes
...
Changed BFF routes to use shops/{shopId}/ prefix pattern:
- kitchen/tickets → shops/{shopId}/kitchen-tickets
- recipes → shops/{shopId}/recipes
Updated PosDataService client URLs to match.
Added missing kitchen/recipes data loading cases in ShopPage.
2026-03-04 07:52:45 +07:00
Ho Ngoc Hai
d9fda3f54f
fix(web-client-tpos): add missing kitchen/recipes data loading in ShopPage
...
ShopPage LoadSectionData switch was missing cases for kitchen and recipes sections. Added data fetch calls for GetKitchenTicketsAsync and GetRecipesAsync on section navigation.
2026-03-04 07:49:26 +07:00
Ho Ngoc Hai
d95e80f274
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
2026-03-04 05:12:48 +07:00
Ho Ngoc Hai
33047afa75
feat(web-client-tpos): Phase C-E — shop settings, top products report, enhanced placeholders
...
BFF Endpoints (3 new):
- GET/PUT shops/{id}/settings — shop features config, hours, days
- GET reports/top-products — bestselling products by quantity + revenue
PosDataService (3 new methods):
- GetShopSettings, UpdateShopSettings, GetTopProducts
ShopPage UI (149 lines):
- Settings tab: opening hours, business days, features config form
- Reports tab: top products table alongside revenue report
- Enhanced default placeholder for sections without DB tables
2026-03-03 21:36:52 +07:00
Ho Ngoc Hai
96301831f1
feat(web-client-tpos): Phase B — campaigns CRUD, customer CRUD, fixed promotions query
...
BFF Endpoints (6 new):
- POST/PUT/DELETE campaigns — CRUD with merchant ownership validation
- POST/PUT/DELETE members — customer CRUD with soft-delete
- Fixed GetPromotions: promotions → campaigns table
PosDataService (6 new methods):
- CreateCampaign, UpdateCampaign, DeleteCampaign
- CreateMember, UpdateMember, DeleteMember
ShopPage UI (191 lines):
- Promotions tab: campaign table with add/edit/delete + form
- Customers tab: add/edit/delete buttons on member rows
2026-03-03 21:30:27 +07:00
Ho Ngoc Hai
14d6c4012c
feat(web-client-tpos): Phase A — categories CRUD, order management, shop update, reports
...
BFF Endpoints (6 new):
- POST/PUT/DELETE categories — full CRUD with shop ownership validation
- GET orders/{id} — order detail with items
- PUT orders/{id}/cancel — cancel non-completed orders (status=6)
- PUT shops/{id} — update name, phone, email, hours
- GET reports/revenue — daily/weekly/monthly revenue aggregation
PosDataService (8 new methods):
- CreateCategory, UpdateCategory, DeleteCategory
- GetOrderDetail, CancelOrder
- UpdateShop
- GetRevenueReport
ShopPage UI (222 lines):
- Menu tab: categories table with add/edit/delete
- Finance tab: expandable order rows with items + cancel button
- Overview tab: shop info edit form
- Reports tab: period selector (Ngày/Tuần/Tháng) + revenue table
2026-03-03 21:22:25 +07:00