Admin — Review types
Mounted at /admin. All use JWT audience snr_adm.
POST /admin/save-reviewtypes
Section titled “POST /admin/save-reviewtypes”Creates an active review type. Duplicate active English or Arabic name returns 409.
Request body
Section titled “Request body”| Field | Type | Required | Notes |
|---|---|---|---|
ReviewType | string | yes | English name |
ReviewTypeArabic | string | yes | Arabic name |
Description | string | yes | English description |
DescriptionArabic | string | yes | Arabic description |
ReviewedDoctorsCount | number | yes | positive integer |
MinimumReviewDays | number | yes | positive integer |
MaximumReviewDays | number | no | if set, must be ≥ MinimumReviewDays |
Price | number | yes | ≥ 0 (single price) |
Status | string | no | "Active" or "Inactive"; default "Active" |
Icon | string | no | App icon key (e.g. document, document_star); omit for default in app API |
Example request
Section titled “Example request”{ "ReviewType": "Standard Review", "ReviewTypeArabic": "المراجعة القياسية", "Description": "Reviewed by 3 specialists", "DescriptionArabic": "تمت المراجعة بواسطة 3 متخصصين", "ReviewedDoctorsCount": 3, "MinimumReviewDays": 8, "MaximumReviewDays": 12, "Price": 800, "Status": "Active", "Icon": "document"}Response — success (200)
Section titled “Response — success (200)”{ "status": 1000, "message": "Review type saved", "data": { "review_type_id": "550e8400-e29b-41d4-a716-446655440000" }}Response — validation (400)
Section titled “Response — validation (400)”{ "status": 1002, "message": "ReviewType, ReviewTypeArabic, Description, DescriptionArabic, ReviewedDoctorsCount, MinimumReviewDays and Price are required"}(or other 1002 messages for status / max days / etc.)
Response — duplicate (409)
Section titled “Response — duplicate (409)”{ "status": 1002, "message": "Review type already exists"}POST /admin/list-reviewtypes
Section titled “POST /admin/list-reviewtypes”Paginated list of active review types. Optional filter by Status.
Request body
Section titled “Request body”| Field | Type | Required | Notes |
|---|---|---|---|
Page | number | no | default 1, positive integer |
PageSize | number | no | default 15, max 100 |
Status | string | no | "Active" or "Inactive" |
Empty body {} is valid.
Example request
Section titled “Example request”{ "Page": 1, "PageSize": 10, "Status": "Active"}Response — success (200)
Section titled “Response — success (200)”{ "status": 1000, "message": "ok", "data": [ { "review_type_id": "uuid", "review_type": "Standard Review", "review_type_arabic": "المراجعة القياسية", "description": "…", "description_arabic": "…", "reviewed_doctors_count": 3, "min_review_days": 8, "max_review_days": 12, "price": 800, "status": "Active", "created_date": "2026-05-08T12:00:00.000Z", "icon": "document" } ], "pagination": { "total": 1, "page": 1, "pageSize": 10 }}POST /admin/reviewtype-details
Section titled “POST /admin/reviewtype-details”Single active review type by id.
Request body
Section titled “Request body”| Field | Type | Required |
|---|---|---|
review_type_id | string | yes |
Example request
Section titled “Example request”{ "review_type_id": "550e8400-e29b-41d4-a716-446655440000"}Response — success (200)
Section titled “Response — success (200)”{ "status": 1000, "message": "ok", "data": { "review_type_id": "uuid", "review_type": "Standard Review", "review_type_arabic": "المراجعة القياسية", "description": "…", "description_arabic": "…", "reviewed_doctors_count": 3, "min_review_days": 8, "max_review_days": 12, "price": 800, "status": "Active", "created_by": "user-id", "created_date": "2026-05-08T12:00:00.000Z", "updated_date": null, "icon": "document" }}Response — not found (404)
Section titled “Response — not found (404)”{ "status": 1002, "message": "Review type not found"}