Create
Authenticated users with the User, Organizer, or Admin role can publish new events.
Discover
Anyone can browse, search, and paginate the public event feed without signing in.
Engage
Attendees can register, leave comments, and rate the organizer after the event.
Event fields
The following fields are returned in anEventDto response.
| Field | Type | Description |
|---|---|---|
id | Guid | Unique identifier for the event. |
title | string | Display name of the event. Required. |
description | string | Full description of the event. Required. |
ubication | string | Physical location or address. Required. |
date | DateTime | Date and time the event takes place. Required. |
publicationDate | DateTime | Timestamp of when the event was published. |
categoryId | Guid | ID of the category the event belongs to. |
categoryName | string | Human-readable category label. |
organizerId | string | User ID of the event organizer. |
organizerName | string | Display name of the organizer. |
organizerRating | decimal | Aggregated star rating of the organizer. |
organizerRatingsCount | int | Total number of ratings the organizer has received. |
attendancesCount | int | Number of registered attendances. |
commentsCount | int | Number of comments posted on the event. |
attendances | AttendanceDto[] | List of attendance records for the event. |
comments | CommentDto[] | List of comments on the event. |
Role-based access
| Operation | Anonymous | User | Organizer | Admin |
|---|---|---|---|---|
| List events (search + paginate) | Yes | Yes | Yes | Yes |
| Get event by ID | Yes | Yes | Yes | Yes |
| Create event | No | Yes | Yes | Yes |
| Edit event | No | Yes (own) | Yes (own) | Yes |
| Delete event | No | Yes (own) | Yes (own) | Yes |
The
GET /api/events and GET /api/events/{id} endpoints are decorated with [AllowAnonymous] and do not require a Bearer token.Event lifecycle
An event follows this general progression after it is published:- Creation — An authenticated user submits an
EventCreateDtotoPOST /api/events. The organizer ID is resolved from the authenticated user. - Discovery — The event appears in the paginated feed returned by
GET /api/events. Visitors can filter results with thesearchTermquery parameter. - Attendance — Authenticated users register their interest via
POST /api/attendances. - Rating — Once an event has passed, attendees can rate the organizer via
POST /api/ratings.
API endpoints
List events
EventDto objects. Both query parameters are optional.
Get event by ID
EventDto including full attendance and comment lists.
Create event
Edit event
EventEditDto with the same fields as create, minus organizerId.