{
  "name": "Finance Withdrawals CRUD Test",
  "description": "출금 관리 테스트 (생성, 조회, 수정, 삭제, 요약)",
  "version": "1.0",
  "config": {
    "baseUrl": "",
    "timeout": 30000,
    "stopOnFailure": false
  },
  "variables": {
    "user_id": "{{$env.FLOW_TESTER_USER_ID}}",
    "user_pwd": "{{$env.FLOW_TESTER_USER_PWD}}"
  },
  "steps": [
    {
      "id": "login",
      "name": "1. 로그인",
      "method": "POST",
      "endpoint": "/api/v1/login",
      "body": {
        "user_id": "{{user_id}}",
        "user_pwd": "{{user_pwd}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.access_token": "@isString"
        }
      },
      "extract": {
        "token": "$.access_token"
      }
    },
    {
      "id": "get_summary",
      "name": "2. 출금 요약 조회",
      "method": "GET",
      "endpoint": "/api/v1/withdrawals/summary",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    },
    {
      "id": "list_withdrawals",
      "name": "3. 출금 목록 조회",
      "method": "GET",
      "endpoint": "/api/v1/withdrawals?page=1&per_page=10",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    },
    {
      "id": "create_withdrawal",
      "name": "4. 출금 등록",
      "method": "POST",
      "endpoint": "/api/v1/withdrawals",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "body": {
        "withdrawal_date": "2024-12-15",
        "client_name": "TC 테스트 거래처",
        "amount": 500000,
        "payment_method": "transfer",
        "description": "TC 테스트 출금"
      },
      "expect": {
        "status": [200, 201],
        "jsonPath": {
          "$.success": true,
          "$.data.id": "@isNumber"
        }
      },
      "extract": {
        "withdrawalId": "$.data.id"
      },
      "continueOnFailure": true
    },
    {
      "id": "get_withdrawal",
      "name": "5. 출금 상세 조회",
      "method": "GET",
      "endpoint": "/api/v1/withdrawals/{{create_withdrawal.withdrawalId}}",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      },
      "continueOnFailure": true
    },
    {
      "id": "update_withdrawal",
      "name": "6. 출금 수정",
      "method": "PUT",
      "endpoint": "/api/v1/withdrawals/{{create_withdrawal.withdrawalId}}",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "body": {
        "amount": 750000,
        "description": "TC 테스트 출금 - 수정됨"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      },
      "continueOnFailure": true
    },
    {
      "id": "delete_withdrawal",
      "name": "7. 출금 삭제",
      "method": "DELETE",
      "endpoint": "/api/v1/withdrawals/{{create_withdrawal.withdrawalId}}",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200, 204]
      },
      "continueOnFailure": true
    }
  ]
}
