{
	"info": {
		"_postman_id": "api-bidkesmapta-v2",
		"name": "API Bidkesmapta v2.0",
		"description": "REST API untuk Sistem Informasi Rumah Sakit/FKTP\n\n## Endpoints:\n- Authentication (3)\n- Tempat Tidur (9)\n- Dokter (5)\n- Poli (5)\n- Jadwal Dokter (10)\n- Kelas (3)\n\nTotal: 35 endpoints",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"variable": [
		{
			"key": "base_url",
			"value": "https://yourdomain.com/api/v1",
			"type": "string"
		},
		{
			"key": "access_token",
			"value": "",
			"type": "string"
		},
		{
			"key": "refresh_token",
			"value": "",
			"type": "string"
		},
		{
			"key": "client_id",
			"value": "YOUR_CLIENT_ID",
			"type": "string"
		},
		{
			"key": "client_secret",
			"value": "YOUR_CLIENT_SECRET",
			"type": "string"
		}
	],
	"auth": {
		"type": "bearer",
		"bearer": [
			{
				"key": "token",
				"value": "{{access_token}}",
				"type": "string"
			}
		]
	},
	"item": [
		{
			"name": "Authentication",
			"item": [
				{
					"name": "Get Token",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = pm.response.json();",
									"if (jsonData.success && jsonData.data) {",
									"    pm.collectionVariables.set('access_token', jsonData.data.access_token);",
									"    pm.collectionVariables.set('refresh_token', jsonData.data.refresh_token);",
									"    console.log('Token saved!');",
									"}"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {"type": "noauth"},
						"method": "POST",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"client_id\": \"{{client_id}}\",\n    \"client_secret\": \"{{client_secret}}\"\n}"
						},
						"url": {"raw": "{{base_url}}/auth/token", "host": ["{{base_url}}"], "path": ["auth", "token"]}
					}
				},
				{
					"name": "Refresh Token",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = pm.response.json();",
									"if (jsonData.success && jsonData.data) {",
									"    pm.collectionVariables.set('access_token', jsonData.data.access_token);",
									"}"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {"type": "noauth"},
						"method": "POST",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {"mode": "raw", "raw": "{\n    \"refresh_token\": \"{{refresh_token}}\"\n}"},
						"url": {"raw": "{{base_url}}/auth/refresh", "host": ["{{base_url}}"], "path": ["auth", "refresh"]}
					}
				},
				{
					"name": "Revoke Token",
					"request": {
						"auth": {"type": "noauth"},
						"method": "POST",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {"mode": "raw", "raw": "{\n    \"token\": \"{{refresh_token}}\"\n}"},
						"url": {"raw": "{{base_url}}/auth/revoke", "host": ["{{base_url}}"], "path": ["auth", "revoke"]}
					}
				}
			]
		},
		{
			"name": "Tempat Tidur",
			"item": [
				{
					"name": "List Tempat Tidur",
					"request": {
						"method": "GET",
						"url": {
							"raw": "{{base_url}}/tempat-tidur?page=1&per_page=20",
							"host": ["{{base_url}}"],
							"path": ["tempat-tidur"],
							"query": [
								{"key": "page", "value": "1"},
								{"key": "per_page", "value": "20"},
								{"key": "aktif", "value": "True", "disabled": true},
								{"key": "idkelas", "value": "101", "disabled": true},
								{"key": "search", "value": "", "disabled": true}
							]
						}
					}
				},
				{
					"name": "Summary Tempat Tidur",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/tempat-tidur/summary", "host": ["{{base_url}}"], "path": ["tempat-tidur", "summary"]}
					}
				},
				{
					"name": "Detail Tempat Tidur",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/tempat-tidur/1", "host": ["{{base_url}}"], "path": ["tempat-tidur", "1"]}
					}
				},
				{
					"name": "Tambah Tempat Tidur",
					"request": {
						"method": "POST",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {"mode": "raw", "raw": "{\n    \"tempattidur\": \"VIP-01\",\n    \"idkelas\": \"101\",\n    \"subinstalasi\": \"Rawat Inap\",\n    \"aktif\": \"True\"\n}"},
						"url": {"raw": "{{base_url}}/tempat-tidur", "host": ["{{base_url}}"], "path": ["tempat-tidur"]}
					}
				},
				{
					"name": "Update Tempat Tidur",
					"request": {
						"method": "PUT",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {"mode": "raw", "raw": "{\n    \"tempattidur\": \"VIP-01A\",\n    \"idkelas\": \"102\"\n}"},
						"url": {"raw": "{{base_url}}/tempat-tidur/1", "host": ["{{base_url}}"], "path": ["tempat-tidur", "1"]}
					}
				},
				{
					"name": "Occupy Tempat Tidur",
					"request": {
						"method": "PATCH",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {"mode": "raw", "raw": "{\n    \"namapasien\": \"John Doe\",\n    \"nopendaftaran\": \"REG001\"\n}"},
						"url": {"raw": "{{base_url}}/tempat-tidur/1/occupy", "host": ["{{base_url}}"], "path": ["tempat-tidur", "1", "occupy"]}
					}
				},
				{
					"name": "Release Tempat Tidur",
					"request": {
						"method": "PATCH",
						"url": {"raw": "{{base_url}}/tempat-tidur/1/release", "host": ["{{base_url}}"], "path": ["tempat-tidur", "1", "release"]}
					}
				},
				{
					"name": "Hapus Tempat Tidur",
					"request": {
						"method": "DELETE",
						"url": {"raw": "{{base_url}}/tempat-tidur/1", "host": ["{{base_url}}"], "path": ["tempat-tidur", "1"]}
					}
				},
				{
					"name": "Bulk Update Tempat Tidur",
					"request": {
						"method": "POST",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {"mode": "raw", "raw": "{\n    \"items\": [\n        {\"id\": 1, \"aktif\": \"False\", \"namapasien\": \"Patient 1\"},\n        {\"id\": 2, \"aktif\": \"True\"}\n    ]\n}"},
						"url": {"raw": "{{base_url}}/tempat-tidur/bulk-update", "host": ["{{base_url}}"], "path": ["tempat-tidur", "bulk-update"]}
					}
				}
			]
		},
		{
			"name": "Dokter",
			"item": [
				{
					"name": "List Dokter",
					"request": {
						"method": "GET",
						"url": {
							"raw": "{{base_url}}/dokter?page=1&per_page=20",
							"host": ["{{base_url}}"],
							"path": ["dokter"],
							"query": [
								{"key": "page", "value": "1"},
								{"key": "per_page", "value": "20"},
								{"key": "nama", "value": "", "disabled": true},
								{"key": "spesialisasi", "value": "", "disabled": true},
								{"key": "bpjs", "value": "true", "disabled": true}
							]
						}
					}
				},
				{
					"name": "Detail Dokter",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/dokter/1", "host": ["{{base_url}}"], "path": ["dokter", "1"]}
					}
				},
				{
					"name": "Tambah Dokter",
					"request": {
						"method": "POST",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"kode\": \"DR001\",\n    \"nama\": \"dr. Ahmad Suryadi\",\n    \"spesialis\": \"Umum\",\n    \"sip\": \"SIP/123/2024\",\n    \"idbpjs\": \"12345678\",\n    \"bpjs\": \"True\",\n    \"telepon\": \"08123456789\"\n}"
						},
						"url": {"raw": "{{base_url}}/dokter", "host": ["{{base_url}}"], "path": ["dokter"]}
					}
				},
				{
					"name": "Update Dokter",
					"request": {
						"method": "PUT",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"nama\": \"dr. Ahmad Suryadi, Sp.PD\",\n    \"spesialis\": \"Penyakit Dalam\",\n    \"telepon\": \"08987654321\"\n}"
						},
						"url": {"raw": "{{base_url}}/dokter/1", "host": ["{{base_url}}"], "path": ["dokter", "1"]}
					}
				},
				{
					"name": "Hapus Dokter",
					"request": {
						"method": "DELETE",
						"url": {"raw": "{{base_url}}/dokter/1", "host": ["{{base_url}}"], "path": ["dokter", "1"]}
					}
				}
			]
		},
		{
			"name": "Poli",
			"item": [
				{
					"name": "List Poli",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/poli", "host": ["{{base_url}}"], "path": ["poli"]}
					}
				},
				{
					"name": "Detail Poli",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/poli/POL001", "host": ["{{base_url}}"], "path": ["poli", "POL001"]}
					}
				},
				{
					"name": "Tambah Poli",
					"request": {
						"method": "POST",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"id\": \"POL001\",\n    \"poli\": \"Poli Umum\",\n    \"polisakit\": \"true\"\n}"
						},
						"url": {"raw": "{{base_url}}/poli", "host": ["{{base_url}}"], "path": ["poli"]}
					}
				},
				{
					"name": "Update Poli",
					"request": {
						"method": "PUT",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"poli\": \"Poli Umum & Gigi\",\n    \"polisakit\": \"true\"\n}"
						},
						"url": {"raw": "{{base_url}}/poli/POL001", "host": ["{{base_url}}"], "path": ["poli", "POL001"]}
					}
				},
				{
					"name": "Hapus Poli",
					"request": {
						"method": "DELETE",
						"url": {"raw": "{{base_url}}/poli/POL001", "host": ["{{base_url}}"], "path": ["poli", "POL001"]}
					}
				}
			]
		},
		{
			"name": "Jadwal Dokter",
			"item": [
				{
					"name": "List Jadwal Dokter",
					"request": {
						"method": "GET",
						"url": {
							"raw": "{{base_url}}/jadwal-dokter?page=1&per_page=20",
							"host": ["{{base_url}}"],
							"path": ["jadwal-dokter"],
							"query": [
								{"key": "page", "value": "1"},
								{"key": "per_page", "value": "20"},
								{"key": "hari", "value": "1", "disabled": true},
								{"key": "idpoli", "value": "POL001", "disabled": true},
								{"key": "spesialisasi", "value": "", "disabled": true},
								{"key": "nama_dokter", "value": "", "disabled": true}
							]
						}
					}
				},
				{
					"name": "Jadwal Hari Ini",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/jadwal-dokter/today", "host": ["{{base_url}}"], "path": ["jadwal-dokter", "today"]}
					}
				},
				{
					"name": "Jadwal Mingguan",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/jadwal-dokter/weekly", "host": ["{{base_url}}"], "path": ["jadwal-dokter", "weekly"]}
					}
				},
				{
					"name": "Search Jadwal",
					"request": {
						"method": "GET",
						"url": {
							"raw": "{{base_url}}/jadwal-dokter/search?q=umum",
							"host": ["{{base_url}}"],
							"path": ["jadwal-dokter", "search"],
							"query": [{"key": "q", "value": "umum"}]
						}
					}
				},
				{
					"name": "Jadwal By Poli",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/jadwal-dokter/by-poli/POL001", "host": ["{{base_url}}"], "path": ["jadwal-dokter", "by-poli", "POL001"]}
					}
				},
				{
					"name": "Jadwal By Dokter",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/jadwal-dokter/by-dokter/1", "host": ["{{base_url}}"], "path": ["jadwal-dokter", "by-dokter", "1"]}
					}
				},
				{
					"name": "Detail Jadwal",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/jadwal-dokter/JDK001", "host": ["{{base_url}}"], "path": ["jadwal-dokter", "JDK001"]}
					}
				},
				{
					"name": "Tambah Jadwal Dokter",
					"request": {
						"method": "POST",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"kode\": \"JDK001\",\n    \"idkaryawan\": 1,\n    \"idhari\": 1,\n    \"start\": \"08:00\",\n    \"finish\": \"12:00\",\n    \"kuota\": 20,\n    \"kuotanonjkn\": 5,\n    \"idpoli\": \"POL001\"\n}"
						},
						"url": {"raw": "{{base_url}}/jadwal-dokter", "host": ["{{base_url}}"], "path": ["jadwal-dokter"]}
					}
				},
				{
					"name": "Update Jadwal Dokter",
					"request": {
						"method": "PUT",
						"header": [{"key": "Content-Type", "value": "application/json"}],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"kuota\": 25,\n    \"start\": \"08:30\",\n    \"finish\": \"12:30\"\n}"
						},
						"url": {"raw": "{{base_url}}/jadwal-dokter/JDK001/1", "host": ["{{base_url}}"], "path": ["jadwal-dokter", "JDK001", "1"]}
					}
				},
				{
					"name": "Hapus Jadwal Dokter",
					"request": {
						"method": "DELETE",
						"url": {"raw": "{{base_url}}/jadwal-dokter/JDK001/1", "host": ["{{base_url}}"], "path": ["jadwal-dokter", "JDK001", "1"]}
					}
				}
			]
		},
		{
			"name": "Kelas",
			"item": [
				{
					"name": "List Kelas",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/kelas", "host": ["{{base_url}}"], "path": ["kelas"]}
					}
				},
				{
					"name": "Detail Kelas",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/kelas/101", "host": ["{{base_url}}"], "path": ["kelas", "101"]}
					}
				},
				{
					"name": "Ketersediaan Kelas",
					"request": {
						"method": "GET",
						"url": {"raw": "{{base_url}}/kelas/101/availability", "host": ["{{base_url}}"], "path": ["kelas", "101", "availability"]}
					}
				}
			]
		}
	]
}
