{
	"info": {
		"_postman_id": "c1a876d9-9802-4085-97b6-72575ef32055",
		"name": "Ramion Marketplace API",
		"description": "Comprehensive Postman collection for the Ramion Marketplace backend. Configured to rely entirely on the native cookie jar system (accessToken cookie), matching the actual production behavior.",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"item": [
		{
			"name": "Auth",
			"item": [
				{
					"name": "Login (Standard User)",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"email\": \"user@gmail.com\",\n    \"password\": \"password123\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/auth/login",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"auth",
								"login"
							]
						},
						"description": "Logs in a standard user (must have the 'user' role). The server will set an HTTP-only secure cookie named 'accessToken' in Postman's Cookie Jar, which is automatically sent on all subsequent requests."
					},
					"response": []
				},
				{
					"name": "Admin Login",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"email\": \"admin@gmail.com\",\n    \"password\": \"password123\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/admin/login",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"admin",
								"login"
							]
						},
						"description": "Logs in an administrator (must have the 'admin' role). The server will set an HTTP-only secure cookie named 'accessToken' in Postman's Cookie Jar, which is automatically sent on all subsequent requests."
					},
					"response": []
				},
				{
					"name": "Register",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"name\": \"John Doe\",\n    \"email\": \"john@example.com\",\n    \"phoneNumber\": \"+8801712345678\",\n    \"password\": \"password123\",\n    \"passwordConfirmation\": \"password123\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/auth/register",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"auth",
								"register"
							]
						},
						"description": "Registers a new user inside the system."
					},
					"response": []
				},
				{
					"name": "User Profile",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/auth/user",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"auth",
								"user"
							]
						},
						"description": "Retrieves the authenticated user's profile info using the accessToken cookie."
					},
					"response": []
				},
				{
					"name": "User By Email",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/auth/:email",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"auth",
								":email"
							],
							"variable": [
								{
									"key": "email",
									"value": "admin@gmail.com",
									"description": "Email address of the user to search"
								}
							]
						},
						"description": "Finds a user profile using their email address."
					},
					"response": []
				},
				{
					"name": "Logout",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/auth/logout",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"auth",
								"logout"
							]
						},
						"description": "Logs out the authenticated user and clears the accessToken cookie from Postman's Cookie Jar."
					},
					"response": []
				},
				{
					"name": "Update Profile (Self)",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							},
							{
								"key": "Content-Type",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"name\": \"Test User Updated\",\n    \"phoneNumber\": \"+8801712345678\",\n    \"whatsappNumber\": \"+8801712345678\",\n    \"state\": \"Dhaka\",\n    \"city\": \"Dhaka\",\n    \"area\": \"Dhanmondi\",\n    \"address\": \"Road 27, House 4\",\n    \"profilePictureId\": \"\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/auth/profile",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"auth",
								"profile"
							]
						},
						"description": "Updates the profile details (and optionally account name or password) of the currently authenticated user session. If profile does not exist yet, it is automatically created."
					},
					"response": []
				},
				{
					"name": "User Dashboard Stats (Self)",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/auth/dashboard",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"auth",
								"dashboard"
							]
						},
						"description": "Retrieves the standard logged-in user dashboard stats (total listings, active listings, total listing views, isEmailVerified) using the accessToken cookie."
					},
					"response": []
				}
			]
		},
		{
			"name": "User Management",
			"item": [
				{
					"name": "List Users",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/user?search=&sort=&order=asc&page=1&count=10",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"user"
							],
							"query": [
								{
									"key": "search",
									"value": "",
									"description": "Search term"
								},
								{
									"key": "sort",
									"value": "",
									"description": "Sort column (e.g. name)"
								},
								{
									"key": "order",
									"value": "asc",
									"description": "Sort direction (asc/desc)"
								},
								{
									"key": "page",
									"value": "1",
									"description": "Page number"
								},
								{
									"key": "count",
									"value": "10",
									"description": "Items per page"
								}
							]
						},
						"description": "List users (requires permission: `user.list` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Get User By ID",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/user/:userId",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"user",
								":userId"
							],
							"variable": [
								{
									"key": "userId",
									"value": "user-uuid-here",
									"description": "The unique UUID of the user"
								}
							]
						},
						"description": "Get a single user by ID (requires permission: `user.read` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Create User",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"name\": \"Jane Doe\",\n    \"email\": \"jane@example.com\",\n    \"phoneNumber\": \"+8801712345678\",\n    \"password\": \"password123\",\n    \"roleId\": \"\" \n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/user",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"user"
							]
						},
						"description": "Create a new user (requires permission: `user.create` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Update User",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"name\": \"Jane Doe Updated\",\n    \"email\": \"jane_updated@example.com\",\n    \"phoneNumber\": \"+8801712345678\",\n    \"whatsappNumber\": \"+8801712345678\",\n    \"state\": \"Dhaka\",\n    \"city\": \"Dhaka\",\n    \"area\": \"Dhanmondi\",\n    \"address\": \"Road 27, House 4\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/user/:userId",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"user",
								":userId"
							],
							"variable": [
								{
									"key": "userId",
									"value": "user-uuid-here"
								}
							]
						},
						"description": "Updates a user details (requires permission: `user.update` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Delete User",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/user/:userId",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"user",
								":userId"
							],
							"variable": [
								{
									"key": "userId",
									"value": "user-uuid-here"
								}
							]
						},
						"description": "Deletes a user (requires permission: `user.delete` and active cookie)"
					},
					"response": []
				}
			]
		},
		{
			"name": "Role Management",
			"item": [
				{
					"name": "List Roles",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/role",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"role"
							]
						},
						"description": "Retrieve all roles (requires permission: `role.list` or `role.read` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Get Role By ID",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/role/:roleId",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"role",
								":roleId"
							],
							"variable": [
								{
									"key": "roleId",
									"value": "role-uuid-here"
								}
							]
						},
						"description": "Retrieve a single role by ID (requires permission: `role.list` or `role.read` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Create Role",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"name\": \"supervisor\",\n    \"description\": \"Supervisor role with intermediate access\",\n    \"isActive\": true\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/role",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"role"
							]
						},
						"description": "Create a new Role (requires permission: `role.create` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Update Role",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"name\": \"supervisor-updated\",\n    \"description\": \"Updated description\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/role/:roleId",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"role",
								":roleId"
							],
							"variable": [
								{
									"key": "roleId",
									"value": "role-uuid-here"
								}
							]
						},
						"description": "Update a Role (requires permission: `role.update` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Get Role Permissions",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/role/:roleId/permissions",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"role",
								":roleId",
								"permissions"
							],
							"variable": [
								{
									"key": "roleId",
									"value": "role-uuid-here"
								}
							]
						},
						"description": "List all permissions assigned to a specific role."
					},
					"response": []
				},
				{
					"name": "Assign Permissions to Role",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"permissionIds\": [\n        \"permission-uuid-1\",\n        \"permission-uuid-2\"\n    ]\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/role/:roleId/permissions",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"role",
								":roleId",
								"permissions"
							],
							"variable": [
								{
									"key": "roleId",
									"value": "role-uuid-here"
								}
							]
						},
						"description": "Assign multiple permissions to a role (requires permission: `role.update` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Delete Role",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/role/:roleId",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"role",
								":roleId"
							],
							"variable": [
								{
									"key": "roleId",
									"value": "role-uuid-here"
								}
							]
						},
						"description": "Delete a role (requires permission: `role.delete` and active cookie)"
					},
					"response": []
				}
			]
		},
		{
			"name": "Permission Management",
			"item": [
				{
					"name": "List Permissions",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/permission",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"permission"
							]
						},
						"description": "Retrieve all system permissions (requires cookie authentication)"
					},
					"response": []
				}
			]
		},
		{
			"name": "SMTP Configuration",
			"item": [
				{
					"name": "Get SMTP Configuration",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/smtp-config",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"smtp-config"
							]
						},
						"description": "Retrieve current SMTP configuration details (requires permission: `smtpConfig.read` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Update SMTP Configuration",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"host\": \"smtp.gmail.com\",\n    \"port\": 587,\n    \"username\": \"test@example.com\",\n    \"password\": \"your-app-password\",\n    \"encryption\": \"tls\",\n    \"fromAddress\": \"noreply@accurebook.com\",\n    \"fromName\": \"AccureBook System\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/smtp-config",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"smtp-config"
							]
						},
						"description": "Update active SMTP settings (requires permission: `smtpConfig.update` and active cookie)"
					},
					"response": []
				}
			]
		},
		{
			"name": "Media Management",
			"item": [
				{
					"name": "List Media",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/media?page=1&count=10",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"media"
							],
							"query": [
								{
									"key": "page",
									"value": "1"
								},
								{
									"key": "count",
									"value": "10"
								}
							]
						},
						"description": "List uploaded media records (requires permission: `media.list` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Get Media Metadata",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/media/:mediaId",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"media",
								":mediaId"
							],
							"variable": [
								{
									"key": "mediaId",
									"value": "media-uuid-here"
								}
							]
						},
						"description": "Retrieve information about a single media record (requires permission: `media.read` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Upload Media",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "formdata",
							"formdata": [
								{
									"key": "file",
									"type": "file",
									"src": [],
									"description": "Single file upload (required_without: files)"
								},
								{
									"key": "type",
									"value": "image",
									"type": "text",
									"description": "image, document, video, audio, archive, other"
								},
								{
									"key": "isPublic",
									"value": "true",
									"type": "text",
									"description": "Visibility of file"
								}
							]
						},
						"url": {
							"raw": "{{base_url}}/media",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"media"
							]
						},
						"description": "Upload a single file as form-data (requires permission: `media.upload` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Upload Multiple Media Files",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "formdata",
							"formdata": [
								{
									"key": "files[]",
									"type": "file",
									"src": [],
									"description": "Multiple files upload"
								},
								{
									"key": "type",
									"value": "document",
									"type": "text"
								},
								{
									"key": "isPublic",
									"value": "true",
									"type": "text"
								}
							]
						},
						"url": {
							"raw": "{{base_url}}/media",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"media"
							]
						},
						"description": "Upload multiple files simultaneously (requires permission: `media.upload` and active cookie)"
					},
					"response": []
				},
				{
					"name": "Stream/View File",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{base_url}}/media/:mediaId/stream",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"media",
								":mediaId",
								"stream"
							],
							"variable": [
								{
									"key": "mediaId",
									"value": "media-uuid-here"
								}
							]
						},
						"description": "Streams file content. Supports public view if isPublic=true. If private, requires manual auth or cookie access."
					},
					"response": []
				},
				{
					"name": "Delete Media",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/media/:mediaId",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"media",
								":mediaId"
							],
							"variable": [
								{
									"key": "mediaId",
									"value": "media-uuid-here"
								}
							]
						},
						"description": "Delete media database record and storage file (requires permission: `media.delete` and active cookie)"
					},
					"response": []
				}
			]
		},
		{
			"name": "Category Management",
			"item": [
				{
					"name": "List Categories",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/category?page=1&count=10",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"category"
							],
							"query": [
								{
									"key": "page",
									"value": "1"
								},
								{
									"key": "count",
									"value": "10"
								}
							]
						},
						"description": "Lists categories. Support searching, sorting, and pagination parameters."
					},
					"response": []
				},
				{
					"name": "Create Category",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							},
							{
								"key": "Content-Type",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"name\": \"Real Estate\",\n    \"slug\": \"real-estate\",\n    \"imageId\": \"\",\n    \"isActive\": true\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/category",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"category"
							]
						},
						"description": "Creates a new category. Requires active session auth. You can optionally associate an uploaded Media ID via 'imageId'."
					},
					"response": []
				},
				{
					"name": "Get Category by ID",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/category/:id",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"category",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "category-id"
								}
							]
						},
						"description": "Retrieve category details by UUID"
					},
					"response": []
				},
				{
					"name": "Update Category",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							},
							{
								"key": "Content-Type",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"name\": \"Real Estate (Updated)\",\n    \"slug\": \"real-estate-updated\",\n    \"imageId\": \"\",\n    \"isActive\": true\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/category/:id",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"category",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "category-id"
								}
							]
						},
						"description": "Updates an existing category. Requires active session auth. You can optionally associate an uploaded Media ID via 'imageId' or pass empty to remove it."
					},
					"response": []
				},
				{
					"name": "Delete Category",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/category/:id",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"category",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "category-id"
								}
							]
						},
						"description": "Deletes category by id. Requires active session auth."
					},
					"response": []
				}
			]
		},
		{
			"name": "Listing Management",
			"item": [
				{
					"name": "List Listings",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/listing?page=1&count=10",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"listing"
							],
							"query": [
								{
									"key": "page",
									"value": "1"
								},
								{
									"key": "count",
									"value": "10"
								}
							]
						},
						"description": "List directory listings. Supports searching, sorting, column filtering (categoryId, userId, status) and pagination parameters."
					},
					"response": []
				},
				{
					"name": "Create Listing",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							},
							{
								"key": "Content-Type",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"categoryId\": \"CAT_ID\",\n    \"title\": \"Toyota Axio Hybrid 2018\",\n    \"slug\": \"toyota-axio-hybrid-2018\",\n    \"sortDescription\": \"Super fresh family sedan for sale\",\n    \"description\": \"Toyota Axio Hybrid 2018. Well-maintained family used hybrid car.\",\n    \"price\": 2450000.00,\n    \"location\": \"Uttara, Dhaka\",\n    \"isContactPhone\": true,\n    \"isContactWhatsApp\": true,\n    \"imageIds\": []\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/listing",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"listing"
							]
						},
						"description": "Creates a new listing. Accepts unified `images` array (files) or `imageIds` array (pre-uploaded IDs). First image becomes cover; max 8 total. Requires active session auth."
					},
					"response": []
				},
				{
					"name": "Get Listing by ID",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/listing/:id",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"listing",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "listing-id"
								}
							]
						},
						"description": "Retrieve listing details by UUID including category, user, and attached media items."
					},
					"response": []
				},
				{
					"name": "Update Listing",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							},
							{
								"key": "Content-Type",
								"value": "application/json",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"title\": \"Toyota Axio Hybrid 2018 (Modified)\",\n    \"price\": 2430000.00,\n    \"isContactPhone\": true,\n    \"isContactWhatsApp\": false,\n    \"imageIds\": []\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{base_url}}/listing/:id",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"listing",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "listing-id"
								}
							]
						},
						"description": "Updates an existing listing. Accepts unified `images` array (files) or `imageIds` array (pre-uploaded IDs). First image becomes cover; max 8 total. Requires active session auth."
					},
					"response": []
				},
				{
					"name": "Delete Listing",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/listing/:id",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"listing",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "listing-id"
								}
							]
						},
						"description": "Deletes listing by id. Requires active session auth."
					},
					"response": []
				}
			]
		},
		{
			"name": "Admin Dashboard",
			"item": [
				{
					"name": "Get Dashboard Statistics",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{base_url}}/admin/dashboard",
							"host": [
								"{{base_url}}"
							],
							"path": [
								"admin",
								"dashboard"
							]
						},
						"description": "Retrieve admin dashboard counts (users, categories, total listings) and the list of pending listings waiting for admin moderation."
					},
					"response": []
				}
			]
		}
	],
	"variable": [
		{
			"key": "base_url",
			"value": "http://127.0.0.1:8000",
			"type": "string"
		}
	]
}