{
  "schema": "ods",
  "table": "member_balance_changes",
  "columns": [
    {
      "name": "tenant_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】租户/商户 ID，本数据中是固定值（同一品牌/商户）。     【示例】2790683160709957（用于租户/商户 ID，本数据中是固定值（同一品牌/商户））。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - tenant_id。",
      "ordinal_position": 1
    },
    {
      "name": "site_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】非 0：记录所属的具体门店 ID（与其他 JSON 内的 site_id 一致）。     【示例】2790685415443269（用于非 0：记录所属的具体门店 ID（与其他 JSON 内的 site_id 一致））。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - site_id。",
      "ordinal_position": 2
    },
    {
      "name": "register_site_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】会员卡的“注册门店 ID”，即办卡所在门店。     【示例】2790685415443269（用于会员卡的“注册门店 ID”，即办卡所在门店）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - register_site_id。",
      "ordinal_position": 3
    },
    {
      "name": "registersitename",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】卡片的注册门店名称（办卡地点），和 register_site_id 配套。     【示例】朗朗桌球（用于卡片的注册门店名称（办卡地点），和 register_site_id 配套）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - registerSiteName。",
      "ordinal_position": 4
    },
    {
      "name": "paysitename",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】发生本次余额变更的门店名称（即本次消费/充值所在门店）。     【示例】朗朗桌球（用于发生本次余额变更的门店名称（即本次消费/充值所在门店））。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - paySiteName。",
      "ordinal_position": 5
    },
    {
      "name": "id",
      "data_type": "bigint",
      "is_nullable": false,
      "column_default": null,
      "comment": "【说明】余额变更记录的主键 ID，唯一标识这一条“账户余额变化事件”。     【示例】2957881605869253（用于余额变更记录的主键 ID，唯一标识这一条“账户余额变化事件”）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - id。",
      "ordinal_position": 6
    },
    {
      "name": "tenant_member_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】商户维度的会员 ID（租户内会员主键）。     【示例】2799212845565701（用于商户维度的会员 ID（租户内会员主键））。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - tenant_member_id。",
      "ordinal_position": 7
    },
    {
      "name": "tenant_member_card_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】会员卡账户 ID，在租户内唯一标识某张卡。     【示例】2799219999295237（用于会员卡账户 ID，在租户内唯一标识某张卡）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - tenant_member_card_id。",
      "ordinal_position": 8
    },
    {
      "name": "system_member_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】系统级（全局）会员 ID。     【示例】2799212844549893（用于系统级（全局）会员 ID）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - system_member_id。",
      "ordinal_position": 9
    },
    {
      "name": "membername",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】会员姓名或称呼（非昵称字段）。     【示例】曾丹烨（用于会员姓名或称呼（非昵称字段））。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - memberName。",
      "ordinal_position": 10
    },
    {
      "name": "membermobile",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】会员手机号。     【示例】13922213242（用于会员手机号）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - memberMobile。",
      "ordinal_position": 11
    },
    {
      "name": "card_type_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】卡种类型 ID，用于区分不同卡种。     【示例】2793249295533893（卡种类型 ID，用于区分不同卡种）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - card_type_id。",
      "ordinal_position": 12
    },
    {
      "name": "membercardtypename",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】卡种名称，与 card_type_id 一一对应，是一个 卡种枚举名称。     【示例】储值卡（用于卡种名称，与 card_type_id 一一对应，是一个 卡种枚举名称）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - memberCardTypeName。",
      "ordinal_position": 13
    },
    {
      "name": "account_data",
      "data_type": "numeric",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】本次变动的金额（元），正数表示增加，负数表示减少。     【示例】-120.0（用于本次变动的金额（元），正数表示增加，负数表示减少）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - account_data。",
      "ordinal_position": 14
    },
    {
      "name": "before",
      "data_type": "numeric",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】本次变动前，该卡账户的余额（元）。     【示例】816.3（用于本次变动前，该卡账户的余额（元））。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - before。",
      "ordinal_position": 15
    },
    {
      "name": "after",
      "data_type": "numeric",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】本次变动后，该卡账户的余额（元）。     【示例】696.3（用于本次变动后，该卡账户的余额（元））。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - after。",
      "ordinal_position": 16
    },
    {
      "name": "refund_amount",
      "data_type": "numeric",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】可能用于标记“其中有多少金额是以‘退款’形式回流的”，或区分“退回余额”和“原路退回”两种模式。     【示例】0.0（可能用于标记“其中有多少金额是以‘退款’形式回流的”，或区分“退回余额”和“原路退回”两种模式）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - refund_amount。",
      "ordinal_position": 17
    },
    {
      "name": "from_type",
      "data_type": "integer",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】来自 JSON 导出的原始字段，用于保留业务取值。     【示例】1（来自 JSON 导出的原始字段，用于保留业务取值。）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - from_type。",
      "ordinal_position": 18
    },
    {
      "name": "payment_method",
      "data_type": "integer",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】来自 JSON 导出的原始字段，用于保留业务取值。     【示例】0（来自 JSON 导出的原始字段，用于保留业务取值。）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - payment_method。",
      "ordinal_position": 19
    },
    {
      "name": "relate_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】例如某次充值记录的 ID、某张订单/结算单 ID、某次活动抵用券核销记录 ID 等。     【示例】2957881518788421（用于例如某次充值记录的 ID、某张订单/结算单 ID、某次活动抵用券核销记录 ID 等）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - relate_id。",
      "ordinal_position": 20
    },
    {
      "name": "remark",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】当为空时，说明这条变动没有额外备注说明。     【示例】充值退款（用于当为空时，说明这条变动没有额外备注说明）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - remark。",
      "ordinal_position": 21
    },
    {
      "name": "operator_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】执行此次余额变更操作的员工 ID。     【示例】2790687322443013（用于执行此次余额变更操作的员工 ID）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - operator_id。",
      "ordinal_position": 22
    },
    {
      "name": "operator_name",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】操作员姓名（带职位前缀），是对 operator_id 的可读冗余字段。     【示例】收银员:郑丽珊（用于操作员姓名（带职位前缀），是对 operator_id 的可读冗余字段）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - operator_name。",
      "ordinal_position": 23
    },
    {
      "name": "is_delete",
      "data_type": "integer",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】逻辑删除标记（0=否，1=是）。     【示例】0（用于逻辑删除标记（0=否，1=是））。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - is_delete。",
      "ordinal_position": 24
    },
    {
      "name": "create_time",
      "data_type": "timestamp without time zone",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】本条余额变更记录的创建时间，通常接近交易发生时间。     【示例】2025-11-09 22:52:48（用于本条余额变更记录的创建时间，通常接近交易发生时间）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - create_time。",
      "ordinal_position": 25
    },
    {
      "name": "principal_after",
      "data_type": "numeric",
      "is_nullable": true,
      "column_default": null,
      "comment": null,
      "ordinal_position": 26
    },
    {
      "name": "principal_before",
      "data_type": "numeric",
      "is_nullable": true,
      "column_default": null,
      "comment": null,
      "ordinal_position": 27
    },
    {
      "name": "principal_data",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": null,
      "ordinal_position": 28
    },
    {
      "name": "content_hash",
      "data_type": "text",
      "is_nullable": false,
      "column_default": null,
      "comment": null,
      "ordinal_position": 29
    },
    {
      "name": "source_file",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】ETL 元数据：原始导出文件名，用于数据追溯。     【示例】member_balance_changes.json（ETL 元数据：原始导出文件名，用于数据追溯）。          【JSON字段】member_balance_changes.json - ETL元数据 - 无。",
      "ordinal_position": 30
    },
    {
      "name": "source_endpoint",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】ETL 元数据：采集来源（接口/文件路径），用于数据追溯。     【示例】export/test-json-doc/member_balance_changes.json（ETL 元数据：采集来源（接口/文件路径），用于数据追溯）。          【JSON字段】member_balance_changes.json - ETL元数据 - 无。",
      "ordinal_position": 31
    },
    {
      "name": "fetched_at",
      "data_type": "timestamp with time zone",
      "is_nullable": true,
      "column_default": "now()",
      "comment": "【说明】ETL 元数据：采集/入库时间戳，用于口径对齐与增量处理。     【示例】2025-11-10T00:00:00+08:00（ETL 元数据：采集/入库时间戳，用于口径对齐与增量处理）。          【JSON字段】member_balance_changes.json - ETL元数据 - 无。",
      "ordinal_position": 32
    },
    {
      "name": "payload",
      "data_type": "jsonb",
      "is_nullable": false,
      "column_default": null,
      "comment": "【说明】完整原始 JSON 记录快照，用于回溯与二次解析。     【示例】{...}（完整原始 JSON 记录快照，用于回溯与二次解析）。          【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - $。",
      "ordinal_position": 33
    }
  ]
}