- Add newsletter database table migration
- Create newsletter controller with subscribe/unsubscribe endpoints
- Add newsletter routes and validation
- Implement newsletter service with email validation
- Add setup documentation and migration scripts
- Include test page for newsletter functionality
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add updated_at to SELECT query in getProfile
- Add updatedAt to response in getProfile
- Auto-update updated_at timestamp in updateProfile
- Add updated_at to RETURNING clause in updateProfile
- Include isVerified, createdAt, updatedAt in updateProfile response
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added GET /api/admin/users/:id endpoint to retrieve detailed user
information including contact info, personal data, and ticket statistics.
This enables the admin interface to display comprehensive user details
when clicking the "Détails" button.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Updated the getPendingTickets endpoint to return nested objects for user
and prize data instead of flat SQL columns. Frontend expects structure like
ticket.user.firstName and ticket.prize.name, which now displays correctly
in the employee verification interface instead of showing N/A.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed dotenv.config({ override: true }) to { override: false }
This ensures environment variables from docker-compose.yml take precedence
over the embedded .env file, allowing proper DB configuration in containers.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>