{
    "info": {
        "name": "WABA SAAS - Admin API",
        "description": "API Collection untuk Admin",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
    },
    "variable": [
        {
            "key": "base_url",
            "value": "http://localhost:8001/api"
        },
        {
            "key": "admin_token",
            "value": "YOUR_ADMIN_BEARER_TOKEN"
        },
        {
            "key": "waba_pool_id",
            "value": "1"
        }
    ],
    "item": [
        {
            "name": "Token Management",
            "item": [
                {
                    "name": "Generate Token (Exchange)",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/admin/waba-pool/{{waba_pool_id}}/generate-token",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"short_lived_token\": \"EAAxxxx...\"\n}"
                        }
                    }
                },
                {
                    "name": "Store Permanent Token",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/admin/waba-pool/{{waba_pool_id}}/generate-token",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"permanent_token\": \"EAAxxxx...\",\n  \"skip_exchange\": true\n}"
                        }
                    }
                },
                {
                    "name": "Get Token Status",
                    "request": {
                        "method": "GET",
                        "url": "{{base_url}}/admin/waba-pool/{{waba_pool_id}}/token-status",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                },
                {
                    "name": "Validate Token",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/admin/waba-pool/{{waba_pool_id}}/validate-token",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                },
                {
                    "name": "Revoke Token",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/admin/waba-pool/{{waba_pool_id}}/revoke-token",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                },
                {
                    "name": "Update Credentials",
                    "request": {
                        "method": "PUT",
                        "url": "{{base_url}}/admin/waba-pool/{{waba_pool_id}}/credentials",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"app_id\": \"123456789\",\n  \"app_secret\": \"abcdef123456\"\n}"
                        }
                    }
                }
            ]
        },
        {
            "name": "Dedicated Numbers",
            "item": [
                {
                    "name": "Get All Assignments",
                    "request": {
                        "method": "GET",
                        "url": "{{base_url}}/admin/dedicated-numbers",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                },
                {
                    "name": "Get Pending Requests",
                    "request": {
                        "method": "GET",
                        "url": "{{base_url}}/admin/dedicated-numbers/requests",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                },
                {
                    "name": "Direct Assign",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/admin/dedicated-numbers",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"client_id\": 1,\n  \"waba_pool_id\": 1,\n  \"label\": \"Nomor dari Admin\"\n}"
                        }
                    }
                },
                {
                    "name": "Approve Request",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/admin/dedicated-numbers/1/approve",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"notes\": \"Approved\"\n}"
                        }
                    }
                },
                {
                    "name": "Reject Request",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/admin/dedicated-numbers/1/reject",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"reason\": \"Nomor tidak tersedia\"\n}"
                        }
                    }
                },
                {
                    "name": "Unassign Number",
                    "request": {
                        "method": "DELETE",
                        "url": "{{base_url}}/admin/dedicated-numbers/1",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "name": "Name Change Requests",
            "item": [
                {
                    "name": "Get Pending Requests",
                    "request": {
                        "method": "GET",
                        "url": "{{base_url}}/admin/number-name-requests",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                },
                {
                    "name": "Approve Name Change",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/admin/number-name-requests/1/approve",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                },
                {
                    "name": "Reject Name Change",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/admin/number-name-requests/1/reject",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"reason\": \"Nama tidak sesuai\"\n}"
                        }
                    }
                }
            ]
        },
        {
            "name": "Inbox Messages",
            "item": [
                {
                    "name": "Get Messages",
                    "request": {
                        "method": "GET",
                        "url": {
                            "raw": "{{base_url}}/admin/waba-pool/{{waba_pool_id}}/messages?per_page=50",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "admin",
                                "waba-pool",
                                "{{waba_pool_id}}",
                                "messages"
                            ],
                            "query": [
                                {
                                    "key": "per_page",
                                    "value": "50"
                                },
                                {
                                    "key": "unread_only",
                                    "value": "true",
                                    "disabled": true
                                }
                            ]
                        },
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                },
                {
                    "name": "Get Inbox Stats",
                    "request": {
                        "method": "GET",
                        "url": "{{base_url}}/admin/waba-pool/{{waba_pool_id}}/messages/stats",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                },
                {
                    "name": "Get Conversations",
                    "request": {
                        "method": "GET",
                        "url": "{{base_url}}/admin/waba-pool/{{waba_pool_id}}/messages/conversations",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                },
                {
                    "name": "Mark All as Read",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/admin/waba-pool/{{waba_pool_id}}/messages/read-all",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{admin_token}}"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "name": "Webhook",
            "item": [
                {
                    "name": "Verify Webhook",
                    "request": {
                        "method": "GET",
                        "url": {
                            "raw": "{{base_url}}/webhook/waba?hub.mode=subscribe&hub.verify_token=YOUR_TOKEN&hub.challenge=test123",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "webhook",
                                "waba"
                            ],
                            "query": [
                                {
                                    "key": "hub.mode",
                                    "value": "subscribe"
                                },
                                {
                                    "key": "hub.verify_token",
                                    "value": "YOUR_TOKEN"
                                },
                                {
                                    "key": "hub.challenge",
                                    "value": "test123"
                                }
                            ]
                        }
                    }
                },
                {
                    "name": "Simulate Incoming Message",
                    "request": {
                        "method": "POST",
                        "url": "{{base_url}}/webhook/waba",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"object\": \"whatsapp_business_account\",\n  \"entry\": [{\n    \"changes\": [{\n      \"value\": {\n        \"messaging_product\": \"whatsapp\",\n        \"metadata\": {\n          \"display_phone_number\": \"628123456789\",\n          \"phone_number_id\": \"YOUR_PHONE_NUMBER_ID\"\n        },\n        \"messages\": [{\n          \"from\": \"628987654321\",\n          \"id\": \"wamid.test\",\n          \"timestamp\": \"1702200000\",\n          \"type\": \"text\",\n          \"text\": {\"body\": \"Test message\"}\n        }]\n      },\n      \"field\": \"messages\"\n    }]\n  }]\n}"
                        }
                    }
                }
            ]
        }
    ]
}