Files
group-2-threaded-project-pe…/petshop-api.postman_collection.json
Harkamal Randhawa a0d14e493f Fix backend user contract and add User-Employee-Customer linkage
- Add active field to User entity and users table
- Add userId linkage to Employee and Customer entities with unique constraints and FKs
- Add repository methods findByUserId and findAllByEmail
- Create UserBusinessLinkageService for shared employee/customer creation logic
- Create AuthenticationHelper utility for resolving authenticated users
- Update UserService to persist all user fields and create linked business entities
- Update AuthController register to set active and create linked customer
- Update DataInitializer to be idempotent and use shared linkage service
- Update Postman collection user endpoints with fullName, email, and active
2026-03-08 21:56:04 -06:00

2102 lines
56 KiB
JSON

{
"info": {
"name": "PetShop API Complete Collection",
"_postman_id": "petshop-api-complete-v1",
"description": "Complete API collection with all 95+ verified endpoints",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"variable": [
{
"key": "baseUrl",
"value": "http://localhost:8080"
},
{
"key": "customerToken",
"value": ""
},
{
"key": "staffToken",
"value": ""
},
{
"key": "adminToken",
"value": ""
}
],
"item": [
{
"name": "Health",
"item": [
{
"name": "Health Check",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/health",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
}
]
},
{
"name": "Authentication",
"item": [
{
"name": "Register Customer",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/auth/register",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"username\": \"newcustomer\",\n \"password\": \"password123\",\n \"email\": \"new@example.com\",\n \"fullName\": \"New Customer\"\n}"
}
}
},
{
"name": "Login as Customer",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/auth/login",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"username\": \"customer\",\n \"password\": \"customer123\"\n}"
}
},
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test('Status code is 200', function () {",
" pm.response.to.have.status(200);",
"});",
"",
"var jsonData = pm.response.json();",
"if (jsonData.token) {",
" pm.collectionVariables.set('customerToken', jsonData.token);",
"}"
]
}
}
]
},
{
"name": "Login as Staff",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/auth/login",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"username\": \"staff\",\n \"password\": \"staff123\"\n}"
}
},
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test('Status code is 200', function () {",
" pm.response.to.have.status(200);",
"});",
"",
"var jsonData = pm.response.json();",
"if (jsonData.token) {",
" pm.collectionVariables.set('staffToken', jsonData.token);",
"}"
]
}
}
]
},
{
"name": "Login as Admin",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/auth/login",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"username\": \"admin\",\n \"password\": \"admin123\"\n}"
}
},
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test('Status code is 200', function () {",
" pm.response.to.have.status(200);",
"});",
"",
"var jsonData = pm.response.json();",
"if (jsonData.token) {",
" pm.collectionVariables.set('adminToken', jsonData.token);",
"}"
]
}
}
]
},
{
"name": "Get My Profile",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/auth/me",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
]
}
},
{
"name": "Update My Profile",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/auth/me",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"fullName\": \"Updated Name\",\n \"email\": \"updated@example.com\"\n}"
}
}
}
]
},
{
"name": "Pets",
"item": [
{
"name": "Get All Pets",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/pets",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Get Pet by ID",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/pets/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Get Pets Dropdown",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/dropdowns/pets",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Create Pet",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/pets",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"petName\": \"Buddy\",\n \"petSpecies\": \"Dog\",\n \"petBreed\": \"Labrador\",\n \"petAge\": 2,\n \"petStatus\": \"Available\",\n \"petPrice\": 500.0\n}"
}
}
},
{
"name": "Update Pet",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/pets/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"petName\": \"Buddy\",\n \"petSpecies\": \"Dog\",\n \"petBreed\": \"Labrador\",\n \"petAge\": 3,\n \"petStatus\": \"Available\",\n \"petPrice\": 500.0\n}"
}
}
},
{
"name": "Delete Pet",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/pets/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Pets",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/pets",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1,\n 2\n ]\n}"
}
}
}
]
},
{
"name": "Products",
"item": [
{
"name": "Get All Products",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/products",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Get Product by ID",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/products/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Get Products Dropdown",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/dropdowns/products",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Create Product",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/products",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"prodName\": \"Dog Food\",\n \"categoryId\": 1,\n \"prodDesc\": \"Premium\",\n \"prodPrice\": 50.0\n}"
}
}
},
{
"name": "Update Product",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/products/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"prodName\": \"Dog Food\",\n \"categoryId\": 1,\n \"prodDesc\": \"Premium\",\n \"prodPrice\": 55.0\n}"
}
}
},
{
"name": "Delete Product",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/products/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Products",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/products",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1\n ]\n}"
}
}
}
]
},
{
"name": "Sales",
"item": [
{
"name": "Get All Sales",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/sales",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Get Sale by ID",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/sales/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Create Sale",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/sales",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"employeeId\": 1,\n \"storeId\": 1,\n \"totalAmount\": 100.0,\n \"paymentMethod\": \"Card\",\n \"isRefund\": false\n}"
}
}
}
]
},
{
"name": "Services",
"item": [
{
"name": "Get All Services",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/services",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Get Service by ID",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/services/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Get Services Dropdown",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/dropdowns/services",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Create Service",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/services",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"serviceName\": \"Grooming\",\n \"serviceDesc\": \"Full grooming\",\n \"servicePrice\": 75.0\n}"
}
}
},
{
"name": "Update Service",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/services/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"serviceName\": \"Grooming\",\n \"serviceDesc\": \"Full grooming\",\n \"servicePrice\": 80.0\n}"
}
}
},
{
"name": "Delete Service",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/services/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Services",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/services",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1\n ]\n}"
}
}
}
]
},
{
"name": "Categories",
"item": [
{
"name": "Get All Categories",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/categories",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Get Category by ID",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/categories/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Get Categories Dropdown",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/dropdowns/categories",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "Create Category",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/categories",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"categoryName\": \"Dog Supplies\"\n}"
}
}
},
{
"name": "Update Category",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/categories/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"categoryName\": \"Dog Supplies\"\n}"
}
}
},
{
"name": "Delete Category",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/categories/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Categories",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/categories",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1\n ]\n}"
}
}
}
]
},
{
"name": "Appointments",
"item": [
{
"name": "Check Appointment Availability",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/appointments/availability?storeId=1&serviceId=1&date=2026-03-15",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "List Appointments",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/appointments",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
]
}
},
{
"name": "Get Appointment",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/appointments/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
]
}
},
{
"name": "Create Appointment",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/appointments",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"customerId\": 1,\n \"storeId\": 1,\n \"serviceId\": 1,\n \"appointmentDate\": \"2026-03-15\",\n \"appointmentTime\": \"10:00:00\",\n \"notes\": \"Test\"\n}"
}
}
},
{
"name": "Update Appointment",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/appointments/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"customerId\": 1,\n \"storeId\": 1,\n \"serviceId\": 1,\n \"appointmentDate\": \"2026-03-15\",\n \"appointmentTime\": \"14:00:00\",\n \"notes\": \"Updated\"\n}"
}
}
},
{
"name": "Delete Appointment",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/appointments/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Appointments",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/appointments",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1\n ]\n}"
}
}
}
]
},
{
"name": "Adoptions",
"item": [
{
"name": "List Adoptions",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/adoptions",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
]
}
},
{
"name": "Get Adoption",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/adoptions/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
]
}
},
{
"name": "Create Adoption",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/adoptions",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"petId\": 1,\n \"customerId\": 1,\n \"adoptionDate\": \"2026-03-10\"\n}"
}
}
},
{
"name": "Update Adoption",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/adoptions/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"petId\": 1,\n \"customerId\": 1,\n \"adoptionDate\": \"2026-03-11\"\n}"
}
}
},
{
"name": "Delete Adoption",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/adoptions/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Adoptions",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/adoptions",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1\n ]\n}"
}
}
}
]
},
{
"name": "Refunds",
"item": [
{
"name": "Create Refund",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/refunds",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"saleId\": 1,\n \"reason\": \"Defective\",\n \"amount\": 50.0\n}"
}
}
},
{
"name": "List Refunds",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/refunds",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
]
}
},
{
"name": "Get Refund",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/refunds/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
]
}
},
{
"name": "Update Refund",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/refunds/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"status\": \"APPROVED\"\n}"
}
}
},
{
"name": "Delete Refund",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/refunds/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
}
]
},
{
"name": "Chat",
"item": [
{
"name": "Create Conversation",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/chat/conversations",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"message\": \"I need help\"\n}"
}
}
},
{
"name": "List Conversations",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/chat/conversations",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
]
}
},
{
"name": "Get Conversation",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/chat/conversations/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
]
}
},
{
"name": "Send Message",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/chat/conversations/1/messages",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"content\": \"Hello\"\n}"
}
}
},
{
"name": "Get Messages",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/chat/conversations/1/messages",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{customerToken}}",
"type": "text"
}
]
}
}
]
},
{
"name": "Customers",
"item": [
{
"name": "Get Customers Dropdown",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/dropdowns/customers",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "List Customers",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/customers",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
]
}
},
{
"name": "Get Customer",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/customers/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
]
}
},
{
"name": "Create Customer",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/customers",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"john@example.com\",\n \"phone\": \"555-0100\",\n \"address\": \"123 Main St\"\n}"
}
}
},
{
"name": "Update Customer",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/customers/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"john@example.com\",\n \"phone\": \"555-0100\",\n \"address\": \"123 Main St\"\n}"
}
}
},
{
"name": "Delete Customer",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/customers/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Customers",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/customers/bulk-delete",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{staffToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1\n ]\n}"
}
}
}
]
},
{
"name": "Users",
"item": [
{
"name": "List Users",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/users",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Get User",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/users/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Create User",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/users",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"username\": \"newuser\",\n \"password\": \"password123\",\n \"fullName\": \"New User\",\n \"email\": \"newuser@petshop.com\",\n \"role\": \"STAFF\",\n \"active\": true\n}"
}
}
},
{
"name": "Update User",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/users/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"username\": \"user1\",\n \"password\": \"newpassword123\",\n \"fullName\": \"Updated User\",\n \"email\": \"user1@petshop.com\",\n \"role\": \"STAFF\",\n \"active\": true\n}"
}
}
},
{
"name": "Delete User",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/users/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Users",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/users",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1\n ]\n}"
}
}
}
]
},
{
"name": "Stores",
"item": [
{
"name": "Get Stores Dropdown",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/dropdowns/stores",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
},
{
"name": "List Stores",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/stores",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Get Store",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/stores/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Create Store",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/stores",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"storeName\": \"New Branch\",\n \"storeAddress\": \"456 Oak St\",\n \"storePhone\": \"555-0200\"\n}"
}
}
},
{
"name": "Update Store",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/stores/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"storeName\": \"Updated Branch\",\n \"storeAddress\": \"456 Oak St\",\n \"storePhone\": \"555-0200\"\n}"
}
}
},
{
"name": "Delete Store",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/stores/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Stores",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/stores",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1\n ]\n}"
}
}
}
]
},
{
"name": "Inventory",
"item": [
{
"name": "List Inventory",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/inventory",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Get Inventory Item",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/inventory/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Create Inventory",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/inventory",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"productId\": 1,\n \"storeId\": 1,\n \"quantity\": 100\n}"
}
}
},
{
"name": "Update Inventory",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/inventory/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"quantity\": 150\n}"
}
}
},
{
"name": "Delete Inventory",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/inventory/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Inventory",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/inventory",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1\n ]\n}"
}
}
}
]
},
{
"name": "Suppliers",
"item": [
{
"name": "List Suppliers",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/suppliers",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Get Supplier",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/suppliers/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Create Supplier",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/suppliers",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"supCompany\": \"ACME Corp\",\n \"supContact\": \"John Smith\",\n \"supPhone\": \"555-0300\",\n \"supEmail\": \"john@acme.com\"\n}"
}
}
},
{
"name": "Update Supplier",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/suppliers/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"supCompany\": \"ACME Corp\",\n \"supContact\": \"Jane Smith\",\n \"supPhone\": \"555-0300\",\n \"supEmail\": \"jane@acme.com\"\n}"
}
}
},
{
"name": "Delete Supplier",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/suppliers/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Suppliers",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/suppliers",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": [\n 1\n ]\n}"
}
}
},
{
"name": "Get Suppliers Dropdown",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/dropdowns/suppliers",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
}
]
},
{
"name": "Purchase Orders",
"item": [
{
"name": "List Purchase Orders",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/purchase-orders",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Get Purchase Order",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/purchase-orders/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
}
]
},
{
"name": "Product-Suppliers",
"item": [
{
"name": "List Product Suppliers",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/product-suppliers",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Get Product Supplier",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/product-suppliers/1/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Create Product Supplier",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/v1/product-suppliers",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"productId\": 1,\n \"supplierId\": 1,\n \"price\": 25.0\n}"
}
}
},
{
"name": "Update Product Supplier",
"request": {
"method": "PUT",
"url": "{{baseUrl}}/api/v1/product-suppliers/1/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"price\": 30.0\n}"
}
}
},
{
"name": "Delete Product Supplier",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/product-suppliers/1/1",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
},
{
"name": "Bulk Delete Product Suppliers",
"request": {
"method": "DELETE",
"url": "{{baseUrl}}/api/v1/product-suppliers",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"ids\": []\n}"
}
}
}
]
},
{
"name": "Analytics",
"item": [
{
"name": "Analytics Dashboard",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/v1/analytics/dashboard",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "Bearer {{adminToken}}",
"type": "text"
}
]
}
}
]
}
]
}