{
  "name": "ItemField is_active 컬럼 검증 테스트",
  "description": "item_fields 테이블에 추가된 is_active 컬럼의 기능을 검증합니다. 필드 생성 시 기본값(true), 수정, 조회 시 is_active 필드 포함 여부를 테스트합니다.",
  "version": "1.0",
  "config": {
    "baseUrl": "https://api.sam.kr/api/v1",
    "apiKey": "{{$env.FLOW_TESTER_API_KEY}}",
    "timeout": 30000,
    "stopOnFailure": true
  },
  "variables": {
    "user_id": "{{$env.FLOW_TESTER_USER_ID}}",
    "user_pwd": "{{$env.FLOW_TESTER_USER_PWD}}"
  },
  "steps": [
    {
      "id": "login",
      "name": "1. 로그인 - 인증 토큰 획득",
      "method": "POST",
      "endpoint": "/login",
      "body": {
        "user_id": "{{user_id}}",
        "user_pwd": "{{user_pwd}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.message": "로그인 성공",
          "$.access_token": "@isString"
        }
      },
      "extract": {
        "token": "$.access_token"
      }
    },
    {
      "id": "get_fields_list",
      "name": "2. 필드 목록 조회 - is_active 필드 포함 확인",
      "method": "GET",
      "endpoint": "/item-master/fields",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true,
          "$.data": "@isArray"
        }
      },
      "extract": {
        "existingFieldId": "$.data[0].id",
        "fieldCount": "$.data.length"
      }
    },
    {
      "id": "create_field",
      "name": "3. 독립 필드 생성 - is_active 기본값 true 확인",
      "method": "POST",
      "endpoint": "/item-master/fields",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "body": {
        "field_name": "[테스트] is_active 검증 필드",
        "field_type": "textbox",
        "field_key": "test_is_active",
        "is_required": false,
        "placeholder": "is_active 기본값 테스트",
        "description": "API Flow Tester에서 생성한 테스트 필드"
      },
      "expect": {
        "status": [200, 201],
        "jsonPath": {
          "$.success": true,
          "$.data.id": "@isNumber",
          "$.data.field_name": "[테스트] is_active 검증 필드",
          "$.data.is_active": true
        }
      },
      "extract": {
        "newFieldId": "$.data.id"
      }
    },
    {
      "id": "verify_field_created",
      "name": "4. 생성된 필드 상세 확인 - is_active=true",
      "method": "GET",
      "endpoint": "/item-master/fields",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      },
      "extract": {
        "allFields": "$.data"
      }
    },
    {
      "id": "update_field_inactive",
      "name": "5. 필드 비활성화 - is_active=false로 수정",
      "method": "PUT",
      "endpoint": "/item-master/fields/{{create_field.newFieldId}}",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "body": {
        "is_active": false
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true,
          "$.data.is_active": false
        }
      }
    },
    {
      "id": "verify_field_inactive",
      "name": "6. 비활성화 상태 확인",
      "method": "GET",
      "endpoint": "/item-master/fields",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    },
    {
      "id": "update_field_active",
      "name": "7. 필드 재활성화 - is_active=true로 수정",
      "method": "PUT",
      "endpoint": "/item-master/fields/{{create_field.newFieldId}}",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "body": {
        "is_active": true
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true,
          "$.data.is_active": true
        }
      }
    },
    {
      "id": "delete_test_field",
      "name": "8. 테스트 필드 삭제 (정리)",
      "method": "DELETE",
      "endpoint": "/item-master/fields/{{create_field.newFieldId}}",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    }
  ]
}
