{
  "name": "알림 설정 조회/수정 플로우",
  "description": "알림 설정 조회 → 그룹별 설정 변경 → 저장 → 확인 플로우 테스트",
  "version": "1.0",
  "config": {
    "baseUrl": "",
    "timeout": 30000,
    "stopOnFailure": true
  },
  "variables": {
    "user_id": "{{$env.FLOW_TESTER_USER_ID}}",
    "user_pwd": "{{$env.FLOW_TESTER_USER_PWD}}"
  },
  "steps": [
    {
      "id": "login",
      "name": "로그인",
      "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_settings",
      "name": "알림 설정 조회 (그룹 기반)",
      "method": "GET",
      "endpoint": "/api/v1/settings/notifications",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      },
      "extract": {
        "original_notice_enabled": "$.data.notice.enabled",
        "original_approval_enabled": "$.data.approval.enabled"
      }
    },
    {
      "id": "update_notice_group",
      "name": "공지사항 그룹 설정 수정",
      "method": "PUT",
      "endpoint": "/api/v1/settings/notifications",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "body": {
        "notice": {
          "enabled": true,
          "notice": {
            "enabled": true,
            "email": true
          },
          "event": {
            "enabled": true,
            "email": false
          }
        }
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    },
    {
      "id": "verify_notice_update",
      "name": "공지사항 설정 변경 확인",
      "method": "GET",
      "endpoint": "/api/v1/settings/notifications",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true,
          "$.data.notice.enabled": true
        }
      }
    },
    {
      "id": "update_approval_group",
      "name": "결재 그룹 설정 수정",
      "method": "PUT",
      "endpoint": "/api/v1/settings/notifications",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "body": {
        "approval": {
          "enabled": true,
          "approvalRequest": {
            "enabled": true,
            "email": true
          },
          "draftApproved": {
            "enabled": true,
            "email": false
          },
          "draftRejected": {
            "enabled": true,
            "email": true
          },
          "draftCompleted": {
            "enabled": false,
            "email": false
          }
        }
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    },
    {
      "id": "update_multiple_groups",
      "name": "여러 그룹 동시 수정",
      "method": "PUT",
      "endpoint": "/api/v1/settings/notifications",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "body": {
        "order": {
          "enabled": true,
          "salesOrder": {
            "enabled": true,
            "email": false
          },
          "purchaseOrder": {
            "enabled": true,
            "email": false
          }
        },
        "production": {
          "enabled": false,
          "safetyStock": {
            "enabled": false,
            "email": false
          },
          "productionComplete": {
            "enabled": false,
            "email": false
          }
        }
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    },
    {
      "id": "get_flat_settings",
      "name": "플랫 구조 알림 설정 조회",
      "method": "GET",
      "endpoint": "/api/v1/users/me/notification-settings",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    },
    {
      "id": "update_single_type",
      "name": "단일 알림 유형 수정 (플랫)",
      "method": "PUT",
      "endpoint": "/api/v1/users/me/notification-settings",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "body": {
        "notification_type": "approval",
        "push_enabled": true,
        "email_enabled": false,
        "sms_enabled": false,
        "in_app_enabled": true
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    },
    {
      "id": "bulk_update",
      "name": "일괄 업데이트 (플랫)",
      "method": "PUT",
      "endpoint": "/api/v1/users/me/notification-settings/bulk",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "body": {
        "settings": [
          {
            "notification_type": "order",
            "push_enabled": true,
            "email_enabled": false
          },
          {
            "notification_type": "deposit",
            "push_enabled": true,
            "email_enabled": true
          }
        ]
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    },
    {
      "id": "final_verify",
      "name": "최종 설정 확인",
      "method": "GET",
      "endpoint": "/api/v1/settings/notifications",
      "headers": {
        "Authorization": "Bearer {{login.token}}"
      },
      "expect": {
        "status": [200],
        "jsonPath": {
          "$.success": true
        }
      }
    }
  ]
}
