# `frontend/modules/`

**Status:** Scaffold — business modules not migrated yet  
**Phase:** Migration Phase 1 (shared architecture creation)

## Purpose

Future home for **self-contained business module packages**. Each module will own its routes (via `app/` re-exports or colocated route adapters), components, hooks, API client, and types — without importing sibling modules.

## Current state

| Module | Status | Location |
|--------|--------|----------|
| **beauty** | ✅ Migrated | `modules/beauty/` — see [beauty-migration-report.md](../docs/beauty-migration-report.md) |
| **hospitality** | ✅ Migrated | `modules/hospitality/` — Torbat Food |
| accounting | Legacy | `components/accounting/`, `lib/accounting-api.ts` |
| healthcare | Legacy | `components/healthcare/`, `lib/healthcare-api.ts` |
| admin | Legacy | `components/admin/` |

Business modules not yet migrated remain in legacy paths until their migration phase:

| Module ID | Route prefix | Legacy component root | Legacy API client |
|-----------|--------------|----------------------|-------------------|
| accounting | `/accounting` | `components/accounting/` | `lib/accounting-api.ts` |
| beauty | `/beauty` | `components/beauty/` | `lib/beauty-business-api.ts` |
| healthcare | `/healthcare` | `components/healthcare/` | `lib/healthcare-api.ts` |
| admin | `/admin` | `components/admin/` | `lib/api.ts` |

CRM and other future modules will be scaffolded here when added.

## Planned structure (per module)

```
modules/
└── {module-id}/
    ├── README.md           # Module ownership and boundaries
    ├── components/         # Module-only UI (portals, pages, DS)
    ├── hooks/              # Module-only hooks
    ├── api/                # Module API client (split from lib/)
    ├── types/              # Module TypeScript types
    └── constants/          # Nav configs, feature flags
```

## Import rules

- Modules **MAY** import from `shared/` and platform utilities (`lib/auth.ts`, `lib/utils.ts`).
- Modules **MUST NOT** import from other `modules/*` or legacy `components/{other-module}/`.
- `app/{module}/` routes stay unchanged during Phase 1; they continue importing legacy paths.

## Related docs

- [../docs/frontend-architecture.md](../docs/frontend-architecture.md)
- [../docs/module-boundaries.md](../docs/module-boundaries.md)
