diff --git a/CLAUDE.md b/CLAUDE.md index 3fbb5e7..46a1f86 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -46,7 +46,39 @@ vendor/bin/pint --dirty - `resources/views/components/` - Reusable Blade components - `app/Actions/Fortify/` - Authentication business logic - `app/Providers/FortifyServiceProvider.php` - Custom auth views +- `app/Enums/` - UserType (admin/individual/company), UserStatus (active/deactivated) - `docs/prd.md` - Full product requirements document +- `docs/architecture.md` - Complete architecture document +- `docs/stories/` - User story specifications + +### Domain Model +Core models in `app/Models/`: +- **User** - Three types: `admin`, `individual` (client), `company` (client) +- **Consultation** - Booking requests between clients and admin +- **Timeline** - Case tracking for clients +- **TimelineUpdate** - Updates within a timeline +- **WorkingHour** - Admin's available hours for booking +- **BlockedTime** - Time slots blocked from booking +- **Post** - Blog/legal content articles +- **Notification** - User notifications +- **AdminLog** - Audit logging for admin actions + +### Route Structure +``` +/ - Public home +/booking - Consultation booking +/posts - Public posts/blog +/language/{locale} - Language switch (ar/en) + +/admin/* - Admin dashboard (requires admin middleware) +/client/* - Client dashboard +/settings/* - User settings (profile, password, 2FA, appearance) +``` + +### Middleware +- `admin` - Ensures user is admin (`EnsureUserIsAdmin`) +- `active` - Ensures user account is active (`EnsureUserIsActive`) +- `SetLocale` - Sets language from session/user preference ### Authentication (Fortify) All auth is handled via Fortify with custom Volt views. Features enabled: @@ -107,6 +139,8 @@ test('profile can be updated', function () { - **Bilingual:** Arabic (primary, RTL) / English (LTR) - Professional, elegant aesthetic with Libra scales logo +=== + === foundation rules ===