# Events Admin Panel

## Routes

- `/admin/events`
- `/admin/events/create`
- `/admin/events/{event}/edit`
- `/admin/events/{event}/registrations`
- `/admin/events/{event}/registrations/export`
- `/admin/events/{event}/reminders`
- `/admin/events/{event}/offer`
- `/admin/events/{event}/analytics`
- `/admin/events/{event}/marketing`

## Permissions

- `events.view`
  Required to browse hosted events when the user is not an admin.
- `events.manage`
  Required for create, edit, offer builder, marketing tools, quick publish/unpublish.
- `events.view_reports`
  Required for analytics and CSV export.
- `events.send_reminders`
  Required for reminders center and manual send / retry.

`admin` and `super_admin` receive all event permissions from [EventPermissionsSeeder.php](C:/Users/a-djoudi/apps/ecoinv3/database/seeders/EventPermissionsSeeder.php).

## Operational Notes

- Cover uploads are stored on the `public` disk under `events/covers`.
- Quick publish/unpublish writes audit logs.
- Manual WhatsApp reminder sends create an outbox item and a message log, then mark the reminder as sent.
- Analytics use event registrations, attendance, offer click tracking, and a paid conversion proxy linked by phone/enrollment.
- Automated reminder dispatch runs through `php artisan events:dispatch-reminders` and is scheduled every minute in [routes/console.php](C:/Users/a-djoudi/apps/ecoinv3/routes/console.php).

## Demo Seed

[EventDemoSeeder.php](C:/Users/a-djoudi/apps/ecoinv3/database/seeders/EventDemoSeeder.php) creates:

- 2 demo events
- linked offers
- 50 mixed registrations
- reminder templates and reminder records
- one paid handoff example tied to enrollment and attendance
