{
  "issueId": "3296",
  "environment": "dev",
  "scenario": "transaction-delete-sales-aggregate",
  "source": "Redmine #3296 + user-provided checklist",
  "sourceText": "김경주님의 QA 요청입니다\n조지민 프로님 안녕하세요, 비스킷 링크 개발계 QA 요청드립니다\n[1] QA 요청 배경\n- https://itsm.bix.bz/issues/3296\n- 거래 삭제 시 계약별 일 매출집계에 삭제 거래 금액이 차감되어 표시되는지 확인 요청\n[2] 사전 데이터\n- 검증할 테넌트, 법인, 가맹점, 계약, 월 기준 데이터 준비\n- 삭제 전 계약별 일 매출집계 화면에서 기준 월과 필터 조건의 금액 확인\n[3] 사전 작업\n- 개발계 어드민 계정으로 로그인 가능 여부 확인\n[4] 권한별 테스트\n- admin\n[5] 검증 대상\n- 어드민 거래내역 화면\n- 계약별 일 매출집계 화면\n- 거래 삭제 버튼 노출 및 데이터 조회 범위\n[6] 체크리스트\n- admin 계정에서 거래내역 화면의 검증 대상 거래를 삭제하고 삭제 완료 상태를 확인\n- admin 계정에서 계약별 일 매출집계 화면을 같은 월과 같은 필터로 다시 조회했을 때 삭제 거래의 결제일 금액이 차감되어 보이는지 확인\n- 거래 삭제 후 화면을 새로고침하거나 다시 조회해도 차감된 금액이 유지되는지 확인",
  "scope": "dev ADMIN 계정으로 거래내역에서 삭제 가능한 PAYMENT 거래를 삭제한 뒤 같은 월/계약/결제일의 계약별 일 매출집계 금액 차감과 유지 여부를 확인",
  "checklist": [
    "admin 계정에서 거래내역 화면의 검증 대상 거래를 삭제하고 삭제 완료 상태를 확인",
    "admin 계정에서 계약별 일 매출집계 화면을 같은 월과 같은 필터로 다시 조회했을 때 삭제 거래의 결제일 금액이 차감되어 보이는지 확인",
    "거래 삭제 후 화면을 새로고침하거나 다시 조회해도 차감된 금액이 유지되는지 확인"
  ],
  "roles": [],
  "routeCandidates": "../../../../qa-results/issues/3296/dev/route-candidates.json",
  "setupSteps": [
    {
      "name": "거래 삭제 검증 데이터 준비",
      "kind": "manual-precondition",
      "role": "ADMIN",
      "application": "admin",
      "description": "검증할 테넌트/법인/가맹점/계약/월 기준 데이터와 삭제 가능한 PAYMENT 거래가 준비되어 있어야 합니다.",
      "required": true,
      "mutation": "none"
    }
  ],
  "pages": [
    {
      "name": "거래내역",
      "application": "admin",
      "path": "/trade-history-v2",
      "tenantParam": "tenantId",
      "searchButtonSelector": "button:has-text('검색'), button:has-text('조회')",
      "dataRequestUrlPattern": "transactions|trade-history|transaction",
      "restoreTimeoutMs": 30000
    },
    {
      "name": "계약별 일 매출집계",
      "application": "admin",
      "path": "/admin/sales-history",
      "tenantParam": "tenantId",
      "monthSelector": "input[type='month'], input[placeholder*='월'], [data-testid*='month' i], [aria-label*='month' i], [name*='month' i], [id*='month' i]",
      "dataRequestUrlPattern": "daily-sales-aggregate-by-contract|sales|aggregate|contract",
      "restoreTimeoutMs": 30000
    }
  ]
}
