Key Features
- Ticket Management: Create, update, and track support tickets
- Categorization: Organize tickets by predefined categories (maintenance, security, amenities, etc.)
- Status Tracking: Monitor ticket lifecycle from creation to resolution
- Comments System: Add threaded comments to tickets for communication
- Image Attachments: Attach images to tickets and comments for better documentation
- Role-Based Access: Different permissions for residents and administrators
Core Resources
Tickets
The main ticket resource represents an issue or request from a community resident. Each ticket includes:- Category classification (CategoriaTicketId)
- Current status (StatusId)
- Reporting date (FechaReporte)
- Description and content (Contenido, max 4,000 characters)
- Optional image attachments (ImageUrls array)
- Links to community and resident
- Audit timestamps (CreatedAt, UpdatedAt)
Categories
Predefined categories help organize tickets by type:- Common areas (Areas comunes)
- Amenities
- Maintenance (Mantenimiento)
- Security concerns
- Administrative requests
- Other classifications
/api/categoriaticket endpoints.
Statuses
Ticket statuses track the resolution lifecycle:- Nuevo (New): Newly created ticket
- En revisión (Under Review): Being reviewed by staff
- En investigación (Under Investigation): Under investigation
- En proceso (In Progress): Work in progress
- Cancelado (Cancelled): Cancelled ticket
- Resuelto (Resolved): Issue resolved
- Code-based status identification
- Descriptive labels (Descripcion)
- Color coding for UI display (hex color values)
Comments
Comments enable communication on tickets:- Threaded discussions via IdComment (replies to comments)
- Multi-origin support (tickets, events, posts, providers, etc.)
- Image attachments
- Resident attribution
- Text content (ComentarioTexto, max 4,000 characters)
/api/comentarios endpoints and use an origin-based system where origen = “ticket” and idOrigen = ticket ID.
Common Workflows
Resident Creating a Ticket
- Resident authenticates and gets their profile
- Resident retrieves available categories via
GET /api/categoriaticket - Resident creates ticket with
POST /api/ticketsspecifying:- CategoriaTicketId (required)
- Contenido (optional description)
- Images handled separately (paths stored in ImageUrls)
- System automatically assigns ResidentId from authenticated user
- System assigns initial status
- Resident can view their tickets via
GET /api/tickets/my
Administrator Managing Tickets
- Administrator views all tickets via
GET /api/ticketsor by community viaGET /api/tickets/community/{communityId} - Administrator filters and reviews tickets
- Administrator updates ticket status via
PUT /api/tickets/{id}with new StatusId - Administrator adds comments for updates via
POST /api/comentarios - Administrator resolves ticket by setting appropriate status
Adding Comments
- User views ticket details via
GET /api/tickets/{id} - User retrieves existing comments via
GET /api/comentarios/origen/ticket/{ticketId} - User creates comment via
POST /api/comentarioswith:- origen: “ticket”
- idOrigen: ticket ID as string
- comentarioTexto: comment text
- idComment: parent comment ID for replies (optional)
- Other users can reply to comment by setting idComment (threaded discussion)
Admin Creating Ticket on Behalf of Resident
- Admin authenticates with ADMIN_COMPANY or SYSTEM_ADMIN role
- Admin creates ticket via
POST /api/ticketsspecifying:- CategoriaTicketId (required)
- Contenido (optional)
- ResidentId (optional): specific resident
- CommunityId (optional): if ResidentId not provided, uses first resident from community
- Either ResidentId or CommunityId must be provided for admin creation
Authorization
All ticket endpoints require authentication. Authorization levels vary:Tickets Endpoints
- GET /api/tickets: ADMIN_COMPANY, SYSTEM_ADMIN only
- GET /api/tickets/community/: ADMIN_COMPANY, SYSTEM_ADMIN only
- GET /api/tickets/my: Any authenticated user (returns their tickets)
- GET /api/tickets/: Any authenticated user
- POST /api/tickets: Any authenticated user (residents create for self, admins can specify resident)
- PUT /api/tickets/: Owner or admins (residents can only update their own tickets)
- DELETE /api/tickets/: Any authenticated user
Categories & Statuses
- All authenticated users can read categories and statuses
Comments
- Any authenticated resident can create and manage comments on tickets they can access
Data Limits
- Ticket content: Maximum 4,000 characters
- Comment text: Maximum 4,000 characters
- Request size: 1 MB limit for JSON payloads
- Images: Stored as relative URL paths (e.g., “uploads/tickets/1/photo.jpg”)
- Origen field: Maximum 50 characters
- IdOrigen field: Maximum 50 characters