# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

This is a multi-domain Laravel application with Fortify/Sanctum authentication. The application supports 5 different domains with distinct themes and configurations:

- **Admin Portal**: portal.b2in.test - Backend admin user interface (uses Livewire/Flux UI)
- **B2in Main**: b2in.test - Frontend main page (uses TailwindCSS + Tailwind UI/Plus)
- **B2A Secondary**: b2a.test - Frontend secondary page (uses TailwindCSS + Tailwind UI/Plus)
- **Stileigentum**: stileigentum.test - Frontend landing page (uses TailwindCSS + Tailwind UI/Plus)
- **Style2own**: style2own.test - Frontend landing page (uses TailwindCSS + Tailwind UI/Plus)

## Development Commands

### Setup & Installation
```bash
composer install
npm install
php artisan key:generate
php artisan migrate
```

### Development Server
```bash
# Full development environment (server, queue, logs, vite)
composer run dev

# Individual components
php artisan serve
php artisan queue:listen --tries=1
php artisan pail --timeout=0
npm run dev
```

### Asset Compilation
```bash
# Development
npm run dev

# Production builds
npm run build          # Main build
npm run build:admin    # Admin portal assets
npm run build:web      # Web assets
```

### Testing
```bash
composer run test
# Or directly:
php artisan test
```

### Code Quality
```bash
./vendor/bin/pint      # Laravel Pint (PHP CS Fixer)
```

### Domain Management
```bash
php artisan domains:generate-favicons    # Generate placeholder favicons for all domains
```

## Architecture

### Multi-Domain System
The application uses a sophisticated domain routing system:

- Domain configuration is managed via `.env` variables (see `DOMAINS-CONFIG.md`)
- Each domain can have custom themes, colors, and CSS
- Domain simulation available for development (`DEV_SIMULATE_DOMAIN=true`)
- Routes are organized by domain type (`routes/domains.php`, `routes/admin.php`, `routes/web.php`)

### Frontend Architecture
- **Vite**: Multiple configurations for different domains (`vite.config.js`, `vite.portal.config.js`, `vite.web.config.js`)
- **TailwindCSS**: Version 4.x with domain-specific configurations (`tailwind.config.js`, `tailwind.portal.config.js`, `tailwind.web.config.js`)
- **Backend (Portal)**: Livewire with Flux UI components and Volt for reactive components
- **Frontend Sites**: Livewire with TailwindCSS + Tailwind UI/Plus components (no Flux UI)
- **Alpine.js**: For lightweight frontend interactions

### Backend Architecture
- **Laravel Framework**: Version 12.x
- **Authentication**: Laravel Fortify + Sanctum for API authentication
- **Permissions**: Spatie Laravel Permission package
- **Database**: Configured for multiple environments with migrations in `database/migrations/`
- **Providers**: Custom providers for theme handling (`app/Providers/ThemeServiceProvider.php`)

### Key Directories
- `app/Livewire/`: Livewire components and actions
- `resources/css/web/`: Domain-specific CSS themes
- `resources/views/`: Blade templates with Flux components
- `routes/`: Domain-separated route files
- `config/`: Laravel configuration files

### Development Tools
- **Laravel Sail**: Docker development environment
- **Laravel Pail**: Real-time log monitoring
- **Laravel Debugbar**: Development debugging (barryvdh/laravel-debugbar)
- **PestPHP**: Testing framework

## Domain Configuration

Domains are configured in `config/domains.php` with environment variables:
- `DOMAIN_PORTAL`, `DOMAIN_B2IN`, `DOMAIN_B2A`, `DOMAIN_STILEIGENTUM`, `DOMAIN_STYLE2OWN`
- Each domain has custom color schemes and font families defined in the config
- Development simulation via `DEV_SIMULATE_DOMAIN` and `DEV_SIMULATED_DOMAIN`

Domain-specific configurations include:
- **portal.b2in.test**: Admin backend with Flux UI theme
- **b2in.test**: Anthracite/Dynamic Blue color scheme, Inter/IBM Plex Sans fonts
- **b2a.test**: Azur Blue/Liberty Red color scheme, Inter/Merriweather fonts
- **stileigentum.test**: Style Blue/Style Sun color scheme, Inter/Ephesis fonts
- **style2own.test**: Imperial Blue/Sand Gold color scheme, Inter/EB Garamond fonts

For local development, add domains to your hosts file:
```
127.0.0.1   portal.b2in.test
127.0.0.1   b2in.test
127.0.0.1   b2a.test
127.0.0.1   stileigentum.test
127.0.0.1   style2own.test
```

## Important Files
- `DOMAINS-CONFIG.md`: Detailed domain configuration guide
- `FORTIFY-SANCTUM-SETUP.md`: Authentication setup guide
- `composer.json`: Contains useful dev scripts (`composer run dev`, `composer run test`)
- Multiple Vite/Tailwind configs for different build targets
