Rename Forte to LunarFront, generalize for any small business
Rebrand from Forte (music-store-specific) to LunarFront (any small business): - Package namespace @forte/* → @lunarfront/* - Database forte/forte_test → lunarfront/lunarfront_test - Docker containers, volumes, connection strings - UI branding, localStorage keys, test emails - All documentation and planning docs Generalize music-specific terminology: - instrumentDescription → itemDescription - instrumentCount → itemCount - instrumentType → itemCategory (on service templates) - New migration 0027_generalize_terminology for column renames - Seed data updated with generic examples - RBAC descriptions updated
This commit is contained in:
18
CLAUDE.md
18
CLAUDE.md
@@ -1,8 +1,8 @@
|
||||
# Forte — Project Conventions
|
||||
# LunarFront — Project Conventions
|
||||
|
||||
## App
|
||||
- **Name:** Forte
|
||||
- **Purpose:** Music store management platform (POS, inventory, rentals, lessons, repairs, accounting)
|
||||
- **Name:** LunarFront
|
||||
- **Purpose:** Small business management platform (POS, inventory, rentals, scheduling, repairs, accounting)
|
||||
- **Company:** Lunarfront Tech LLC
|
||||
|
||||
## Tech Stack
|
||||
@@ -18,12 +18,12 @@
|
||||
- **Linting:** ESLint 9 flat config + Prettier
|
||||
|
||||
## Package Namespace
|
||||
- `@forte/shared` — types, Zod schemas, business logic, utils
|
||||
- `@forte/backend` — Fastify API server
|
||||
- `@lunarfront/shared` — types, Zod schemas, business logic, utils
|
||||
- `@lunarfront/backend` — Fastify API server
|
||||
|
||||
## Database
|
||||
- Dev: `forte` on localhost:5432
|
||||
- Test: `forte_test` on localhost:5432
|
||||
- Dev: `lunarfront` on localhost:5432
|
||||
- Test: `lunarfront_test` on localhost:5432
|
||||
- Multi-tenant: `company_id` (uuid FK) on all domain tables for tenant isolation
|
||||
- `location_id` (uuid FK) on tables that need per-location scoping (inventory, transactions, drawer)
|
||||
- Migrations via Drizzle Kit (`bunx drizzle-kit generate`, `bunx drizzle-kit migrate`)
|
||||
@@ -46,7 +46,7 @@
|
||||
- `?sort=name&order=asc` — sorting by field name, asc or desc
|
||||
- List responses always return `{ data: [...], pagination: { page, limit, total, totalPages } }`
|
||||
- Search and filtering is ALWAYS server-side, never client-side
|
||||
- Use `PaginationSchema` from `@forte/shared/schemas` to parse query params
|
||||
- Use `PaginationSchema` from `@lunarfront/shared/schemas` to parse query params
|
||||
- Use pagination helpers from `packages/backend/src/utils/pagination.ts`
|
||||
- **Lookup endpoints** (e.g., `/roles/all`, `/statuses/all`) are the exception — these return a flat unpaginated list for populating dropdowns/selects. Use a `/all` suffix to distinguish from the paginated list endpoint for the same resource.
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
## Conventions
|
||||
- Shared Zod schemas are the single source of truth for validation (used on both frontend and backend)
|
||||
- Business logic lives in `@forte/shared`, not in individual app packages
|
||||
- Business logic lives in `@lunarfront/shared`, not in individual app packages
|
||||
- API routes are thin — validate with Zod, call a service, return result
|
||||
- All financial events must be auditable (append-only audit records)
|
||||
- JSON structured logging with request IDs on every log line
|
||||
|
||||
Reference in New Issue
Block a user