{
  "schema": "ods",
  "table": "member_profiles",
  "columns": [
    {
      "name": "tenant_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】租户/品牌 ID。     【示例】2790683160709957（用于租户/品牌 ID）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - tenant_id。",
      "ordinal_position": 1
    },
    {
      "name": "register_site_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】会员的注册门店 ID。     【示例】2790685415443269（用于会员的注册门店 ID）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - register_site_id。",
      "ordinal_position": 2
    },
    {
      "name": "site_name",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】注册门店名称，属于冗余字段，用于直接展示。     【示例】朗朗桌球（注册门店名称，属于冗余字段，用于直接展示）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - site_name。",
      "ordinal_position": 3
    },
    {
      "name": "id",
      "data_type": "bigint",
      "is_nullable": false,
      "column_default": null,
      "comment": "【说明】这是“租户内会员账户”的主键 ID。     【示例】2955204541320325（用于这是“租户内会员账户”的主键 ID）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - id。",
      "ordinal_position": 4
    },
    {
      "name": "system_member_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】这是“系统级会员 ID”，在全平台唯一，用来把一个会员在不同门店/不同卡类型下的账户统一到一个“人”的维度上。     【示例】2955204540009605（用于这是“系统级会员 ID”，在全平台唯一，用来把一个会员在不同门店/不同卡类型下的账户统一到一个“人”的维度上）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - system_member_id。",
      "ordinal_position": 5
    },
    {
      "name": "member_card_grade_code",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】这两个字段是成对出现的：一个数值码，一个中文名称。     【示例】2790683528022853（用于这两个字段是成对出现的：一个数值码，一个中文名称）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - member_card_grade_code。",
      "ordinal_position": 6
    },
    {
      "name": "member_card_grade_name",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】这是“会员卡种类/等级”的定义字段。     【示例】储值卡（用于这是“会员卡种类/等级”的定义字段）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - member_card_grade_name。",
      "ordinal_position": 7
    },
    {
      "name": "mobile",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】会员绑定的手机号码。     【示例】18620043391（用于会员绑定的手机号码）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - mobile。",
      "ordinal_position": 8
    },
    {
      "name": "nickname",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】会员在当前租户下的显示名称（可以是姓名，也可以是昵称）。     【示例】胡先生（用于会员在当前租户下的显示名称（可以是姓名，也可以是昵称））。          【JSON字段】member_profiles.json - data.tenantMemberInfos - nickname。",
      "ordinal_position": 9
    },
    {
      "name": "point",
      "data_type": "numeric",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】当前积分余额（这条会员账户的积分值）。     【示例】0.0（用于当前积分余额（这条会员账户的积分值））。          【JSON字段】member_profiles.json - data.tenantMemberInfos - point。",
      "ordinal_position": 10
    },
    {
      "name": "growth_value",
      "data_type": "numeric",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】成长值 / 经验值，用于会员等级晋升的累计指标。     【示例】0.0（成长值 / 经验值，用于会员等级晋升的累计指标）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - growth_value。",
      "ordinal_position": 11
    },
    {
      "name": "referrer_member_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】推荐人会员 ID，用于记录该会员是由哪位老会员推荐。     【示例】0（推荐人会员 ID，用于记录该会员是由哪位老会员推荐）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - referrer_member_id。",
      "ordinal_position": 12
    },
    {
      "name": "status",
      "data_type": "integer",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】帐户状态（偏“卡状态/档案状态”）。     【示例】1（用于帐户状态（偏“卡状态/档案状态”））。          【JSON字段】member_profiles.json - data.tenantMemberInfos - status。",
      "ordinal_position": 13
    },
    {
      "name": "user_status",
      "data_type": "integer",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】用户账号状态（偏“用户逻辑”层面的状态）。     【示例】1（用于用户账号状态（偏“用户逻辑”层面的状态））。          【JSON字段】member_profiles.json - data.tenantMemberInfos - user_status。",
      "ordinal_position": 14
    },
    {
      "name": "create_time",
      "data_type": "timestamp without time zone",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】会员账户的创建时间（即这条档案/这张卡在系统中被创建的时间）。     【示例】2025-11-08 01:29:33（用于会员账户的创建时间（即这条档案/这张卡在系统中被创建的时间））。          【JSON字段】member_profiles.json - data.tenantMemberInfos - create_time。",
      "ordinal_position": 15
    },
    {
      "name": "pay_money_sum",
      "data_type": "numeric",
      "is_nullable": true,
      "column_default": null,
      "comment": null,
      "ordinal_position": 16
    },
    {
      "name": "person_tenant_org_id",
      "data_type": "bigint",
      "is_nullable": true,
      "column_default": null,
      "comment": null,
      "ordinal_position": 17
    },
    {
      "name": "person_tenant_org_name",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": null,
      "ordinal_position": 18
    },
    {
      "name": "recharge_money_sum",
      "data_type": "numeric",
      "is_nullable": true,
      "column_default": null,
      "comment": null,
      "ordinal_position": 19
    },
    {
      "name": "register_source",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": null,
      "ordinal_position": 20
    },
    {
      "name": "content_hash",
      "data_type": "text",
      "is_nullable": false,
      "column_default": null,
      "comment": null,
      "ordinal_position": 21
    },
    {
      "name": "source_file",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】ETL 元数据：原始导出文件名，用于数据追溯。     【示例】member_profiles.json（ETL 元数据：原始导出文件名，用于数据追溯）。          【JSON字段】member_profiles.json - ETL元数据 - 无。",
      "ordinal_position": 22
    },
    {
      "name": "source_endpoint",
      "data_type": "text",
      "is_nullable": true,
      "column_default": null,
      "comment": "【说明】ETL 元数据：采集来源（接口/文件路径），用于数据追溯。     【示例】export/test-json-doc/member_profiles.json（ETL 元数据：采集来源（接口/文件路径），用于数据追溯）。          【JSON字段】member_profiles.json - ETL元数据 - 无。",
      "ordinal_position": 23
    },
    {
      "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_profiles.json - ETL元数据 - 无。",
      "ordinal_position": 24
    },
    {
      "name": "payload",
      "data_type": "jsonb",
      "is_nullable": false,
      "column_default": null,
      "comment": "【说明】完整原始 JSON 记录快照，用于回溯与二次解析。     【示例】{...}（完整原始 JSON 记录快照，用于回溯与二次解析）。          【JSON字段】member_profiles.json - data.tenantMemberInfos - $。",
      "ordinal_position": 25
    },
    {
      "name": "birthday",
      "data_type": "date",
      "is_nullable": true,
      "column_default": null,
      "comment": "会员生日，来源：上游 API payload 中的 birthday 字段",
      "ordinal_position": 26
    }
  ]
}