{
  "issueId": "4420",
  "environment": "dev",
  "source": "user delegated checklist",
  "sourceText": "A01 가맹점 수정 일반정보의 휴일 이체 사용 여부 미표시\nA02 정산정보 휴일 지갑 이체 정확히 한 번 표시\nA03 기존 설정값·새로고침 재진입 유지\nA04 비고만 저장해도 휴일 지갑 이체 유지\nA05 사용→미사용 저장·재진입 유지\nA06 미사용→사용 저장·재진입 유지\nA07 생성 모달 중복 제거·정산 선택 가능(신규 생성 없음)\nA08 김경주_법인 휴일 지갑 이체 기존 설정 유지\nA09 김경주_영업 휴일 이체 사용 여부 기존 설정 유지\nA10 PC·모바일 너비 수정 모달 배치·개폐\nA11 가맹점 설정·비고 원복·새로고침 재진입 확인",
  "scope": "ADMIN 단독 실제 TypeScript+Playwright UI 검증. 김경주_법인/김경주_영업/김경주_가맹은 대상 데이터. 가맹점 휴일 설정·비고 임시 변경 후 finally 원복. 신규 생성·권한·공유 프리셋 변경·실제 금융 실행 없음. 요청자·담당·완료 멘션 김경주. 사용자 선택: 임시 저장 대상은 김경주_가맹_D+1(1일 후), BP100611. 기존 대상 접두어와 구분하며 다른 가맹점 변경 없음.",
  "checklist": [
    "A01 가맹점 수정 일반정보의 휴일 이체 사용 여부 미표시",
    "A02 정산정보 휴일 지갑 이체 정확히 한 번 표시",
    "A03 기존 설정값·새로고침 재진입 유지",
    "A04 비고만 저장해도 휴일 지갑 이체 유지",
    "A05 사용→미사용 저장·재진입 유지",
    "A06 미사용→사용 저장·재진입 유지",
    "A07 생성 모달 중복 제거·정산 선택 가능(신규 생성 없음)",
    "A08 김경주_법인 휴일 지갑 이체 기존 설정 유지",
    "A09 김경주_영업 휴일 이체 사용 여부 기존 설정 유지",
    "A10 PC·모바일 너비 수정 모달 배치·개폐",
    "A11 가맹점 설정·비고 원복·새로고침 재진입 확인"
  ],
  "roles": [
    "ADMIN"
  ],
  "pages": [
    {
      "name": "가맹점 관리",
      "application": "admin",
      "path": "/business/vendor-manage",
      "tenantParam": "tenantId",
      "searchButtonSelector": "[data-route-keep-alive-active=true] button:has-text(\"검색\")",
      "filters": [
        {
          "name": "가맹점명",
          "selector": "[data-route-keep-alive-active=true] .MuiFormControl-root:has(label:text-is(\"가맹점명\")) input",
          "type": "textbox",
          "value": "김경주_가맹_D+1(1일 후)",
          "queryParamCandidates": [
            "vendorName"
          ]
        }
      ]
    },
    {
      "name": "법인 관리",
      "application": "admin",
      "path": "/business/corporation",
      "tenantParam": "tenantId",
      "searchButtonSelector": "[data-route-keep-alive-active=true] button:has-text(\"검색\")",
      "filters": [
        {
          "name": "법인명",
          "selector": "[data-route-keep-alive-active=true] .MuiFormControl-root:has(label:text-is(\"법인명\")) input",
          "type": "textbox",
          "value": "김경주_법인",
          "queryParamCandidates": [
            "corporationIds"
          ]
        }
      ]
    },
    {
      "name": "영업점 관리",
      "application": "admin",
      "path": "/business/branch",
      "tenantParam": "tenantId",
      "searchButtonSelector": "[data-route-keep-alive-active=true] button:has-text(\"검색\")",
      "filters": [
        {
          "name": "영업점명",
          "selector": "[data-route-keep-alive-active=true] .MuiFormControl-root:has(label:text-is(\"영업점명\")) input",
          "type": "textbox",
          "value": "김경주_영업",
          "queryParamCandidates": [
            "branchOfficeName"
          ]
        }
      ]
    }
  ],
  "setupSteps": [
    {
      "name": "승인 가맹점 설정·비고 왕복 저장 및 원복",
      "kind": "data-update",
      "role": "ADMIN",
      "application": "admin",
      "targetRoles": [
        "ADMIN"
      ],
      "description": "김경주_가맹 원본 설정·비고 백업. UI에서 설정 양방향 저장·재진입 후 원래 값 복구. 권한·프리셋 변경 없음.",
      "mutation": "temporary",
      "guardEnv": "QA4420_ALLOW_VENDOR_MUTATION",
      "required": true,
      "spec": "01-holiday.spec.ts",
      "restore": {
        "required": true,
        "description": "성공·실패 모두 finally에서 최초 값으로 복구하고 새로고침·재조회"
      },
      "navigation": {
        "name": "가맹점 관리",
        "path": "/business/vendor-manage"
      }
    }
  ],
  "subjectAccounts": [
    {
      "role": "ADMIN",
      "label": "기존 저장된 ADMIN 계정(실행 시 전용 환경으로 복사)",
      "envRole": "ADMIN"
    }
  ]
}
