feat: Add photo galleries to services, resource types management, and UI improvements

Major features:
- Add drag-and-drop photo gallery to Service create/edit modals
- Add Resource Types management section to Settings (CRUD for custom types)
- Add edit icon consistency to Resources table (pencil icon in actions)
- Improve Services page with drag-to-reorder and customer preview mockup

Backend changes:
- Add photos JSONField to Service model with migration
- Add ResourceType model with category (STAFF/OTHER), description fields
- Add ResourceTypeViewSet with CRUD operations
- Add service reorder endpoint for display order

Frontend changes:
- Services page: two-column layout, drag-reorder, photo upload
- Settings page: Resource Types tab with full CRUD modal
- Resources page: Edit icon in actions column instead of row click
- Sidebar: Payments link visibility based on role and paymentsEnabled
- Update types.ts with Service.photos and ResourceTypeDefinition

Note: Removed photos from ResourceType (kept only for Service)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
poduck
2025-11-28 01:11:53 -05:00
parent a7c756a8ec
commit b10426fbdb
52 changed files with 4259 additions and 356 deletions

View File

@@ -1,5 +1,36 @@
# SmoothSchedule Frontend Development Guide
## Project Overview
This is the React frontend for SmoothSchedule, a multi-tenant scheduling platform.
**See also:** `/home/poduck/Desktop/smoothschedule2/smoothschedule/CLAUDE.md` for backend documentation.
## Key Paths
```
/home/poduck/Desktop/smoothschedule2/
├── frontend/ # This React frontend
│ ├── src/
│ │ ├── api/client.ts # Axios API client
│ │ ├── components/ # Reusable components
│ │ ├── hooks/ # React Query hooks (useResources, useAuth, etc.)
│ │ ├── pages/ # Page components
│ │ ├── types.ts # TypeScript interfaces
│ │ ├── i18n/locales/en.json # English translations
│ │ └── utils/cookies.ts # Cookie utilities
│ ├── .env.development # Frontend env vars
│ └── vite.config.ts # Vite configuration
└── smoothschedule/ # Django backend (runs in Docker!)
├── docker-compose.local.yml # Docker config
├── .envs/.local/ # Backend env vars
├── config/settings/ # Django settings
└── smoothschedule/
├── schedule/ # Core scheduling app
└── users/ # User management
```
## Local Development Domain Setup
### Why lvh.me instead of localhost?