Commit Graph

1 Commits

Author SHA1 Message Date
dwindown
829d9d0d8f feat(api): Add CustomersController with full CRUD operations
Backend implementation for Customer module

Created CustomersController.php:
 GET /customers - List with pagination, search, role filter
 GET /customers/{id} - Get single customer with full details
 POST /customers - Create new customer with validation
 PUT /customers/{id} - Update customer data
 DELETE /customers/{id} - Delete customer (with safety checks)
 GET /customers/search - Autocomplete search

Features:
- Full WooCommerce integration (WC_Customer)
- Billing and shipping address management
- Order stats (total_orders, total_spent)
- Email uniqueness validation
- Username auto-generation from email
- Password generation if not provided
- Role-based permissions (list_users, create_users, etc.)
- Cannot delete current user (safety)
- Optional new account email notification

Data format:
- List: Basic customer info (id, name, email, registered)
- Detail: Full data including billing, shipping, stats
- Search: Minimal data for autocomplete (id, name, email)

Registered routes in Routes.php:
- Added CustomersController import
- Registered all customer endpoints

Next: Frontend API client and CRUD pages
2025-11-20 22:40:59 +07:00