mirror of
https://git.meshkee.com/Meshkee/dashboards.git
synced 2026-08-11 22:30:58 +04:30
Add customer and business user-product flows across dashboards.
Ship my-products / customer-products UI with gallery uploads, status controls, module gating, and related shared UI polish. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
c5bdaad16b
commit
1271d96539
+16
-4
@@ -3,7 +3,7 @@
|
||||
> **For AI agents:** Read this file at the start of a new chat before making changes.
|
||||
> Update this document when a major feature is completed or architecture changes.
|
||||
|
||||
Last updated: August 7, 2026
|
||||
Last updated: August 9, 2026
|
||||
|
||||
---
|
||||
|
||||
@@ -165,6 +165,10 @@ Add to `/etc/hosts` (one line per tenant):
|
||||
| `/addresses` | Addresses |
|
||||
| `/orders` | Orders |
|
||||
| `/favorites` | Favorites |
|
||||
| `/my-products` | Customer stock listings (gated by `customer_products`) — list API |
|
||||
| `/my-products/:id` | User product details |
|
||||
| `/my-products/new` | Add user product (3 steps: basics, images, technical) — create API |
|
||||
| `/my-products/:id/edit` | Edit user product — update API |
|
||||
|
||||
### Business (`apps/business`)
|
||||
|
||||
@@ -184,6 +188,10 @@ Add to `/etc/hosts` (one line per tenant):
|
||||
| `/store/items` | Store items (product variants) | Yes |
|
||||
| `/store/settings` | Online sell + order process steps | Yes |
|
||||
| `/customers` | Business customers list | Yes |
|
||||
| `/customer-products` | Customer user-product listings (admin API) | Yes |
|
||||
| `/customer-products/new` | Admin create user product (under admin name) | Yes |
|
||||
| `/customer-products/:id` | Customer user-product details | Yes |
|
||||
| `/customer-products/:id/edit` | Admin edit user product | Yes |
|
||||
| `/store/orders` | Orders list + filters | Yes |
|
||||
| `/blog` | Blog hub | Yes |
|
||||
| `/blog/list` | My Blogs grid | Yes |
|
||||
@@ -257,9 +265,9 @@ Products accept optional `brandId` on create/update.
|
||||
|
||||
### Business settings
|
||||
- `GET/PATCH /businesses/:businessId/settings` — `branding`, `dashboard`, `store`, `modules`
|
||||
- `modules.enabled`: optional CMS modules (`products`, `store`, `portfolio`, `blog`, `warehouse`, `videos`); missing key → all enabled (legacy). Super-admin only for modules PATCH.
|
||||
- `modules.enabled`: optional modules — business: `products`, `store`, `portfolio`, `blog`, `warehouse`, `videos`; customer: `customer_products`. Missing key → all business modules enabled (legacy); customer modules stay opt-in. Super-admin only for modules PATCH.
|
||||
- `modules.charts`: two home chart slots (`none`, `orders_30d`, `customers_joined_1y`, `blog_views_30d`, `products_added_1y`); `none` hides that slot; defaults orders + customers.
|
||||
- Always-on (not in modules list): customers, website, profile, settings, home
|
||||
- Always-on (not in modules list): business — customers, website, profile, settings, home; customer — home, profile, addresses, orders, favorites
|
||||
- Tenant public: `GET /tenants/:host` includes `enabledModules` + `homeCharts`
|
||||
|
||||
### Portfolios
|
||||
@@ -301,6 +309,10 @@ Products accept optional `brandId` on create/update.
|
||||
### Media
|
||||
- `POST /businesses/:businessId/media` — upload to S3
|
||||
|
||||
### User products (customer listings)
|
||||
- Customer (own stock): `GET/POST /businesses/:businessId/my-user-products`, `GET/PATCH/DELETE .../:productId`, `POST .../:productId/promote`, categories + technical-form + media
|
||||
- Business admin (all listings): `GET/POST /businesses/:businessId/user-products`, `GET/PATCH/DELETE .../:productId`, `PATCH .../:productId/status` (`draft` | `published` | `rejected` | `archived`), `POST .../:productId/promote`, categories + technical-form. Admin create is attributed to the admin user.
|
||||
|
||||
---
|
||||
|
||||
## Feature status (business app)
|
||||
@@ -441,7 +453,7 @@ Global input sizing lives in `packages/dashboard-core/src/styles/tokens.css` (cu
|
||||
|
||||
- **Farsi text:** Customer app → Yekan Bakh (`src/fonts/yekanbakh.css`, `--font-fa` in `index.css`); business/super-admin → IranYekan (`iranyekan.css`, `.faText`). Input + placeholder must share the same stack — see `.cursor/rules/ui-farsi-fonts.mdc`
|
||||
- **Per-business theme:** Super Admin sets `branding.primaryColor`; business app applies via `BusinessThemeProvider`
|
||||
- **Per-business modules:** Super Admin **Modules** column on Businesses list; stored in `settings.modules.enabled`; business Home + Sidebar hide disabled modules
|
||||
- **Per-business modules:** Super Admin **Modules** column on Businesses list; stored in `settings.modules.enabled` (business + customer sections); business Home + Sidebar hide disabled business modules; `customer_products` gates customer My Products (`/my-products`, `/my-products/new`) which call `businesses/:id/my-user-products`
|
||||
- **RTL:** Farsi inputs use `dir="rtl"` and the app’s `--font-fa`
|
||||
- **IRT prices:** comma-separated thousands + `IRT` suffix — see `.cursor/rules/ui-irt-price.mdc`
|
||||
- **Toasts:** see `.cursor/rules/ui-toasts.mdc`
|
||||
|
||||
Reference in New Issue
Block a user