{
  "issueId": "4158",
  "environment": "dev",
  "source": "user-provided checklist (Redmine #4158)",
  "scenario": "notice-branch-target",
  "sourceText": "요청자: 송인준\n[1] QA 요청 배경\n* https://itsm.bix.bz/issues/4158\n[2] 사전 데이터\n* 비스킷링크 BO 계정\n* 비스킷페이 VE 계정\n[3] 사전 작업\n* 비스킷링크 BO 계정 로그인\n* 비스킷페이 VE 계정 로그인\n[4] 권한별 테스트\n* BO,VE 계정 로그인\n[5] 검증 대상\n* 공지사항\n[6] 체크리스트\n* 공지사항 노출 대상을 특정 영업점, 가맹점 단위 지정 등록 확인\n* 영업점 선택 시 해당 영업점 및 하위 영업점 , 가맹점에게만 공지 노출 되는지 확인\n* 선택한 영업점 외 다른 영업라인에는 공지가 노출 되지않도록 처리 됐는지 확인\n* 기존 테넌트 및 법인 단위 노출은 변함 없는지 확인",
  "scope": "개발계 공지사항 노출 대상 영업점·가맹점 지정과 영업라인 하위 노출, 기존 테넌트·법인 노출 유지 QA",
  "checklist": [
    "ADMIN 공지 등록(관리 화면과 같은 API)으로 노출 대상 영업점(A_주홍석_영업1, A_주홍석_영업2, 다른 영업라인 최인석 영업)·가맹점(A_주홍석_가맹3) 지정 공지 등록, 관리 화면 수정 모달에 지정값 표시",
    "영업점 지정 시 해당 영업점 + 영업라인 하위 영업점·가맹점에만 노출: BO A_주홍석_영업1(jjmbo01, 영업2 하위이자 본인), VE A_주홍석_가맹1(jjmve02, 영업1·영업2 하위, ADMIN 가상로그인)",
    "다른 영업라인 미노출: 영업라인에 영업점이 없는 VE A_주홍석_가맹3(jjmve01), 다른 영업라인(최인석 영업) 지정 공지는 BO·VE 모두 미노출, 예전 영업1 하위였던 A_주홍석_가맹4_루시페이먼츠(현재 법인 직속)는 영업점 지정 공지 미노출(휴면 잠금으로 가상로그인 불가 시 확인 불가)",
    "기존 테넌트 전체·법인(A_주홍석_법인) 지정 공지는 BO·VE 모두 그대로 노출",
    "테스트 공지는 확인 후 삭제",
    "VE(스토어)는 비스킷페이 VE 세션(jjmve01)과 ADMIN 가상로그인(가맹1·가맹4)으로 확인",
    "1차 QA(2026-10-11 02:0x) 가맹점 지정 500·예전 영업라인 노출 FAIL → deaa5eecea(삭제된 영업라인 공지 노출 제외, 가맹점 제약) 후 재QA"
  ],
  "roles": [
    "ADMIN",
    "BO"
  ],
  "routeCandidates": "../../../../qa-results/issues/4158/dev/route-candidates.json",
  "setupSteps": [],
  "pages": [
    {
      "name": "공지사항",
      "application": "admin",
      "path": "/admin/notice-manage",
      "tenantParam": "tenantId",
      "roles": [
        "ADMIN",
        "BO"
      ],
      "filters": [],
      "targets": [
        {
          "key": "branch",
          "label": "영업점 A_주홍석_영업1",
          "roleScope": "CUSTOM",
          "roles": [
            "BO",
            "VE"
          ],
          "branchOfficeIds": [
            "11f1-3f1a-c7543467-8bc6-000000000001"
          ]
        },
        {
          "key": "parentBranch",
          "label": "영업점 A_주홍석_영업2",
          "roleScope": "CUSTOM",
          "roles": [
            "BO",
            "VE"
          ],
          "branchOfficeIds": [
            "11f1-3f1a-e0218a18-8bc6-000000000001"
          ]
        },
        {
          "key": "otherBranch",
          "label": "다른 영업라인 최인석 영업",
          "roleScope": "CUSTOM",
          "roles": [
            "BO",
            "VE"
          ],
          "branchOfficeIds": [
            "11f1-2f37-7bf70901-b90a-000000000001"
          ]
        },
        {
          "key": "vendor",
          "label": "가맹점 A_주홍석_가맹3",
          "roleScope": "CUSTOM",
          "roles": [
            "VE"
          ],
          "vendorIds": [
            "11f1-3f1c-09912f8c-8bc6-000000000001"
          ]
        },
        {
          "key": "corporation",
          "label": "법인 A_주홍석_법인",
          "roleScope": "CUSTOM",
          "roles": [
            "CO",
            "BO",
            "VE"
          ],
          "corporationIds": [
            "11f1-3f1a-39e5b135-8bc6-000000000001"
          ]
        },
        {
          "key": "tenant",
          "label": "테넌트 전체",
          "roleScope": "ALL"
        }
      ],
      "viewers": [
        {
          "key": "bo-branch1",
          "label": "BO A_주홍석_영업1 (jjmbo01)",
          "kind": "direct-admin",
          "role": "BO",
          "expected": [
            "branch",
            "parentBranch",
            "corporation",
            "tenant"
          ]
        },
        {
          "key": "ve-vendor3",
          "label": "VE A_주홍석_가맹3 (jjmve01, 영업점 없는 영업라인)",
          "kind": "direct-store",
          "role": "VE",
          "expected": [
            "vendor",
            "corporation",
            "tenant"
          ]
        },
        {
          "key": "ve-vendor1",
          "label": "VE A_주홍석_가맹1 (jjmve02, 영업1·영업2 하위)",
          "kind": "virtual-store",
          "role": "VE",
          "department": "A_주홍석_가맹1",
          "loginPrefix": "jjm",
          "expected": [
            "branch",
            "parentBranch",
            "corporation",
            "tenant"
          ]
        },
        {
          "key": "ve-vendor4",
          "label": "VE A_주홍석_가맹4_루시페이먼츠 (예전 영업1 하위, 현재 법인 직속)",
          "kind": "virtual-store",
          "role": "VE",
          "department": "A_주홍석_가맹4_루시페이먼츠",
          "expected": [
            "corporation",
            "tenant"
          ],
          "optional": true
        }
      ]
    }
  ]
}
