Every event in Eventify is tagged with two orthogonal pieces of metadata: a category that describes the type of event, and a status that reflects its current availability. Categories help attendees discover events by interest, while statuses are managed partly by the system and partly by admins to communicate whether tickets are still on sale or the event has concluded.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/astrxnomo/eventify-app/llms.txt
Use this file to discover all available pages before exploring further.
Categories
Categories classify what kind of event is being offered. The application ships with six seeded defaults defined inCategoryTableSeeder:
| Category | Description |
|---|---|
| Musical | Concerts, live music performances, and music festivals |
| Teatro | Theatre productions, plays, and stage performances |
| Deportivo | Sporting events, competitions, and athletic activities |
| Cultural | Art exhibitions, heritage events, and cultural gatherings |
| Familiar | Family-friendly activities and children’s events |
| Gastronómico | Food festivals, culinary events, and gastronomic experiences |
category model exposes a hasMany relationship back to events, and the Event model resolves the inverse with belongsTo(Category::class).
Admin Management
Categories are managed exclusively by admins through the dashboard. The full CRUD interface is available under/dashboard/admin/categories:
| Action | Method | Route | Description |
|---|---|---|---|
| List all categories | GET | /dashboard/admin/categories | Displays all categories |
| Show create form | GET | /dashboard/admin/categories/create | Renders the create form |
| Store new category | POST | /dashboard/admin/categories | Saves a new category |
| Show edit form | GET | /dashboard/admin/categories/{id}/edit | Loads a category for editing |
| Update category | PUT | /dashboard/admin/categories/{id} | Persists the updated name |
| Delete category | DELETE | /dashboard/admin/categories/{id} | Removes the category |
name:
Statuses
Statuses communicate an event’s current availability to attendees. Three statuses are seeded byStatusTableSeeder:
| ID | Name | Meaning |
|---|---|---|
1 | Disponible | Tickets are available for purchase |
2 | Agotado | All tickets have been sold; the event is sold out |
3 | Finalizado | The event has concluded; manually set by an admin |
Admin Management
Statuses are managed exclusively by admins through the dashboard under/dashboard/admin/status:
| Action | Method | Route | Description |
|---|---|---|---|
| List all statuses | GET | /dashboard/admin/status | Displays all statuses |
| Show create form | GET | /dashboard/admin/status/create | Renders the create form |
| Store new status | POST | /dashboard/admin/status | Saves a new status |
| Show edit form | GET | /dashboard/admin/status/{id}/edit | Loads a status for editing |
| Update status | PUT | /dashboard/admin/status/{id} | Persists the updated name |
| Delete status | DELETE | /dashboard/admin/status/{id} | Removes the status |
name as the only mutable field:
The
statuses table uses onDelete('set null') for events. Deleting a status record will set status_id to null on all associated events. The three default statuses should not be deleted, as their IDs (1, 2, 3) are hardcoded into the event creation and ticket purchase logic.How Status Affects Events
Status transitions happen through a combination of automatic system logic and manual admin overrides. The full lifecycle of an event’s status looks like this:Event created with available capacity → Disponible
When An event created with any positive capacity starts as Disponible. An event created with a capacity of
EventController::store() saves a new event, it checks the initial capacity value and assigns the status accordingly:0 starts immediately as Agotado.All tickets sold → Agotado
Each time a ticket purchase is processed by This ensures the event detail page and explore listing always reflect real-time availability without any manual intervention.
TicketController::store(), the remaining capacity is decremented. Once it reaches zero, the status transitions automatically:Event concludes → Finalizado (manual)
The Finalizado status is not set automatically by the system. An admin must navigate to the event edit form (
GET /dashboard/events/edit/{event}) and manually select Finalizado from the status dropdown. This is the appropriate action after an event’s end_date has passed and the organizer wants to communicate that no further activity is expected.Status Transition Summary
| Trigger | From | To | Actor |
|---|---|---|---|
Event created, capacity > 0 | — | Disponible | System |
Event created, capacity == 0 | — | Agotado | System |
| Ticket purchase depletes capacity | Disponible | Agotado | System |
| Admin marks event as concluded | Any | Finalizado | Admin |
| Admin manually overrides status | Any | Any | Admin |