{
  "issueId": "4077",
  "environment": "dev",
  "scenario": "pg-mid-linked-vendors",
  "source": "Redmine #4077 + user-provided QA checklist 2026-09-01",
  "sourceText": "송인준님의 QA 요청입니다. 비스킷 링크 개발계에서 ADMIN, TA, CO, BO 계정으로 업체관리 > 가맹점관리 > TID/MID 관리(결제망 연동 PG MID) 화면에 진입해 수기 및 ISP 유형 데이터의 연동가맹점 표기를 확인합니다. Redmine: https://itsm.bix.bz/issues/4077",
  "scope": "개발계 비스킷 링크 TID/MID 관리 화면에서 ADMIN, TA, CO, BO 권한별 연동가맹점 컬럼을 확인하고, 각 조회 범위의 정상 수기·ISP MID에 연결된 가맹점 코드와 이름이 API 응답과 동일하게 표시되는지 검증한다.",
  "roles": [
    "ADMIN",
    "TA",
    "CO",
    "BO"
  ],
  "subjectAccounts": [
    {
      "role": "ADMIN",
      "label": "ADMIN 개발계 기본 계정",
      "envRole": "ADMIN"
    },
    {
      "role": "TA",
      "label": "TA 개발계 기본 계정",
      "envRole": "TA"
    },
    {
      "role": "CO",
      "label": "CO 개발계 기본 계정",
      "envRole": "CO"
    },
    {
      "role": "BO",
      "label": "BO 개발계 기본 계정",
      "envRole": "BO"
    }
  ],
  "checklist": [
    "수기, ISP 유형 데이터의 연동가맹점 표기 확인"
  ],
  "setupSteps": [
    {
      "name": "권한별 개발계 로그인 및 TID/MID 관리 접근",
      "kind": "state-verify",
      "role": "ADMIN",
      "targetRoles": [
        "ADMIN",
        "TA",
        "CO",
        "BO"
      ],
      "application": "admin",
      "description": "ADMIN, TA, CO, BO 개발계 기본 계정으로 로그인하고 업체관리 > 가맹점관리 > TID/MID 관리 화면에 접근할 수 있어야 한다.",
      "required": true,
      "mutation": "none",
      "navigation": {
        "name": "TID/MID 관리",
        "path": "/business/pg-mid-manage"
      }
    },
    {
      "name": "권한별 수기·ISP 연동가맹점 데이터 확인",
      "kind": "manual-precondition",
      "role": "ADMIN",
      "targetRoles": [
        "ADMIN",
        "TA",
        "CO",
        "BO"
      ],
      "application": "admin",
      "description": "각 권한의 조회 범위에 linkedVendors가 1건 이상인 정상 수기 MID와 ISP MID가 있어야 한다. 데이터가 없는 권한은 컬럼과 빈 목록을 증적으로 남기고 행 표기 검증은 확인불가로 판정한다.",
      "required": true,
      "mutation": "none"
    }
  ],
  "pages": [
    {
      "name": "TID/MID 관리 (결제망 연동 PG MID)",
      "application": "admin",
      "path": "/business/pg-mid-manage",
      "tenantParam": "tenantId",
      "roles": [
        "ADMIN",
        "TA",
        "CO",
        "BO"
      ],
      "recordsSelector": "[role='grid']:last-of-type [role='row']",
      "searchButtonSelector": "button:has-text('검색'), button:has-text('조회'), [data-testid='search-button']",
      "dataRequestUrlPattern": "/api/v1/pgmids/manage",
      "filters": [
        {
          "name": "유형",
          "label": "유형",
          "type": "combobox",
          "value": "수기 또는 ISP",
          "queryParam": "midTypes"
        }
      ]
    }
  ]
}
