53 KiB
53 KiB
API Reference
Generated from controller source.
- Total endpoints: 125
- Auth: Firebase Bearer token unless endpoint is public.
- Regenerate:
python scripts/generate_api_docs.py
Usage Template
curl -X <METHOD> "https://api.hoteltrisolaris.in<PATH>" \
-H "Authorization: Bearer <FIREBASE_ID_TOKEN>" \
-H "Content-Type: application/json" \
-d '<REQUEST_BODY_JSON>'
| Method | Path | Path Params | Query Params | Body Type | Response Type | Status | Auth | Common Errors | Behavior | Handler |
|---|---|---|---|---|---|---|---|---|---|---|
GET |
/ |
- |
- |
- |
Map<String, String> |
200 |
Public/unspecified | - | Root. | src/main/kotlin/com/android/trisolarisserver/controller/system/Health.kt:14 (root) |
GET |
/amenities |
- |
- |
- |
List<AmenityResponse> |
200 |
Authenticated user (Firebase) | 401 (Missing principal) | List resources (list amenities). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomAmenities.kt:40 (listAmenities) |
POST |
/amenities |
- |
- |
AmenityUpsertRequest |
AmenityResponse |
201 |
SUPER_ADMIN | 401 (User not found), 403 (Super admin only), 400 (Icon key not found), 409 (Amenity already exists) | Create resource (create amenity). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomAmenities.kt:49 (createAmenity) |
DELETE |
/amenities/{amenityId} |
amenityId:UUID |
- |
- |
Unit |
204 |
SUPER_ADMIN | 401 (User not found), 403 (Super admin only), 404 (Amenity not found) | Delete resource (delete amenity). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomAmenities.kt:92 (deleteAmenity) |
PUT |
/amenities/{amenityId} |
amenityId:UUID |
- |
AmenityUpsertRequest |
AmenityResponse |
200 |
SUPER_ADMIN | 401 (User not found), 403 (Super admin only), 404 (Amenity not found), 400 (Icon key not found), 409 (Amenity already exists) | Update resource (update amenity). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomAmenities.kt:68 (updateAmenity) |
GET |
/auth/me |
- |
- |
- |
ResponseEntity<AuthResponse> |
200 |
Authenticated user (Firebase) | - | Me. | src/main/kotlin/com/android/trisolarisserver/controller/auth/Auth.kt:44 (me) |
PUT |
/auth/me |
- |
- |
UpdateMeRequest |
ResponseEntity<AuthResponse> |
200 |
Authenticated user (Firebase) | 401 (User not found) | Update resource (update me). | src/main/kotlin/com/android/trisolarisserver/controller/auth/Auth.kt:54 (updateMe) |
POST |
/auth/verify |
- |
- |
- |
ResponseEntity<AuthResponse> |
200 |
Authenticated user (Firebase) | - | Verify. | src/main/kotlin/com/android/trisolarisserver/controller/auth/Auth.kt:33 (verify) |
GET |
/health |
- |
- |
- |
Map<String, String> |
200 |
Public/unspecified | - | Health. | src/main/kotlin/com/android/trisolarisserver/controller/system/Health.kt:9 (health) |
GET |
/icons/png |
- |
- |
- |
List<String> |
200 |
Public/unspecified | - | List resources (list png). | src/main/kotlin/com/android/trisolarisserver/controller/assets/IconFiles.kt:23 (listPng) |
GET |
/icons/png/{filename} |
filename:String |
- |
- |
ResponseEntity<FileSystemResource> |
200 |
Public/unspecified | - | Get resource (get png). | src/main/kotlin/com/android/trisolarisserver/controller/assets/IconFiles.kt:39 (getPng) |
GET |
/image-tags |
- |
- |
- |
List<RoomImageTagResponse> |
200 |
Authenticated user (Firebase) | - | List resources (list tags). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImageTags.kt:35 (listTags) |
POST |
/image-tags |
- |
- |
RoomImageTagUpsertRequest |
RoomImageTagResponse |
201 |
SUPER_ADMIN | 401 (User not found), 403 (Super admin only), 409 (Tag already exists) | Create resource (create tag). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImageTags.kt:43 (createTag) |
DELETE |
/image-tags/{tagId} |
tagId:UUID |
- |
- |
Unit |
204 |
SUPER_ADMIN | 401 (User not found), 403 (Super admin only), 404 (Tag not found) | Delete resource (delete tag). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImageTags.kt:74 (deleteTag) |
PUT |
/image-tags/{tagId} |
tagId:UUID |
- |
RoomImageTagUpsertRequest |
RoomImageTagResponse |
200 |
SUPER_ADMIN | 401 (User not found), 403 (Super admin only), 404 (Tag not found), 409 (Tag already exists) | Update resource (update tag). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImageTags.kt:56 (updateTag) |
GET |
/properties |
- |
- |
- |
List<PropertyResponse> |
200 |
Authenticated user (Firebase) | 401 (User not found) | List resources (list properties). | src/main/kotlin/com/android/trisolarisserver/controller/property/Properties.kt:92 (listProperties) |
POST |
/properties |
- |
- |
PropertyCreateRequest |
PropertyResponse |
201 |
Roles: ADMIN | 401 (User id missing; User not found), 400 (Unknown transport mode; $fieldName must be HH:mm), 409 (Unable to generate property code) | Create resource (create property). | src/main/kotlin/com/android/trisolarisserver/controller/property/Properties.kt:53 (createProperty) |
POST |
/properties/access-codes/join |
- |
- |
PropertyAccessCodeJoinRequest |
PropertyUserResponse |
200 |
Authenticated user (Firebase) | 401 (User not found; Missing principal), 404 (Invalid code; Property not found), 400 (Property code required), 409 (User already a member) | Join with access code. | src/main/kotlin/com/android/trisolarisserver/controller/property/PropertyAccessCodes.kt:91 (joinWithAccessCode) |
PUT |
/properties/{propertyId} |
propertyId:UUID |
- |
PropertyUpdateRequest |
PropertyResponse |
200 |
Roles: ADMIN | 401 (Missing principal), 403 (Property membership required), 404 (Property not found), 400 (Unknown transport mode; $fieldName must be HH:mm), 409 (Property code already exists) | Update resource (update property). | src/main/kotlin/com/android/trisolarisserver/controller/property/Properties.kt:306 (updateProperty) |
POST |
/properties/{propertyId}/access-codes |
propertyId:UUID |
- |
PropertyAccessCodeCreateRequest |
PropertyAccessCodeResponse |
201 |
Roles: ADMIN | 401 (User not found; Missing principal), 403 (Property membership required), 404 (Property not found), 400 (ADMIN cannot be invited by code; At least one role is required), 409 (Unable to generate code, try again) | Create resource (create access code). | src/main/kotlin/com/android/trisolarisserver/controller/property/PropertyAccessCodes.kt:45 (createAccessCode) |
GET |
/properties/{propertyId}/billing-policy |
propertyId:UUID |
- |
- |
PropertyBillingPolicyResponse |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Property not found) | Get resource (get billing policy). | src/main/kotlin/com/android/trisolarisserver/controller/property/Properties.kt:118 (getBillingPolicy) |
PUT |
/properties/{propertyId}/billing-policy |
propertyId:UUID |
- |
PropertyBillingPolicyRequest |
PropertyBillingPolicyResponse |
200 |
Roles: ADMIN | 401 (Missing principal), 403 (Property membership required), 404 (Property not found), 400 ($fieldName must be HH:mm) | Update resource (update billing policy). | src/main/kotlin/com/android/trisolarisserver/controller/property/Properties.kt:135 (updateBillingPolicy) |
GET |
/properties/{propertyId}/bookings |
propertyId:UUID |
status:String? (optional) |
- |
List<BookingListItem> |
200 |
Roles: ADMIN, FINANCE, HOUSEKEEPING, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Property not found), 400 (Invalid status: $value) | List resources (list bookings). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:187 (listBookings) |
POST |
/properties/{propertyId}/bookings |
propertyId:UUID |
- |
BookingCreateRequest |
BookingCreateResponse |
201 |
Roles: ADMIN, MANAGER, STAFF | 401 (User not found; Missing principal), 403 (Required property role not granted), 404 (Property not found), 400 (expectedCheckInAt required; expectedCheckOutAt required) | Create resource (create booking). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:99 (createBooking) |
GET |
/properties/{propertyId}/bookings/{bookingId} |
propertyId:UUID, bookingId:UUID |
- |
- |
BookingDetailResponse |
200 |
Roles: ADMIN, FINANCE, HOUSEKEEPING, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property) | Get resource (get booking). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:282 (getBooking) |
GET |
/properties/{propertyId}/bookings/{bookingId}/balance |
propertyId:UUID, bookingId:UUID |
- |
- |
BookingBalanceResponse |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Booking not found; Booking not found for property) | Get resource (get balance). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingBalances.kt:32 (getBalance) |
POST |
/properties/{propertyId}/bookings/{bookingId}/billing-policy |
propertyId:UUID, bookingId:UUID |
- |
BookingBillingPolicyUpdateRequest |
Unit |
204 |
Roles: ADMIN, MANAGER, STAFF | 401 (User not found; Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 ($fieldName required; $fieldName must be HH:mm), 409 (Booking closed) | Update resource (update billing policy). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:476 (updateBillingPolicy) |
POST |
/properties/{propertyId}/bookings/{bookingId}/cancel |
propertyId:UUID, bookingId:UUID |
- |
BookingCancelRequest |
Unit |
204 |
Roles: ADMIN, MANAGER, STAFF | 401 (User not found; Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 409 (Cannot cancel checked-in booking) | Cancel flow (cancel). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:695 (cancel) |
GET |
/properties/{propertyId}/bookings/{bookingId}/charges |
propertyId:UUID, bookingId:UUID |
- |
- |
List<ChargeResponse> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Booking not found; Booking not found for property) | List resources (list). | src/main/kotlin/com/android/trisolarisserver/controller/payment/Charges.kt:80 (list) |
POST |
/properties/{propertyId}/bookings/{bookingId}/charges |
propertyId:UUID, bookingId:UUID |
- |
ChargeCreateRequest |
ChargeResponse |
201 |
Roles: ADMIN, FINANCE, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (amount must be > 0; Invalid timestamp) | Create resource (create). | src/main/kotlin/com/android/trisolarisserver/controller/payment/Charges.kt:44 (create) |
POST |
/properties/{propertyId}/bookings/{bookingId}/check-in/bulk |
propertyId:UUID, bookingId:UUID |
- |
BookingBulkCheckInRequest |
Unit |
201 |
Roles: ADMIN, MANAGER, STAFF | 401 (User not found; Missing principal), 403 (Required property role not granted), 404 (Room not found; Booking not found), 400 (stays required; Duplicate roomId in stays), 409 (Booking not open; Room not available) | Bulk check in. | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:353 (bulkCheckIn) |
POST |
/properties/{propertyId}/bookings/{bookingId}/check-out |
propertyId:UUID, bookingId:UUID |
- |
BookingCheckOutRequest |
Unit |
204 |
Roles: ADMIN, MANAGER, STAFF | 401 (User not found; Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (Invalid timestamp), 409 (Booking not checked in; Room stay amount is outside allowed range) | Check out flow (check out). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:527 (checkOut) |
POST |
/properties/{propertyId}/bookings/{bookingId}/expected-dates |
propertyId:UUID, bookingId:UUID |
- |
BookingExpectedDatesUpdateRequest |
Unit |
204 |
Roles: ADMIN, MANAGER, STAFF | 401 (User not found; Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (Invalid date range; Invalid timestamp), 409 (Cannot change expected check-in after check-in; Booking closed) | Update resource (update expected dates). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:430 (updateExpectedDates) |
POST |
/properties/{propertyId}/bookings/{bookingId}/link-guest |
propertyId:UUID, bookingId:UUID |
- |
BookingLinkGuestRequest |
Unit |
204 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Guest not found; Booking not found), 400 (Guest not in property) | Link guest. | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:326 (linkGuest) |
POST |
/properties/{propertyId}/bookings/{bookingId}/no-show |
propertyId:UUID, bookingId:UUID |
- |
BookingNoShowRequest |
Unit |
204 |
Roles: ADMIN, MANAGER, STAFF | 401 (User not found; Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 409 (Booking not open) | No-show flow (no show). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:720 (noShow) |
GET |
/properties/{propertyId}/bookings/{bookingId}/payments |
propertyId:UUID, bookingId:UUID |
- |
- |
List<PaymentResponse> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Booking not found; Booking not found for property) | List resources (list). | src/main/kotlin/com/android/trisolarisserver/controller/payment/Payments.kt:86 (list) |
POST |
/properties/{propertyId}/bookings/{bookingId}/payments |
propertyId:UUID, bookingId:UUID |
- |
PaymentCreateRequest |
PaymentResponse |
201 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Property not found; Booking not found), 400 (amount must be > 0; Invalid timestamp) | Create resource (create). | src/main/kotlin/com/android/trisolarisserver/controller/payment/Payments.kt:47 (create) |
POST |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/close |
propertyId:UUID, bookingId:UUID |
- |
RazorpayPaymentRequestCloseRequest |
RazorpayPaymentRequestCloseResponse |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (Provide exactly one of qrId or paymentLinkId; Razorpay settings not configured), 502 (Razorpay close request failed; Razorpay cancel request failed) | Close request. | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayPaymentRequestsController.kt:93 (closeRequest) |
POST |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/payment-link |
propertyId:UUID, bookingId:UUID |
- |
RazorpayPaymentLinkCreateRequest |
RazorpayPaymentLinkCreateResponse |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (Booking is not active; Razorpay settings not configured), 502 (Razorpay request failed) | Create resource (create payment link). | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayPaymentLinksController.kt:47 (createPaymentLink) |
GET |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/qr |
propertyId:UUID, bookingId:UUID |
- |
- |
List<RazorpayQrRecordResponse> |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property) | List resources (list qr). | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayQrPayments.kt:292 (listQr) |
POST |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/qr |
propertyId:UUID, bookingId:UUID |
- |
RazorpayQrGenerateRequest |
RazorpayQrGenerateResponse |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (Booking is not active; Razorpay settings not configured), 502 (Razorpay request failed) | Create resource (create qr). | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayQrPayments.kt:56 (createQr) |
GET |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/qr/active |
propertyId:UUID, bookingId:UUID |
- |
- |
RazorpayQrGenerateResponse? |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property) | Get resource (get active qr). | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayQrPayments.kt:157 (getActiveQr) |
POST |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/qr/close |
propertyId:UUID, bookingId:UUID |
- |
- |
RazorpayQrGenerateResponse? |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (Razorpay settings not configured; Razorpay test keys not configured), 502 (Razorpay close request failed) | Close active qr. | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayQrPayments.kt:180 (closeActiveQr) |
POST |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/qr/{qrId}/close |
propertyId:UUID, bookingId:UUID, qrId:String |
- |
- |
RazorpayQrGenerateResponse? |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (Razorpay settings not configured; Razorpay test keys not configured), 502 (Razorpay close request failed) | Close qr by id. | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayQrPayments.kt:212 (closeQrById) |
GET |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/qr/{qrId}/events |
propertyId:UUID, qrId:String |
- |
- |
List<RazorpayQrEventResponse> |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted) | Qr events. | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayQrPayments.kt:244 (qrEvents) |
GET |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/qr/{qrId}/events/stream |
propertyId:UUID, bookingId:UUID, qrId:String |
- |
- |
SseEmitter |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted) | Stream events/data (stream qr events). | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayQrPayments.kt:273 (streamQrEvents) |
POST |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/refund |
propertyId:UUID, bookingId:UUID |
- |
RazorpayRefundRequest |
RazorpayRefundResponse |
200 |
Roles: ADMIN, FINANCE, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (paymentId is required; amount must be <= payment amount), 502 (Razorpay refund request failed) | Refund. | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayRefundsController.kt:42 (refund) |
GET |
/properties/{propertyId}/bookings/{bookingId}/payments/razorpay/requests |
propertyId:UUID, bookingId:UUID |
- |
- |
List<RazorpayPaymentRequestResponse> |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property) | List resources (list requests). | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayPaymentRequestsController.kt:45 (listRequests) |
DELETE |
/properties/{propertyId}/bookings/{bookingId}/payments/{paymentId} |
propertyId:UUID, bookingId:UUID, paymentId:UUID |
- |
- |
Unit |
204 |
Roles: ADMIN | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (Cash payments can only be deleted for OPEN or CHECKED_IN bookings; Only CASH payments can be deleted) | Delete resource (delete). | src/main/kotlin/com/android/trisolarisserver/controller/payment/Payments.kt:103 (delete) |
GET |
/properties/{propertyId}/bookings/{bookingId}/room-requests |
propertyId:UUID, bookingId:UUID |
- |
- |
List<BookingRoomRequestResponse> |
200 |
Roles: ADMIN, FINANCE, HOUSEKEEPING, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property) | List resources (list). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingRoomRequests.kt:103 (list) |
POST |
/properties/{propertyId}/bookings/{bookingId}/room-requests |
propertyId:UUID, bookingId:UUID |
- |
BookingRoomRequestCreateRequest |
BookingRoomRequestResponse |
201 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 400 (quantity must be > 0; fromAt required), 409 (Booking closed; Insufficient room type availability) | Create resource (create). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingRoomRequests.kt:48 (create) |
DELETE |
/properties/{propertyId}/bookings/{bookingId}/room-requests/{requestId} |
propertyId:UUID, bookingId:UUID, requestId:UUID |
- |
- |
Unit |
204 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property), 409 (Cannot cancel fulfilled room request) | Cancel flow (cancel). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingRoomRequests.kt:121 (cancel) |
POST |
/properties/{propertyId}/bookings/{bookingId}/room-stays/{roomStayId}/check-out |
propertyId:UUID, bookingId:UUID, roomStayId:UUID |
- |
BookingCheckOutRequest |
Unit |
204 |
Roles: ADMIN, MANAGER, STAFF | 401 (User not found; Missing principal), 403 (Required property role not granted), 404 (Room stay not found for booking; Booking not found), 400 (Invalid timestamp), 409 (Booking not checked in; Room stay amount is outside allowed range) | Check out flow (check out room stay). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:583 (checkOutRoomStay) |
GET |
/properties/{propertyId}/bookings/{bookingId}/stream |
propertyId:UUID, bookingId:UUID |
- |
- |
org.springframework.web.servlet.mvc.method.annotation.SseEmitter |
200 |
Roles: ADMIN, FINANCE, HOUSEKEEPING, MANAGER, STAFF | 401 (Missing principal), 403 (Required property role not granted), 404 (Booking not found; Booking not found for property) | Stream events/data (stream booking). | src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt:302 (streamBooking) |
GET |
/properties/{propertyId}/cancellation-policy |
propertyId:UUID |
- |
- |
CancellationPolicyResponse |
200 |
Authenticated user (Firebase) | - | Get resource (get). | src/main/kotlin/com/android/trisolarisserver/controller/property/CancellationPolicies.kt:34 (get) |
PUT |
/properties/{propertyId}/cancellation-policy |
propertyId:UUID |
- |
CancellationPolicyUpsertRequest |
CancellationPolicyResponse |
200 |
Roles: ADMIN | 401 (Missing principal), 403 (Required property role not granted), 404 (Property not found), 400 (freeDaysBeforeCheckin must be >= 0; Unknown penaltyMode) | Upsert. | src/main/kotlin/com/android/trisolarisserver/controller/property/CancellationPolicies.kt:53 (upsert) |
GET |
/properties/{propertyId}/code |
propertyId:UUID |
- |
- |
PropertyCodeResponse |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Property not found) | Get resource (get property code). | src/main/kotlin/com/android/trisolarisserver/controller/property/Properties.kt:105 (getPropertyCode) |
GET |
/properties/{propertyId}/guests/search |
propertyId:UUID |
phone:String? (optional), vehicleNumber:String? (optional) |
- |
List<GuestResponse> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Property not found), 400 (phone or vehicleNumber required) | Search. | src/main/kotlin/com/android/trisolarisserver/controller/guest/Guests.kt:75 (search) |
GET |
/properties/{propertyId}/guests/visit-count |
propertyId:UUID |
phone:String (required) |
- |
GuestVisitCountResponse |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Property not found), 400 (phone required) | Get resource (get visit count). | src/main/kotlin/com/android/trisolarisserver/controller/guest/Guests.kt:113 (getVisitCount) |
GET |
/properties/{propertyId}/guests/{guestId} |
propertyId:UUID, guestId:UUID |
- |
- |
GuestResponse |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Property or guest not found), 400 (Guest not in property) | Get resource (get guest). | src/main/kotlin/com/android/trisolarisserver/controller/guest/Guests.kt:102 (getGuest) |
PUT |
/properties/{propertyId}/guests/{guestId} |
propertyId:UUID, guestId:UUID |
- |
GuestUpdateRequest |
GuestResponse |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Property or guest not found), 400 (Guest not in property), 409 (Phone number already exists) | Update resource (update guest). | src/main/kotlin/com/android/trisolarisserver/controller/guest/Guests.kt:45 (updateGuest) |
GET |
/properties/{propertyId}/guests/{guestId}/documents |
propertyId:UUID, guestId:UUID |
- |
- |
List<GuestDocumentResponse> |
200 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted) | List resources (list documents). | src/main/kotlin/com/android/trisolarisserver/controller/guest/GuestDocuments.kt:125 (listDocuments) |
POST |
/properties/{propertyId}/guests/{guestId}/documents |
propertyId:UUID, guestId:UUID |
bookingId:UUID (required) |
- |
GuestDocumentResponse |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal; User not found), 403 (Property membership required), 404 (Booking not found; Property or guest not found), 400 (File is empty; Video files are not allowed), 409 (Duplicate document) | Upload document. | src/main/kotlin/com/android/trisolarisserver/controller/guest/GuestDocuments.kt:65 (uploadDocument) |
GET |
/properties/{propertyId}/guests/{guestId}/documents/stream |
propertyId:UUID, guestId:UUID |
- |
- |
org.springframework.web.servlet.mvc.method.annotation.SseEmitter |
200 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted) | Stream events/data (stream documents). | src/main/kotlin/com/android/trisolarisserver/controller/guest/GuestDocuments.kt:138 (streamDocuments) |
DELETE |
/properties/{propertyId}/guests/{guestId}/documents/{documentId} |
propertyId:UUID, guestId:UUID, documentId:UUID |
- |
- |
Unit |
204 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Document not found), 400 (Documents can only be deleted for OPEN or CHECKED_IN bookings), 500 (Failed to delete file) | Delete resource (delete document). | src/main/kotlin/com/android/trisolarisserver/controller/guest/GuestDocuments.kt:184 (deleteDocument) |
GET |
/properties/{propertyId}/guests/{guestId}/documents/{documentId}/file |
propertyId:UUID, guestId:UUID, documentId:UUID |
token:String? (optional) |
- |
ResponseEntity<FileSystemResource> |
200 |
Roles: ADMIN, MANAGER | 401 (Invalid token; Missing principal), 403 (Required property role not granted), 404 (Document not found; File missing) | Download document. | src/main/kotlin/com/android/trisolarisserver/controller/guest/GuestDocuments.kt:152 (downloadDocument) |
GET |
/properties/{propertyId}/guests/{guestId}/ratings |
propertyId:UUID, guestId:UUID |
- |
- |
List<GuestRatingResponse> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Property or guest not found), 400 (Guest not in property) | List resources (list). | src/main/kotlin/com/android/trisolarisserver/controller/guest/GuestRatings.kt:79 (list) |
POST |
/properties/{propertyId}/guests/{guestId}/ratings |
propertyId:UUID, guestId:UUID |
- |
GuestRatingCreateRequest |
GuestRatingResponse |
201 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Booking not found; Property or guest not found), 400 (Booking not in property; Booking not linked to guest), 409 (Rating already exists for booking) | Create resource (create). | src/main/kotlin/com/android/trisolarisserver/controller/guest/GuestRatings.kt:42 (create) |
POST |
/properties/{propertyId}/guests/{guestId}/signature |
propertyId:UUID, guestId:UUID |
- |
- |
GuestResponse |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Property or guest not found), 400 (File is empty; Only SVG allowed) | Upload signature. | src/main/kotlin/com/android/trisolarisserver/controller/guest/Guests.kt:170 (uploadSignature) |
GET |
/properties/{propertyId}/guests/{guestId}/signature/file |
propertyId:UUID, guestId:UUID |
- |
- |
ResponseEntity<FileSystemResource> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Signature not found; Property or guest not found), 400 (Guest not in property) | Download signature. | src/main/kotlin/com/android/trisolarisserver/controller/guest/Guests.kt:194 (downloadSignature) |
POST |
/properties/{propertyId}/guests/{guestId}/vehicles |
propertyId:UUID, guestId:UUID |
- |
GuestVehicleRequest |
GuestResponse |
201 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Booking not found; Property or guest not found), 400 (Booking not in property; Guest not in property), 409 (Booking linked to different guest; Vehicle number already exists) | Add vehicle. | src/main/kotlin/com/android/trisolarisserver/controller/guest/Guests.kt:130 (addVehicle) |
POST |
/properties/{propertyId}/inbound-emails/manual |
propertyId:UUID |
file:MultipartFile (required) |
- |
ManualInboundResponse |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Property membership required), 404 (Property not found), 400 (File is empty; Only PDF is supported) | Upload manual pdf. | src/main/kotlin/com/android/trisolarisserver/controller/email/InboundEmailManual.kt:41 (uploadManualPdf) |
GET |
/properties/{propertyId}/inbound-emails/{emailId}/file |
propertyId:UUID, emailId:UUID |
- |
- |
ResponseEntity<FileSystemResource> |
200 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Property membership required), 404 (Email not found; Email PDF missing) | Download email pdf. | src/main/kotlin/com/android/trisolarisserver/controller/email/InboundEmails.kt:32 (downloadEmailPdf) |
GET |
/properties/{propertyId}/rate-plans |
propertyId:UUID |
roomTypeCode:String? (optional) |
- |
List<RatePlanResponse> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required) | List resources (list). | src/main/kotlin/com/android/trisolarisserver/controller/rate/RatePlans.kt:79 (list) |
POST |
/properties/{propertyId}/rate-plans |
propertyId:UUID |
- |
RatePlanCreateRequest |
RatePlanResponse |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Property not found; Room type not found), 409 (Rate plan code already exists for room type) | Create resource (create). | src/main/kotlin/com/android/trisolarisserver/controller/rate/RatePlans.kt:51 (create) |
DELETE |
/properties/{propertyId}/rate-plans/{ratePlanId} |
propertyId:UUID, ratePlanId:UUID |
- |
- |
Unit |
204 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Rate plan not found) | Delete resource (delete). | src/main/kotlin/com/android/trisolarisserver/controller/rate/RatePlans.kt:114 (delete) |
PUT |
/properties/{propertyId}/rate-plans/{ratePlanId} |
propertyId:UUID, ratePlanId:UUID |
- |
RatePlanUpdateRequest |
RatePlanResponse |
200 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Rate plan not found) | Update resource (update). | src/main/kotlin/com/android/trisolarisserver/controller/rate/RatePlans.kt:95 (update) |
GET |
/properties/{propertyId}/rate-plans/{ratePlanId}/calendar |
propertyId:UUID, ratePlanId:UUID |
from:String (required), to:String (required) |
- |
RateCalendarAverageResponse |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Rate plan not found), 400 (to must be on/after from; Invalid date format) | List resources (list calendar). | src/main/kotlin/com/android/trisolarisserver/controller/rate/RatePlans.kt:170 (listCalendar) |
POST |
/properties/{propertyId}/rate-plans/{ratePlanId}/calendar |
propertyId:UUID, ratePlanId:UUID |
- |
RateCalendarRangeUpsertRequest |
List<RateCalendarResponse> |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Rate plan not found), 400 (to must be on/after from; Invalid date format) | Upsert calendar. | src/main/kotlin/com/android/trisolarisserver/controller/rate/RatePlans.kt:129 (upsertCalendar) |
DELETE |
/properties/{propertyId}/rate-plans/{ratePlanId}/calendar/{rateDate} |
propertyId:UUID, ratePlanId:UUID, rateDate:String |
- |
- |
Unit |
204 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Rate plan not found), 400 (Invalid date format) | Delete resource (delete calendar). | src/main/kotlin/com/android/trisolarisserver/controller/rate/RatePlans.kt:206 (deleteCalendar) |
GET |
/properties/{propertyId}/razorpay-settings |
propertyId:UUID |
- |
- |
RazorpaySettingsResponse |
200 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted) | Get resource (get settings). | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpaySettingsController.kt:33 (getSettings) |
PUT |
/properties/{propertyId}/razorpay-settings |
propertyId:UUID |
- |
RazorpaySettingsUpsertRequest |
RazorpaySettingsResponse |
200 |
Roles: ADMIN | 401 (Missing principal), 403 (Required property role not granted), 404 (Property not found), 400 (keyId and keySecret must be provided together; keyIdTest and keySecretTest must be provided together) | Upsert settings. | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpaySettingsController.kt:57 (upsertSettings) |
POST |
/properties/{propertyId}/razorpay/return/failure |
propertyId:UUID |
- |
- |
Unit |
204 |
Public/unspecified | - | Failure. | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayReturnController.kt:22 (failure) |
POST |
/properties/{propertyId}/razorpay/return/success |
propertyId:UUID |
- |
- |
Unit |
204 |
Public/unspecified | - | Success. | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayReturnController.kt:16 (success) |
POST |
/properties/{propertyId}/razorpay/webhook |
propertyId:UUID |
- |
String? |
Unit |
204 |
Public/unspecified | 401 (Missing signature; Invalid signature), 404 (Property not found), 400 (Razorpay settings not configured; Webhook secret not configured) | Capture. | src/main/kotlin/com/android/trisolarisserver/controller/razorpay/RazorpayWebhookCapture.kt:53 (capture) |
GET |
/properties/{propertyId}/room-stays/active |
propertyId:UUID |
- |
- |
List<ActiveRoomStayResponse> |
200 |
Roles: ADMIN, AGENT, FINANCE, GUIDE, HOUSEKEEPING, MANAGER, STAFF, SUPERVISOR | 401 (Missing principal), 403 (Agents cannot view active stays; Property membership required) | List resources (list active room stays). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomStays.kt:42 (listActiveRoomStays) |
GET |
/properties/{propertyId}/room-stays/cards/{cardIndex} |
propertyId:UUID, cardIndex:Int |
- |
- |
IssuedCardResponse |
200 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Property membership required), 404 (Card not found) | Get resource (get card by index). | src/main/kotlin/com/android/trisolarisserver/controller/card/IssuedCards.kt:158 (getCardByIndex) |
POST |
/properties/{propertyId}/room-stays/cards/{cardIndex}/revoke |
propertyId:UUID, cardIndex:Int |
- |
- |
CardRevokeResponse |
200 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Property membership required), 404 (Card not found) | Revoke. | src/main/kotlin/com/android/trisolarisserver/controller/card/IssuedCards.kt:138 (revoke) |
GET |
/properties/{propertyId}/room-stays/{roomStayId}/cards |
propertyId:UUID, roomStayId:UUID |
- |
- |
List<IssuedCardResponse> |
200 |
Roles: ADMIN, MANAGER, STAFF, SUPERVISOR | 401 (Missing principal), 404 (Room stay not found for property) | List resources (list). | src/main/kotlin/com/android/trisolarisserver/controller/card/IssuedCards.kt:125 (list) |
POST |
/properties/{propertyId}/room-stays/{roomStayId}/cards |
propertyId:UUID, roomStayId:UUID |
- |
IssueCardRequest |
IssuedCardResponse |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal; User not found), 403 (Property membership required), 404 (Room stay not found for property), 400 (cardId required; cardIndex required), 409 (Active card already exists for room stay; Active card already exists for room) | Issue. | src/main/kotlin/com/android/trisolarisserver/controller/card/IssuedCards.kt:83 (issue) |
POST |
/properties/{propertyId}/room-stays/{roomStayId}/cards/prepare |
propertyId:UUID, roomStayId:UUID |
- |
CardPrepareRequest |
CardPrepareResponse |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal; User not found), 403 (Property membership required), 404 (Room stay not found for property; Property not found), 400 (expiresAt required; expiresAt must be after issuedAt), 409 (Room stay is already closed) | Prepare. | src/main/kotlin/com/android/trisolarisserver/controller/card/IssuedCards.kt:50 (prepare) |
POST |
/properties/{propertyId}/room-stays/{roomStayId}/void |
propertyId:UUID, roomStayId:UUID |
- |
RoomStayVoidRequest |
Unit |
200 |
Roles: ADMIN, MANAGER, STAFF | 401 (Missing principal), 403 (Missing role; Cannot void stay after first payment), 404 (Room stay not found for property), 409 (Cannot void checked-out room stay) | Void room stay. | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomStays.kt:78 (voidRoomStay) |
GET |
/properties/{propertyId}/room-types |
propertyId:UUID |
- |
- |
List<RoomTypeResponse> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required) | List resources (list room types). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomTypes.kt:49 (listRoomTypes) |
POST |
/properties/{propertyId}/room-types |
propertyId:UUID |
- |
RoomTypeUpsertRequest |
RoomTypeResponse |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Property membership required), 404 (Property not found; Amenity not found), 409 (Room type code already exists for property) | Create resource (create room type). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomTypes.kt:107 (createRoomType) |
GET |
/properties/{propertyId}/room-types/{roomTypeCode}/images |
propertyId:UUID, roomTypeCode:String |
- |
- |
List<RoomImageResponse> |
200 |
Public/unspecified | 404 (Room type not found) | List resources (list by room type). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomTypeImages.kt:29 (listByRoomType) |
GET |
/properties/{propertyId}/room-types/{roomTypeCode}/rate |
propertyId:UUID, roomTypeCode:String |
date:String (required), ratePlanCode:String? (optional) |
- |
RateResolveResponse |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Property not found; Room type not found), 400 (Rate plan not for room type; Invalid date format) | Resolve rate. | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomTypes.kt:60 (resolveRate) |
DELETE |
/properties/{propertyId}/room-types/{roomTypeId} |
propertyId:UUID, roomTypeId:UUID |
- |
- |
Unit |
204 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Property membership required), 404 (Room type not found) | Delete resource (delete room type). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomTypes.kt:189 (deleteRoomType) |
PUT |
/properties/{propertyId}/room-types/{roomTypeId} |
propertyId:UUID, roomTypeId:UUID |
- |
RoomTypeUpsertRequest |
RoomTypeResponse |
200 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Property membership required), 404 (Room type not found; Amenity not found), 409 (Room type code already exists for property) | Update resource (update room type). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomTypes.kt:153 (updateRoomType) |
GET |
/properties/{propertyId}/rooms |
propertyId:UUID |
- |
- |
List<RoomResponse> |
200 |
Roles: ADMIN, AGENT, FINANCE, HOUSEKEEPING, MANAGER, STAFF | 401 (Missing principal), 403 (Property membership required) | List resources (list rooms). | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:66 (listRooms) |
POST |
/properties/{propertyId}/rooms |
propertyId:UUID |
- |
RoomUpsertRequest |
RoomResponse |
201 |
Roles: ADMIN | 401 (Missing principal), 403 (Required property role not granted), 404 (Property not found; Room type not found), 400 (roomTypeCode required), 409 (Room number already exists for property) | Create resource (create room). | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:278 (createRoom) |
GET |
/properties/{propertyId}/rooms/availability |
propertyId:UUID |
- |
- |
List<RoomAvailabilityResponse> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required) | Room availability. | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:126 (roomAvailability) |
GET |
/properties/{propertyId}/rooms/availability-range |
propertyId:UUID |
- |
- |
List<RoomAvailabilityRangeResponse> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Property not found), 400 (Invalid date range; Invalid date format) | Room availability range. | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:184 (roomAvailabilityRange) |
GET |
/properties/{propertyId}/rooms/available |
propertyId:UUID |
- |
- |
List<RoomResponse> |
200 |
Authenticated user (Firebase) | - | Available rooms. | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:147 (availableRooms) |
GET |
/properties/{propertyId}/rooms/available-range-with-rate |
propertyId:UUID |
- |
- |
List<RoomAvailabilityWithRateResponse> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Property not found), 400 (Invalid date range; Invalid date format) | Available rooms with rate. | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:221 (availableRoomsWithRate) |
GET |
/properties/{propertyId}/rooms/board |
propertyId:UUID |
- |
- |
List<RoomBoardResponse> |
200 |
Roles: ADMIN, AGENT, FINANCE, HOUSEKEEPING, MANAGER, STAFF | 401 (Missing principal), 403 (Property membership required) | Room board. | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:86 (roomBoard) |
GET |
/properties/{propertyId}/rooms/board/stream |
propertyId:UUID |
- |
- |
SseEmitter |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required) | Room board stream. | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:114 (roomBoardStream) |
GET |
/properties/{propertyId}/rooms/by-type/{roomTypeCode} |
propertyId:UUID, roomTypeCode:String |
- |
- |
List<RoomResponse> |
200 |
Roles: ADMIN, AGENT, FINANCE, HOUSEKEEPING, MANAGER, STAFF | 404 (Room type not found) | Rooms by type. | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:160 (roomsByType) |
DELETE |
/properties/{propertyId}/rooms/{roomId} |
propertyId:UUID, roomId:UUID |
- |
- |
Unit |
204 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Property membership required), 404 (Room not found for property), 409 (Cannot delete room with stays), 500 (Failed to delete room image files) | Delete resource (delete room). | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:367 (deleteRoom) |
PUT |
/properties/{propertyId}/rooms/{roomId} |
propertyId:UUID, roomId:UUID |
- |
RoomUpsertRequest |
RoomResponse |
200 |
Roles: ADMIN | 401 (Missing principal), 403 (Required property role not granted), 404 (Room not found for property; Room type not found), 400 (roomTypeCode required), 409 (Room number already exists for property) | Update resource (update room). | src/main/kotlin/com/android/trisolarisserver/controller/room/Rooms.kt:323 (updateRoom) |
POST |
/properties/{propertyId}/rooms/{roomId}/cards/prepare-temp |
propertyId:UUID, roomId:UUID |
- |
- |
CardPrepareResponse |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal; User not found), 403 (Property membership required), 404 (Room not found; Property not found) | Prepare temporary. | src/main/kotlin/com/android/trisolarisserver/controller/card/TemporaryRoomCards.kt:46 (prepareTemporary) |
POST |
/properties/{propertyId}/rooms/{roomId}/cards/temp |
propertyId:UUID, roomId:UUID |
- |
IssueTempCardRequest |
IssuedCardResponse |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal; User not found), 403 (Property membership required), 404 (Room not found), 400 (cardId required; cardIndex required), 409 (Active card already exists for room) | Issue temporary. | src/main/kotlin/com/android/trisolarisserver/controller/card/TemporaryRoomCards.kt:74 (issueTemporary) |
GET |
/properties/{propertyId}/rooms/{roomId}/images |
propertyId:UUID, roomId:UUID |
- |
- |
List<RoomImageResponse> |
200 |
Authenticated user (Firebase) | 404 (Room not found) | List resources (list). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImages.kt:55 (list) |
POST |
/properties/{propertyId}/rooms/{roomId}/images |
propertyId:UUID, roomId:UUID |
file:MultipartFile (required), tagIds:List<UUID>? (optional) |
- |
RoomImageResponse |
201 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Tag not found; Room not found), 400 (File is empty), 409 (Duplicate image for room) | Upload. | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImages.kt:85 (upload) |
PUT |
/properties/{propertyId}/rooms/{roomId}/images/reorder-room |
propertyId:UUID, roomId:UUID |
- |
RoomImageReorderRequest |
Unit |
204 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Image not found; Room not found), 400 (Images do not belong to room) | Reorder room images. | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImages.kt:199 (reorderRoomImages) |
PUT |
/properties/{propertyId}/rooms/{roomId}/images/reorder-room-type |
propertyId:UUID, roomId:UUID |
- |
RoomImageReorderRequest |
Unit |
204 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Image not found; Room not found), 400 (Images do not belong to room type; Images do not belong to property) | Reorder room type images. | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImages.kt:227 (reorderRoomTypeImages) |
DELETE |
/properties/{propertyId}/rooms/{roomId}/images/{imageId} |
propertyId:UUID, roomId:UUID, imageId:UUID |
- |
- |
Unit |
204 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Image not found; Room not found), 500 (Failed to delete image files) | Delete resource (delete). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImages.kt:129 (delete) |
GET |
/properties/{propertyId}/rooms/{roomId}/images/{imageId}/file |
propertyId:UUID, roomId:UUID, imageId:UUID |
size:String (optional) |
- |
ResponseEntity<FileSystemResource> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required), 404 (Image not found; File missing) | File. | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImages.kt:257 (file) |
PUT |
/properties/{propertyId}/rooms/{roomId}/images/{imageId}/tags |
propertyId:UUID, roomId:UUID, imageId:UUID |
- |
RoomImageTagUpdateRequest |
Unit |
204 |
Roles: ADMIN, MANAGER | 401 (Missing principal), 403 (Required property role not granted), 404 (Image not found; Tag not found) | Update resource (update tags). | src/main/kotlin/com/android/trisolarisserver/controller/room/RoomImages.kt:180 (updateTags) |
GET |
/properties/{propertyId}/transport-modes |
propertyId:UUID |
- |
- |
List<TransportModeStatusResponse> |
200 |
Any property member | 401 (Missing principal), 403 (Property membership required) | List resources (list). | src/main/kotlin/com/android/trisolarisserver/controller/transport/TransportModes.kt:26 (list) |
GET |
/properties/{propertyId}/users |
propertyId:UUID |
- |
- |
List<PropertyUserResponse> |
200 |
Roles: ADMIN, AGENT, FINANCE, GUIDE, HOUSEKEEPING, MANAGER, STAFF, SUPERVISOR | 401 (Missing principal), 403 (Property membership required) | List resources (list property users). | src/main/kotlin/com/android/trisolarisserver/controller/property/Properties.kt:165 (listPropertyUsers) |
GET |
/properties/{propertyId}/users/search |
propertyId:UUID |
phone:String? (optional) |
- |
List<PropertyUserDetailsResponse> |
200 |
Roles: ADMIN, AGENT, FINANCE, GUIDE, HOUSEKEEPING, MANAGER, STAFF, SUPERVISOR | 401 (Missing principal), 403 (Property membership required) | Search property users. | src/main/kotlin/com/android/trisolarisserver/controller/property/UserDirectory.kt:50 (searchPropertyUsers) |
DELETE |
/properties/{propertyId}/users/{userId} |
propertyId:UUID, userId:UUID |
- |
- |
Unit |
204 |
Roles: ADMIN | 401 (Missing principal), 403 (Property membership required) | Delete resource (delete property user). | src/main/kotlin/com/android/trisolarisserver/controller/property/Properties.kt:290 (deletePropertyUser) |
PUT |
/properties/{propertyId}/users/{userId}/disabled |
propertyId:UUID, userId:UUID |
- |
PropertyUserDisableRequest |
PropertyUserResponse |
200 |
Roles: ADMIN, AGENT, FINANCE, GUIDE, HOUSEKEEPING, MANAGER, STAFF, SUPERVISOR | 401 (Missing principal), 403 (Role not allowed; Property membership required), 404 (User not found in property) | Update resource (update property user disabled). | src/main/kotlin/com/android/trisolarisserver/controller/property/Properties.kt:240 (updatePropertyUserDisabled) |
PUT |
/properties/{propertyId}/users/{userId}/roles |
propertyId:UUID, userId:UUID |
- |
PropertyUserRoleRequest |
PropertyUserResponse |
200 |
Roles: ADMIN, AGENT, MANAGER, STAFF | 401 (Missing principal), 403 (Missing role; Role not allowed), 404 (Property not found; User not found), 400 (Unknown role) | Upsert property user roles. | src/main/kotlin/com/android/trisolarisserver/controller/property/Properties.kt:189 (upsertPropertyUserRoles) |
GET |
/users |
- |
phone:String? (optional) |
- |
List<AppUserSummaryResponse> |
200 |
SUPER_ADMIN | 401 (User not found), 403 (Super admin only) | List resources (list app users). | src/main/kotlin/com/android/trisolarisserver/controller/property/UserDirectory.kt:27 (listAppUsers) |