{
  "ok": true,
  "scope": "support_ticket_repository_preview",
  "status": "blocked_before_live_support_ticket_repository",
  "date": "2026-06-24",
  "repository": {
    "code": "support_ticket_repository",
    "status": "preview_support_ticket_repository_ready",
    "repositoryKind": "owner_scoped_support_ticket_repository",
    "readMethods": [
      "listSupportCategories",
      "getTicketForOwner",
      "listTicketsForOwner",
      "getAdminTicketQueue",
      "getTicketTimeline"
    ],
    "writeMethods": [
      "createSupportTicket",
      "appendTicketReply",
      "assignTicket",
      "changeTicketStatus",
      "linkPaymentOrderForRechargeIssue",
      "attachTroubleshootingContext"
    ],
    "liveTables": [
      "support_ticket_categories",
      "support_tickets",
      "support_ticket_replies",
      "support_ticket_attachments",
      "support_ticket_events",
      "payment_orders",
      "role_chat_sessions"
    ],
    "transactionBoundary": "owner_scoped_ticket_create_then_admin_queue_event",
    "idempotencyKey": "userId:clientTicketId",
    "promotionGate": "support_ticket_migration_rls_attachment_policy_admin_queue_and_notification_ready"
  },
  "request": {
    "issueType": "recharge_abnormal",
    "userId": "preview-user-id",
    "clientTicketId": "client-ticket-preview-001",
    "relatedOrderId": "payment-order-preview-001",
    "relatedRoleId": null,
    "relatedSessionId": null
  },
  "categories": [
    {
      "code": "recharge_abnormal",
      "name": "充值异常",
      "priorityDefault": "high",
      "sortOrder": 1,
      "defaultSla": "same_day_triage",
      "status": "enabled"
    },
    {
      "code": "usage_abnormal",
      "name": "使用异常",
      "priorityDefault": "medium",
      "sortOrder": 2,
      "defaultSla": "next_business_day_triage",
      "status": "enabled"
    },
    {
      "code": "bug_feedback",
      "name": "Bug 反馈",
      "priorityDefault": "medium",
      "sortOrder": 3,
      "defaultSla": "next_business_day_triage",
      "status": "enabled"
    },
    {
      "code": "account",
      "name": "账号问题",
      "priorityDefault": "medium",
      "sortOrder": 4,
      "defaultSla": "next_business_day_triage",
      "status": "enabled"
    },
    {
      "code": "suggestion",
      "name": "产品建议",
      "priorityDefault": "low",
      "sortOrder": 5,
      "defaultSla": "backlog_review",
      "status": "enabled"
    },
    {
      "code": "general",
      "name": "通用咨询",
      "priorityDefault": "low",
      "sortOrder": 6,
      "defaultSla": "backlog_review",
      "status": "enabled"
    }
  ],
  "userTicketDraft": {
    "method": "createSupportTicket",
    "targetTable": "support_tickets",
    "clientTicketId": "client-ticket-preview-001",
    "issueType": "recharge_abnormal",
    "categoryName": "充值异常",
    "title": "充值异常反馈",
    "contactRequired": true,
    "requiredContext": [
      "related_order_id",
      "payment_channel",
      "user_contact",
      "screenshot_or_receipt_optional"
    ],
    "allowedAttachments": [
      "image/png",
      "image/jpeg",
      "video_link_text_reference"
    ],
    "statusAfterSubmit": "pending",
    "userVisibleTimeline": [
      "已提交",
      "待处理",
      "处理中",
      "已回复",
      "已关闭"
    ]
  },
  "readPlan": {
    "ownerTicket": {
      "method": "getTicketForOwner",
      "source": "support_tickets",
      "ownerFilter": "user_id = authenticated_user_id and id = requested_ticket_id",
      "includes": [
        "status",
        "category",
        "priority",
        "related_order_id",
        "related_role_id",
        "related_session_id",
        "latest_reply"
      ]
    },
    "ownerTicketList": {
      "method": "listTicketsForOwner",
      "source": "support_tickets",
      "defaultSort": "updated_at desc",
      "filters": [
        "status",
        "issue_type"
      ]
    },
    "adminQueue": {
      "method": "getAdminTicketQueue",
      "source": "support_tickets + support_ticket_events",
      "queue": "recharge_abnormal_queue",
      "filters": [
        "issue_type",
        "priority",
        "status",
        "assigned_admin_id"
      ],
      "sensitivePayloadRule": "payment provider raw payloads and private chat text are not exposed in queue rows"
    }
  },
  "writePlan": {
    "createTicket": {
      "method": "createSupportTicket",
      "status": "blocked",
      "requiredBeforeWrite": [
        "authenticated_user_id",
        "valid_issue_type",
        "required_context_present",
        "attachment_policy_passed",
        "client_ticket_id_idempotency"
      ]
    },
    "appendReply": {
      "method": "appendTicketReply",
      "status": "blocked",
      "requiredBeforeWrite": [
        "owner_or_admin_actor",
        "ticket_not_closed_or_reopen_policy",
        "reply_body_validated"
      ]
    },
    "adminStatusChange": {
      "method": "changeTicketStatus",
      "status": "blocked",
      "requiredBeforeWrite": [
        "admin_actor",
        "status_transition_allowed",
        "support_ticket_event_appended"
      ]
    },
    "relatedContextLink": {
      "method": "linkPaymentOrderForRechargeIssue",
      "status": "blocked",
      "references": {
        "relatedOrderId": "payment-order-preview-001",
        "relatedRoleId": null,
        "relatedSessionId": null
      }
    }
  },
  "adminQueuePreview": {
    "queue": "recharge_abnormal_queue",
    "priority": "high",
    "sla": "same_day_triage",
    "columns": [
      "ticket_id",
      "issue_type",
      "user_contact",
      "related_order_id",
      "related_role_id",
      "related_session_id",
      "priority",
      "status",
      "latest_reply_at"
    ],
    "sampleRows": [
      {
        "ticketId": "ticket-preview-001",
        "issueType": "recharge_abnormal",
        "title": "充值异常反馈",
        "priority": "high",
        "status": "pending",
        "relatedOrderId": "payment-order-preview-001",
        "relatedRoleId": null,
        "relatedSessionId": null
      }
    ]
  },
  "notificationPlan": {
    "userVisibleAfterSubmit": true,
    "userVisibleAfterAdminReply": true,
    "channels": [
      "in_app_status",
      "my_tickets_list"
    ],
    "notLiveYet": [
      "push_notification",
      "email_notification"
    ]
  },
  "blockers": [
    "live_support_ticket_repository_not_implemented",
    "support_ticket_tables_not_migrated",
    "support_ticket_owner_rls_not_verified",
    "attachment_upload_policy_not_live",
    "payment_order_link_not_live",
    "admin_support_queue_not_live",
    "customer_service_notification_not_configured"
  ],
  "nextStep": "replace preview with owner-scoped support ticket repository after support tables, RLS, attachment policy, admin queue, and notification rules are ready",
  "boundaries": [
    "support_ticket_repository_preview_only",
    "does_not_create_real_support_ticket",
    "does_not_write_production_database",
    "does_not_upload_attachments",
    "does_not_read_payment_provider_payloads",
    "does_not_expose_user_private_messages",
    "does_not_send_customer_service_notification"
  ]
}