Files
feiqiu-ETL/tmp/etl_billiards_misc/tmp & Delete/schema_ODS_doc.sql.rewrite2.bak
2025-12-13 08:26:09 +08:00

1946 lines
294 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SET client_encoding TO "UTF8";
DROP SCHEMA IF EXISTS billiards_ods CASCADE;
CREATE SCHEMA IF NOT EXISTS billiards_ods;
CREATE TABLE IF NOT EXISTS billiards_ods.member_profiles (
tenant_id BIGINT,
register_site_id BIGINT,
site_name TEXT,
id BIGINT PRIMARY KEY,
system_member_id BIGINT,
member_card_grade_code BIGINT,
member_card_grade_name TEXT,
mobile TEXT,
nickname TEXT,
point NUMERIC(18,2),
growth_value NUMERIC(18,2),
referrer_member_id BIGINT,
status INT,
user_status INT,
create_time TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.member_profiles IS 'ODS 原始明细表:会员档案/会员账户信息。来源C:/dev/LLTQ/export/test-json-doc/member_profiles.json分析member_profiles-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.member_profiles.tenant_id IS '【说明】租户/品牌 ID。 【示例】2790683160709957用于租户/品牌 ID。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.member_profiles.register_site_id IS '【说明】会员的注册门店 ID。 【示例】2790685415443269用于会员的注册门店 ID。 【JSON字段】register_site_id。';
COMMENT ON COLUMN billiards_ods.member_profiles.site_name IS '【说明】注册门店名称,属于冗余字段,用于直接展示。 【示例】朗朗桌球(注册门店名称,属于冗余字段,用于直接展示)。 【JSON字段】site_name。';
COMMENT ON COLUMN billiards_ods.member_profiles.id IS '【说明】这是“租户内会员账户”的主键 ID。 【示例】2955204541320325用于这是“租户内会员账户”的主键 ID。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.member_profiles.system_member_id IS '【说明】这是“系统级会员 ID”在全平台唯一用来把一个会员在不同门店/不同卡类型下的账户统一到一个“人”的维度上。 【示例】2955204540009605用于这是“系统级会员 ID”在全平台唯一用来把一个会员在不同门店/不同卡类型下的账户统一到一个“人”的维度上)。 【JSON字段】system_member_id。';
COMMENT ON COLUMN billiards_ods.member_profiles.member_card_grade_code IS '【说明】这两个字段是成对出现的:一个数值码,一个中文名称。 【示例】2790683528022853用于这两个字段是成对出现的一个数值码一个中文名称。 【JSON字段】member_card_grade_code。';
COMMENT ON COLUMN billiards_ods.member_profiles.member_card_grade_name IS '【说明】这是“会员卡种类/等级”的定义字段。 【示例】储值卡(用于这是“会员卡种类/等级”的定义字段)。 【JSON字段】member_card_grade_name。';
COMMENT ON COLUMN billiards_ods.member_profiles.mobile IS '【说明】会员绑定的手机号码。 【示例】18620043391用于会员绑定的手机号码。 【JSON字段】mobile。';
COMMENT ON COLUMN billiards_ods.member_profiles.nickname IS '【说明】会员在当前租户下的显示名称(可以是姓名,也可以是昵称)。 【示例】胡先生(用于会员在当前租户下的显示名称(可以是姓名,也可以是昵称))。 【JSON字段】nickname。';
COMMENT ON COLUMN billiards_ods.member_profiles.point IS '【说明】当前积分余额(这条会员账户的积分值)。 【示例】0.0(用于当前积分余额(这条会员账户的积分值))。 【JSON字段】point。';
COMMENT ON COLUMN billiards_ods.member_profiles.growth_value IS '【说明】成长值 / 经验值,用于会员等级晋升的累计指标。 【示例】0.0(成长值 / 经验值,用于会员等级晋升的累计指标)。 【JSON字段】growth_value。';
COMMENT ON COLUMN billiards_ods.member_profiles.referrer_member_id IS '【说明】推荐人会员 ID用于记录该会员是由哪位老会员推荐。 【示例】0推荐人会员 ID用于记录该会员是由哪位老会员推荐。 【JSON字段】referrer_member_id。';
COMMENT ON COLUMN billiards_ods.member_profiles.status IS '【说明】帐户状态(偏“卡状态/档案状态”)。 【示例】1用于帐户状态偏“卡状态/档案状态”))。 【JSON字段】status。';
COMMENT ON COLUMN billiards_ods.member_profiles.user_status IS '【说明】用户账号状态(偏“用户逻辑”层面的状态)。 【示例】1用于用户账号状态偏“用户逻辑”层面的状态。 【JSON字段】user_status。';
COMMENT ON COLUMN billiards_ods.member_profiles.create_time IS '【说明】会员账户的创建时间(即这条档案/这张卡在系统中被创建的时间)。 【示例】2025-11-08 01:29:33用于会员账户的创建时间即这条档案/这张卡在系统中被创建的时间))。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.member_profiles.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】member_profiles.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.member_profiles.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/member_profiles.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.member_profiles.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.member_profiles.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.member_balance_changes (
tenant_id BIGINT,
site_id BIGINT,
register_site_id BIGINT,
registerSiteName TEXT,
paySiteName TEXT,
id BIGINT PRIMARY KEY,
tenant_member_id BIGINT,
tenant_member_card_id BIGINT,
system_member_id BIGINT,
memberName TEXT,
memberMobile TEXT,
card_type_id BIGINT,
memberCardTypeName TEXT,
account_data NUMERIC(18,2),
before NUMERIC(18,2),
after NUMERIC(18,2),
refund_amount NUMERIC(18,2),
from_type INT,
payment_method INT,
relate_id BIGINT,
remark TEXT,
operator_id BIGINT,
operator_name TEXT,
is_delete INT,
create_time TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.member_balance_changes IS 'ODS 原始明细表会员余额变更流水。来源C:/dev/LLTQ/export/test-json-doc/member_balance_changes.json分析member_balance_changes-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.tenant_id IS '【说明】租户/商户 ID本数据中是固定值同一品牌/商户)。 【示例】2790683160709957用于租户/商户 ID本数据中是固定值同一品牌/商户))。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.site_id IS '【说明】非 0记录所属的具体门店 ID与其他 JSON 内的 site_id 一致)。 【示例】2790685415443269用于非 0记录所属的具体门店 ID与其他 JSON 内的 site_id 一致))。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.register_site_id IS '【说明】会员卡的“注册门店 ID”即办卡所在门店。 【示例】2790685415443269用于会员卡的“注册门店 ID”即办卡所在门店。 【JSON字段】register_site_id。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.registerSiteName IS '【说明】卡片的注册门店名称(办卡地点),和 register_site_id 配套。 【示例】朗朗桌球(用于卡片的注册门店名称(办卡地点),和 register_site_id 配套)。 【JSON字段】registerSiteName。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.paySiteName IS '【说明】发生本次余额变更的门店名称(即本次消费/充值所在门店)。 【示例】朗朗桌球(用于发生本次余额变更的门店名称(即本次消费/充值所在门店))。 【JSON字段】paySiteName。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.id IS '【说明】余额变更记录的主键 ID唯一标识这一条“账户余额变化事件”。 【示例】2957881605869253用于余额变更记录的主键 ID唯一标识这一条“账户余额变化事件”。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.tenant_member_id IS '【说明】商户维度的会员 ID租户内会员主键。 【示例】2799212845565701用于商户维度的会员 ID租户内会员主键。 【JSON字段】tenant_member_id。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.tenant_member_card_id IS '【说明】会员卡账户 ID在租户内唯一标识某张卡。 【示例】2799219999295237用于会员卡账户 ID在租户内唯一标识某张卡。 【JSON字段】tenant_member_card_id。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.system_member_id IS '【说明】系统级(全局)会员 ID。 【示例】2799212844549893用于系统级全局会员 ID。 【JSON字段】system_member_id。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.memberName IS '【说明】会员姓名或称呼(非昵称字段)。 【示例】曾丹烨(用于会员姓名或称呼(非昵称字段))。 【JSON字段】memberName。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.memberMobile IS '【说明】会员手机号。 【示例】13922213242用于会员手机号。 【JSON字段】memberMobile。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.card_type_id IS '【说明】卡种类型 ID用于区分不同卡种。 【示例】2793249295533893卡种类型 ID用于区分不同卡种。 【JSON字段】card_type_id。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.memberCardTypeName IS '【说明】卡种名称,与 card_type_id 一一对应,是一个 卡种枚举名称。 【示例】储值卡(用于卡种名称,与 card_type_id 一一对应,是一个 卡种枚举名称)。 【JSON字段】memberCardTypeName。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.account_data IS '【说明】本次变动的金额(元),正数表示增加,负数表示减少。 【示例】-120.0(用于本次变动的金额(元),正数表示增加,负数表示减少)。 【JSON字段】account_data。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.before IS '【说明】本次变动前,该卡账户的余额(元)。 【示例】816.3(用于本次变动前,该卡账户的余额(元))。 【JSON字段】before。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.after IS '【说明】本次变动后,该卡账户的余额(元)。 【示例】696.3(用于本次变动后,该卡账户的余额(元))。 【JSON字段】after。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.refund_amount IS '【说明】可能用于标记“其中有多少金额是以‘退款’形式回流的”,或区分“退回余额”和“原路退回”两种模式。 【示例】0.0(可能用于标记“其中有多少金额是以‘退款’形式回流的”,或区分“退回余额”和“原路退回”两种模式)。 【JSON字段】refund_amount。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.from_type IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】from_type。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.payment_method IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】0来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】payment_method。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.relate_id IS '【说明】例如某次充值记录的 ID、某张订单/结算单 ID、某次活动抵用券核销记录 ID 等。 【示例】2957881518788421用于例如某次充值记录的 ID、某张订单/结算单 ID、某次活动抵用券核销记录 ID 等)。 【JSON字段】relate_id。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.remark IS '【说明】当为空时,说明这条变动没有额外备注说明。 【示例】充值退款(用于当为空时,说明这条变动没有额外备注说明)。 【JSON字段】remark。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.operator_id IS '【说明】执行此次余额变更操作的员工 ID。 【示例】2790687322443013用于执行此次余额变更操作的员工 ID。 【JSON字段】operator_id。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.operator_name IS '【说明】操作员姓名(带职位前缀),是对 operator_id 的可读冗余字段。 【示例】收银员:郑丽珊(用于操作员姓名(带职位前缀),是对 operator_id 的可读冗余字段)。 【JSON字段】operator_name。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.is_delete IS '【说明】逻辑删除标记0=否1=是)。。 【示例】0用于逻辑删除标记0=否1=是))。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.create_time IS '【说明】本条余额变更记录的创建时间,通常接近交易发生时间。 【示例】2025-11-09 22:52:48用于本条余额变更记录的创建时间通常接近交易发生时间。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】member_balance_changes.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/member_balance_changes.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.member_stored_value_cards (
tenant_id BIGINT,
tenant_member_id BIGINT,
system_member_id BIGINT,
register_site_id BIGINT,
site_name TEXT,
id BIGINT PRIMARY KEY,
member_card_grade_code BIGINT,
member_card_grade_code_name TEXT,
member_card_type_name TEXT,
member_name TEXT,
member_mobile TEXT,
card_type_id BIGINT,
card_no TEXT,
card_physics_type TEXT,
balance NUMERIC(18,2),
denomination NUMERIC(18,2),
table_discount NUMERIC(10,4),
goods_discount NUMERIC(10,4),
assistant_discount NUMERIC(10,4),
assistant_reward_discount NUMERIC(10,4),
table_service_discount NUMERIC(10,4),
assistant_service_discount NUMERIC(10,4),
coupon_discount NUMERIC(10,4),
goods_service_discount NUMERIC(10,4),
assistant_discount_sub_switch INT,
table_discount_sub_switch INT,
goods_discount_sub_switch INT,
assistant_reward_discount_sub_switch INT,
table_service_deduct_radio NUMERIC(10,4),
assistant_service_deduct_radio NUMERIC(10,4),
goods_service_deduct_radio NUMERIC(10,4),
assistant_deduct_radio NUMERIC(10,4),
table_deduct_radio NUMERIC(10,4),
goods_deduct_radio NUMERIC(10,4),
coupon_deduct_radio NUMERIC(10,4),
assistant_reward_deduct_radio NUMERIC(10,4),
tableCardDeduct NUMERIC(18,2),
tableServiceCardDeduct NUMERIC(18,2),
goodsCarDeduct NUMERIC(18,2),
goodsServiceCardDeduct NUMERIC(18,2),
assistantCardDeduct NUMERIC(18,2),
assistantServiceCardDeduct NUMERIC(18,2),
assistantRewardCardDeduct NUMERIC(18,2),
cardSettleDeduct NUMERIC(18,2),
couponCardDeduct NUMERIC(18,2),
deliveryFeeDeduct NUMERIC(18,2),
use_scene INT,
able_cross_site INT,
able_site_transfer INT,
is_allow_give INT,
is_allow_order_deduct INT,
is_delete INT,
bind_password TEXT,
goods_discount_range_type INT,
goodsCategoryId BIGINT,
tableAreaId BIGINT,
effect_site_id BIGINT,
start_time TIMESTAMP,
end_time TIMESTAMP,
disable_start_time TIMESTAMP,
disable_end_time TIMESTAMP,
last_consume_time TIMESTAMP,
create_time TIMESTAMP,
status INT,
sort INT,
tenantAvatar TEXT,
tenantName TEXT,
pdAssisnatLevel TEXT,
cxAssisnatLevel TEXT,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.member_stored_value_cards IS 'ODS 原始明细表:会员储值/卡券账户列表。来源C:/dev/LLTQ/export/test-json-doc/member_stored_value_cards.json分析member_stored_value_cards-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tenant_id IS '【说明】租户/品牌 ID与其他 JSON 中 tenant_id 一致。 【示例】2790683160709957用于租户/品牌 ID与其他 JSON 中 tenant_id 一致)。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tenant_member_id IS '【说明】当前商户(品牌/租户)中会员的主键 ID。 【示例】2955204541320325用于当前商户品牌/租户)中会员的主键 ID。 【JSON字段】tenant_member_id。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.system_member_id IS '【说明】系统级会员 ID跨门店统一主键。 【示例】2955204540009605用于系统级会员 ID跨门店统一主键。 【JSON字段】system_member_id。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.register_site_id IS '【说明】卡首次办理的门店 ID。 【示例】2790685415443269用于卡首次办理的门店 ID。 【JSON字段】register_site_id。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.site_name IS '【说明】卡归属门店名称(视图中的展示字段)。 【示例】朗朗桌球(用于卡归属门店名称(视图中的展示字段))。 【JSON字段】site_name。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.id IS '【说明】本表主键 ID用于唯一标识一条记录。 【示例】2955206162843781本表主键 ID用于唯一标识一条记录。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.member_card_grade_code IS '【说明】卡等级/卡类代码,和下面两个名称字段一一对应。 【示例】2790683528022856用于卡等级/卡类代码,和下面两个名称字段一一对应)。 【JSON字段】member_card_grade_code。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.member_card_grade_code_name IS '【说明】卡等级/卡类名称。 【示例】活动抵用券(用于卡等级/卡类名称)。 【JSON字段】member_card_grade_code_name。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.member_card_type_name IS '【说明】卡类型名称,实际与 member_card_grade_code_name 一致。 【示例】活动抵用券(用于卡类型名称,实际与 member_card_grade_code_name 一致)。 【JSON字段】member_card_type_name。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.member_name IS '【说明】持卡会员姓名快照。 【示例】胡先生(用于持卡会员姓名快照)。 【JSON字段】member_name。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.member_mobile IS '【说明】持卡会员手机号快照。 【示例】18620043391用于持卡会员手机号快照。 【JSON字段】member_mobile。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.card_type_id IS '【说明】卡种 ID定义“这是哪一种卡”。 【示例】2793266846533445用于卡种 ID定义“这是哪一种卡”。 【JSON字段】card_type_id。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.card_no IS '【说明】实体卡物理卡号/条码号。 【示例】NULL用于实体卡物理卡号条码号。 【JSON字段】card_no。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.card_physics_type IS '【说明】物理卡类型。 【示例】1用于物理卡类型。 【JSON字段】card_physics_type。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.balance IS '【说明】当前卡内余额(主要针对储值卡、部分券卡)。 【示例】0.0(用于当前卡内余额(主要针对储值卡、部分券卡))。 【JSON字段】balance。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.denomination IS '【说明】采用“几折”的记法10=不打折9=九折8=八折。 【示例】0.0用于采用“几折”的记法10=不打折9=九折8=八折)。 【JSON字段】denomination。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.table_discount IS '【说明】数量/时长字段,用于统计与计量。 【示例】10.0(数量/时长字段,用于统计与计量)。 【JSON字段】table_discount。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_discount IS '【说明】数量/时长字段,用于统计与计量。 【示例】10.0(数量/时长字段,用于统计与计量)。 【JSON字段】goods_discount。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_discount IS '【说明】数量/时长字段,用于统计与计量。 【示例】10.0(数量/时长字段,用于统计与计量)。 【JSON字段】assistant_discount。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_reward_discount IS '【说明】数量/时长字段,用于统计与计量。 【示例】10.0(数量/时长字段,用于统计与计量)。 【JSON字段】assistant_reward_discount。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.table_service_discount IS '【说明】数量/时长字段,用于统计与计量。 【示例】10.0(数量/时长字段,用于统计与计量)。 【JSON字段】table_service_discount。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_service_discount IS '【说明】数量/时长字段,用于统计与计量。 【示例】10.0(数量/时长字段,用于统计与计量)。 【JSON字段】assistant_service_discount。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.coupon_discount IS '【说明】数量/时长字段,用于统计与计量。 【示例】10.0(数量/时长字段,用于统计与计量)。 【JSON字段】coupon_discount。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_service_discount IS '【说明】数量/时长字段,用于统计与计量。 【示例】10.0(数量/时长字段,用于统计与计量)。 【JSON字段】goods_service_discount。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_discount_sub_switch IS '【说明】数量/时长字段,用于统计与计量。 【示例】2数量/时长字段,用于统计与计量)。 【JSON字段】assistant_discount_sub_switch。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.table_discount_sub_switch IS '【说明】数量/时长字段,用于统计与计量。 【示例】2数量/时长字段,用于统计与计量)。 【JSON字段】table_discount_sub_switch。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_discount_sub_switch IS '【说明】数量/时长字段,用于统计与计量。 【示例】2数量/时长字段,用于统计与计量)。 【JSON字段】goods_discount_sub_switch。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_reward_discount_sub_switch IS '【说明】数量/时长字段,用于统计与计量。 【示例】2数量/时长字段,用于统计与计量)。 【JSON字段】assistant_reward_discount_sub_switch。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.table_service_deduct_radio IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】100.0(金额字段,用于计费/结算/分摊等金额计算)。 【JSON字段】table_service_deduct_radio。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_service_deduct_radio IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】100.0(金额字段,用于计费/结算/分摊等金额计算)。 【JSON字段】assistant_service_deduct_radio。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_service_deduct_radio IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】100.0(金额字段,用于计费/结算/分摊等金额计算)。 【JSON字段】goods_service_deduct_radio。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_deduct_radio IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】100.0(金额字段,用于计费/结算/分摊等金额计算)。 【JSON字段】assistant_deduct_radio。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.table_deduct_radio IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】100.0(金额字段,用于计费/结算/分摊等金额计算)。 【JSON字段】table_deduct_radio。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_deduct_radio IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】100.0(金额字段,用于计费/结算/分摊等金额计算)。 【JSON字段】goods_deduct_radio。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.coupon_deduct_radio IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】100.0(金额字段,用于计费/结算/分摊等金额计算)。 【JSON字段】coupon_deduct_radio。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_reward_deduct_radio IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】100.0(金额字段,用于计费/结算/分摊等金额计算)。 【JSON字段】assistant_reward_deduct_radio。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tableCardDeduct IS '【说明】针对台费/商品/助教三类消费的扣卡金额配置(类似“每小时从卡里扣 xx 元”或“每次抵扣 xx 元”的规则)。 【示例】0.0(用于针对台费/商品/助教三类消费的扣卡金额配置(类似“每小时从卡里扣 xx 元”或“每次抵扣 xx 元”的规则))。 【JSON字段】tableCardDeduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tableServiceCardDeduct IS '【说明】如果系统中区分“储值金、服务金、奖励金”等子账户,这三个字段对应“服务金”子账户的扣款配置。 【示例】0.0(用于如果系统中区分“储值金、服务金、奖励金”等子账户,这三个字段对应“服务金”子账户的扣款配置)。 【JSON字段】tableServiceCardDeduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goodsCarDeduct IS '【说明】针对台费/商品/助教三类消费的扣卡金额配置(类似“每小时从卡里扣 xx 元”或“每次抵扣 xx 元”的规则)。 【示例】0.0(用于针对台费/商品/助教三类消费的扣卡金额配置(类似“每小时从卡里扣 xx 元”或“每次抵扣 xx 元”的规则))。 【JSON字段】goodsCarDeduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goodsServiceCardDeduct IS '【说明】如果系统中区分“储值金、服务金、奖励金”等子账户,这三个字段对应“服务金”子账户的扣款配置。 【示例】0.0(用于如果系统中区分“储值金、服务金、奖励金”等子账户,这三个字段对应“服务金”子账户的扣款配置)。 【JSON字段】goodsServiceCardDeduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistantCardDeduct IS '【说明】针对台费/商品/助教三类消费的扣卡金额配置(类似“每小时从卡里扣 xx 元”或“每次抵扣 xx 元”的规则)。 【示例】0.0(用于针对台费/商品/助教三类消费的扣卡金额配置(类似“每小时从卡里扣 xx 元”或“每次抵扣 xx 元”的规则))。 【JSON字段】assistantCardDeduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistantServiceCardDeduct IS '【说明】如果系统中区分“储值金、服务金、奖励金”等子账户,这三个字段对应“服务金”子账户的扣款配置。 【示例】0.0(用于如果系统中区分“储值金、服务金、奖励金”等子账户,这三个字段对应“服务金”子账户的扣款配置)。 【JSON字段】assistantServiceCardDeduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistantRewardCardDeduct IS '【说明】助教奖励金方向扣款的配置。 【示例】0.0(用于助教奖励金方向扣款的配置)。 【JSON字段】assistantRewardCardDeduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.cardSettleDeduct IS '【说明】结算时从卡中扣除的金额上限/规则配置(视图级。 【示例】0.0(用于结算时从卡中扣除的金额上限/规则配置(视图级)。 【JSON字段】cardSettleDeduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.couponCardDeduct IS '【说明】与卡绑定的“券额度扣除配置”。 【示例】0.0(用于与卡绑定的“券额度扣除配置”)。 【JSON字段】couponCardDeduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.deliveryFeeDeduct IS '【说明】配送费可否/多少从卡中抵扣,目前无业务发生。 【示例】0.0(用于配送费可否/多少从卡中抵扣,目前无业务发生)。 【JSON字段】deliveryFeeDeduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.use_scene IS '【说明】卡使用场景说明(比如“仅店内使用”“仅团建”等),本门店尚未使用此字段。 【示例】NULL用于卡使用场景说明比如“仅店内使用”“仅团建”等本门店尚未使用此字段。 【JSON字段】use_scene。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.able_cross_site IS '【说明】是否允许跨店使用。 【示例】1用于是否允许跨店使用。 【JSON字段】able_cross_site。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.able_site_transfer IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。 【示例】NULL布尔/开关字段,用于表示权限、可用性或状态开关)。 【JSON字段】able_site_transfer。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.is_allow_give IS '【说明】是否允许转赠/转让给其他会员。 【示例】0用于是否允许转赠/转让给其他会员)。 【JSON字段】is_allow_give。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.is_allow_order_deduct IS '【说明】是否允许在“订单层面统一扣款”。 【示例】0用于是否允许在“订单层面统一扣款”。 【JSON字段】is_allow_order_deduct。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.is_delete IS '【说明】逻辑删除标志。 【示例】0用于逻辑删除标志。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.bind_password IS '【说明】卡绑定密码,用于消费或查询验证(目前未启用)。 【示例】NULL卡绑定密码用于消费或查询验证目前未启用。 【JSON字段】bind_password。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_discount_range_type IS '【说明】数量/时长字段,用于统计与计量。 【示例】1数量/时长字段,用于统计与计量)。 【JSON字段】goods_discount_range_type。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goodsCategoryId IS '【说明】可用的商品分类 ID 列表。 【示例】[](用于可用的商品分类 ID 列表)。 【JSON字段】goodsCategoryId。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tableAreaId IS '【说明】限定可使用的台区 ID 列表。 【示例】[](用于限定可使用的台区 ID 列表)。 【JSON字段】tableAreaId。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.effect_site_id IS '【说明】卡片限定生效门店 ID。 【示例】0用于卡片限定生效门店 ID。 【JSON字段】effect_site_id。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.start_time IS '【说明】卡片生效开始时间(有效期起始)。 【示例】2025-11-08 01:31:12用于卡片生效开始时间有效期起始。 【JSON字段】start_time。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.end_time IS '【说明】卡片有效期结束时间。 【示例】2225-01-01 00:00:00用于卡片有效期结束时间。 【JSON字段】end_time。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.disable_start_time IS '【说明】停用时间段(比如临时冻结卡的起止时间)。 【示例】0001-01-01 00:00:00用于停用时间段比如临时冻结卡的起止时间。 【JSON字段】disable_start_time。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.disable_end_time IS '【说明】停用时间段(比如临时冻结卡的起止时间)。 【示例】0001-01-01 00:00:00用于停用时间段比如临时冻结卡的起止时间。 【JSON字段】disable_end_time。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.last_consume_time IS '【说明】最近一次消费时间。 【示例】2025-11-09 07:48:23用于最近一次消费时间。 【JSON字段】last_consume_time。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.create_time IS '【说明】卡片创建时间(开卡时间)。 【示例】2025-11-08 01:31:12用于卡片创建时间开卡时间。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.status IS '【说明】状态枚举,用于标识记录当前业务状态。。 【示例】1状态枚举用于标识记录当前业务状态。。 【JSON字段】status。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.sort IS '【说明】在前端展示或某些列表中的排序权重。 【示例】1用于在前端展示或某些列表中的排序权重。 【JSON字段】sort。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tenantAvatar IS '【说明】品牌头像 URL未配置。 【示例】NULL用于品牌头像 URL未配置。 【JSON字段】tenantAvatar。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tenantName IS '【说明】租户/品牌名称(当前导出为空)。 【示例】NULL用于租户/品牌名称(当前导出为空))。 【JSON字段】tenantName。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.pdAssisnatLevel IS '【说明】允许使用的“陪打/助教等级”列表。 【示例】[](用于允许使用的“陪打/助教等级”列表)。 【JSON字段】pdAssisnatLevel。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.cxAssisnatLevel IS '【说明】可能是“促销活动中的助教等级限制”(命名中 cx 多为“促销”缩写)。 【示例】[](用于可能是“促销活动中的助教等级限制”(命名中 cx 多为“促销”缩写))。 【JSON字段】cxAssisnatLevel。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】member_stored_value_cards.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/member_stored_value_cards.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.recharge_settlements (
id BIGINT PRIMARY KEY,
tenantid BIGINT,
siteid BIGINT,
sitename TEXT,
balanceamount NUMERIC(18,2),
cardamount NUMERIC(18,2),
cashamount NUMERIC(18,2),
couponamount NUMERIC(18,2),
createtime TIMESTAMPTZ,
memberid BIGINT,
membername TEXT,
tenantmembercardid BIGINT,
membercardtypename TEXT,
memberphone TEXT,
tableid BIGINT,
consumemoney NUMERIC(18,2),
onlineamount NUMERIC(18,2),
operatorid BIGINT,
operatorname TEXT,
revokeorderid BIGINT,
revokeordername TEXT,
revoketime TIMESTAMPTZ,
payamount NUMERIC(18,2),
pointamount NUMERIC(18,2),
refundamount NUMERIC(18,2),
settlename TEXT,
settlerelateid BIGINT,
settlestatus INT,
settletype INT,
paytime TIMESTAMPTZ,
roundingamount NUMERIC(18,2),
paymentmethod INT,
adjustamount NUMERIC(18,2),
assistantcxmoney NUMERIC(18,2),
assistantpdmoney NUMERIC(18,2),
couponsaleamount NUMERIC(18,2),
memberdiscountamount NUMERIC(18,2),
tablechargemoney NUMERIC(18,2),
goodsmoney NUMERIC(18,2),
realgoodsmoney NUMERIC(18,2),
servicemoney NUMERIC(18,2),
prepaymoney NUMERIC(18,2),
salesmanname TEXT,
orderremark TEXT,
salesmanuserid BIGINT,
canberevoked BOOLEAN,
pointdiscountprice NUMERIC(18,2),
pointdiscountcost NUMERIC(18,2),
activitydiscount NUMERIC(18,2),
serialnumber BIGINT,
assistantmanualdiscount NUMERIC(18,2),
allcoupondiscount NUMERIC(18,2),
goodspromotionmoney NUMERIC(18,2),
assistantpromotionmoney NUMERIC(18,2),
isusecoupon BOOLEAN,
isusediscount BOOLEAN,
isactivity BOOLEAN,
isbindmember BOOLEAN,
isfirst INT,
rechargecardamount NUMERIC(18,2),
giftcardamount NUMERIC(18,2),
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.recharge_settlements IS 'ODS 原始明细表充值结算记录。来源C:/dev/LLTQ/export/test-json-doc/recharge_settlements.json分析recharge_settlements-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.id IS '【说明】门店 ID。 【示例】NULL用于门店 ID。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.tenantid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】tenantid。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.siteid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】siteid。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.sitename IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】sitename。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.balanceamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】balanceamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.cardamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】cardamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.cashamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】cashamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.couponamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】couponamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.createtime IS '【说明】时间字段,用于记录业务时间点/发生时间。 【示例】NULL时间字段用于记录业务时间点/发生时间)。 【JSON字段】createtime。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.memberid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】memberid。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.membername IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】membername。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.tenantmembercardid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】tenantmembercardid。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.membercardtypename IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】membercardtypename。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.memberphone IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】memberphone。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.tableid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】tableid。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.consumemoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】consumemoney。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.onlineamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】onlineamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.operatorid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】operatorid。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.operatorname IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】operatorname。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.revokeorderid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】revokeorderid。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.revokeordername IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】revokeordername。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.revoketime IS '【说明】时间字段,用于记录业务时间点/发生时间。 【示例】NULL时间字段用于记录业务时间点/发生时间)。 【JSON字段】revoketime。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.payamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】payamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.pointamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】pointamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.refundamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】refundamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.settlename IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】settlename。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.settlerelateid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】settlerelateid。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.settlestatus IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】settlestatus。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.settletype IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】settletype。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.paytime IS '【说明】时间字段,用于记录业务时间点/发生时间。 【示例】NULL时间字段用于记录业务时间点/发生时间)。 【JSON字段】paytime。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.roundingamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】roundingamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.paymentmethod IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】paymentmethod。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.adjustamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】adjustamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.assistantcxmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】assistantcxmoney。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.assistantpdmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】assistantpdmoney。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.couponsaleamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】couponsaleamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.memberdiscountamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】memberdiscountamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.tablechargemoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】tablechargemoney。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.goodsmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】goodsmoney。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.realgoodsmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】realgoodsmoney。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.servicemoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】servicemoney。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.prepaymoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】prepaymoney。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.salesmanname IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】salesmanname。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.orderremark IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】orderremark。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.salesmanuserid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】salesmanuserid。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.canberevoked IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】canberevoked。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.pointdiscountprice IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】pointdiscountprice。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.pointdiscountcost IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】pointdiscountcost。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.activitydiscount IS '【说明】数量/时长字段,用于统计与计量。 【示例】NULL数量/时长字段,用于统计与计量)。 【JSON字段】activitydiscount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.serialnumber IS '【说明】数量/时长字段,用于统计与计量。 【示例】NULL数量/时长字段,用于统计与计量)。 【JSON字段】serialnumber。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.assistantmanualdiscount IS '【说明】数量/时长字段,用于统计与计量。 【示例】NULL数量/时长字段,用于统计与计量)。 【JSON字段】assistantmanualdiscount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.allcoupondiscount IS '【说明】数量/时长字段,用于统计与计量。 【示例】NULL数量/时长字段,用于统计与计量)。 【JSON字段】allcoupondiscount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.goodspromotionmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】goodspromotionmoney。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.assistantpromotionmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】assistantpromotionmoney。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.isusecoupon IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】isusecoupon。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.isusediscount IS '【说明】数量/时长字段,用于统计与计量。 【示例】NULL数量/时长字段,用于统计与计量)。 【JSON字段】isusediscount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.isactivity IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】isactivity。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.isbindmember IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】isbindmember。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.isfirst IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】isfirst。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.rechargecardamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】rechargecardamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.giftcardamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】giftcardamount。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】recharge_settlements.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/recharge_settlements.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.settlement_records (
id BIGINT PRIMARY KEY,
tenantid BIGINT,
siteid BIGINT,
sitename TEXT,
balanceamount NUMERIC(18,2),
cardamount NUMERIC(18,2),
cashamount NUMERIC(18,2),
couponamount NUMERIC(18,2),
createtime TIMESTAMPTZ,
memberid BIGINT,
membername TEXT,
tenantmembercardid BIGINT,
membercardtypename TEXT,
memberphone TEXT,
tableid BIGINT,
consumemoney NUMERIC(18,2),
onlineamount NUMERIC(18,2),
operatorid BIGINT,
operatorname TEXT,
revokeorderid BIGINT,
revokeordername TEXT,
revoketime TIMESTAMPTZ,
payamount NUMERIC(18,2),
pointamount NUMERIC(18,2),
refundamount NUMERIC(18,2),
settlename TEXT,
settlerelateid BIGINT,
settlestatus INT,
settletype INT,
paytime TIMESTAMPTZ,
roundingamount NUMERIC(18,2),
paymentmethod INT,
adjustamount NUMERIC(18,2),
assistantcxmoney NUMERIC(18,2),
assistantpdmoney NUMERIC(18,2),
couponsaleamount NUMERIC(18,2),
memberdiscountamount NUMERIC(18,2),
tablechargemoney NUMERIC(18,2),
goodsmoney NUMERIC(18,2),
realgoodsmoney NUMERIC(18,2),
servicemoney NUMERIC(18,2),
prepaymoney NUMERIC(18,2),
salesmanname TEXT,
orderremark TEXT,
salesmanuserid BIGINT,
canberevoked BOOLEAN,
pointdiscountprice NUMERIC(18,2),
pointdiscountcost NUMERIC(18,2),
activitydiscount NUMERIC(18,2),
serialnumber BIGINT,
assistantmanualdiscount NUMERIC(18,2),
allcoupondiscount NUMERIC(18,2),
goodspromotionmoney NUMERIC(18,2),
assistantpromotionmoney NUMERIC(18,2),
isusecoupon BOOLEAN,
isusediscount BOOLEAN,
isactivity BOOLEAN,
isbindmember BOOLEAN,
isfirst INT,
rechargecardamount NUMERIC(18,2),
giftcardamount NUMERIC(18,2),
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.settlement_records IS 'ODS 原始明细表:结账/结算记录。来源C:/dev/LLTQ/export/test-json-doc/settlement_records.json分析settlement_records-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.settlement_records.id IS '【说明】结账记录主键 ID订单结算 ID。 【示例】NULL用于结账记录主键 ID订单结算 ID。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.settlement_records.tenantid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】tenantid。';
COMMENT ON COLUMN billiards_ods.settlement_records.siteid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】siteid。';
COMMENT ON COLUMN billiards_ods.settlement_records.sitename IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】sitename。';
COMMENT ON COLUMN billiards_ods.settlement_records.balanceamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】balanceamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.cardamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】cardamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.cashamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】cashamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.couponamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】couponamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.createtime IS '【说明】时间字段,用于记录业务时间点/发生时间。 【示例】NULL时间字段用于记录业务时间点/发生时间)。 【JSON字段】createtime。';
COMMENT ON COLUMN billiards_ods.settlement_records.memberid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】memberid。';
COMMENT ON COLUMN billiards_ods.settlement_records.membername IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】membername。';
COMMENT ON COLUMN billiards_ods.settlement_records.tenantmembercardid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】tenantmembercardid。';
COMMENT ON COLUMN billiards_ods.settlement_records.membercardtypename IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】membercardtypename。';
COMMENT ON COLUMN billiards_ods.settlement_records.memberphone IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】memberphone。';
COMMENT ON COLUMN billiards_ods.settlement_records.tableid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】tableid。';
COMMENT ON COLUMN billiards_ods.settlement_records.consumemoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】consumemoney。';
COMMENT ON COLUMN billiards_ods.settlement_records.onlineamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】onlineamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.operatorid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】operatorid。';
COMMENT ON COLUMN billiards_ods.settlement_records.operatorname IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】operatorname。';
COMMENT ON COLUMN billiards_ods.settlement_records.revokeorderid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】revokeorderid。';
COMMENT ON COLUMN billiards_ods.settlement_records.revokeordername IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】revokeordername。';
COMMENT ON COLUMN billiards_ods.settlement_records.revoketime IS '【说明】时间字段,用于记录业务时间点/发生时间。 【示例】NULL时间字段用于记录业务时间点/发生时间)。 【JSON字段】revoketime。';
COMMENT ON COLUMN billiards_ods.settlement_records.payamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】payamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.pointamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】pointamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.refundamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】refundamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.settlename IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】settlename。';
COMMENT ON COLUMN billiards_ods.settlement_records.settlerelateid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】settlerelateid。';
COMMENT ON COLUMN billiards_ods.settlement_records.settlestatus IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】settlestatus。';
COMMENT ON COLUMN billiards_ods.settlement_records.settletype IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】settletype。';
COMMENT ON COLUMN billiards_ods.settlement_records.paytime IS '【说明】时间字段,用于记录业务时间点/发生时间。 【示例】NULL时间字段用于记录业务时间点/发生时间)。 【JSON字段】paytime。';
COMMENT ON COLUMN billiards_ods.settlement_records.roundingamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】roundingamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.paymentmethod IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】paymentmethod。';
COMMENT ON COLUMN billiards_ods.settlement_records.adjustamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】adjustamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.assistantcxmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】assistantcxmoney。';
COMMENT ON COLUMN billiards_ods.settlement_records.assistantpdmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】assistantpdmoney。';
COMMENT ON COLUMN billiards_ods.settlement_records.couponsaleamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】couponsaleamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.memberdiscountamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】memberdiscountamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.tablechargemoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】tablechargemoney。';
COMMENT ON COLUMN billiards_ods.settlement_records.goodsmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】goodsmoney。';
COMMENT ON COLUMN billiards_ods.settlement_records.realgoodsmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】realgoodsmoney。';
COMMENT ON COLUMN billiards_ods.settlement_records.servicemoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】servicemoney。';
COMMENT ON COLUMN billiards_ods.settlement_records.prepaymoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】prepaymoney。';
COMMENT ON COLUMN billiards_ods.settlement_records.salesmanname IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】salesmanname。';
COMMENT ON COLUMN billiards_ods.settlement_records.orderremark IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】orderremark。';
COMMENT ON COLUMN billiards_ods.settlement_records.salesmanuserid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】salesmanuserid。';
COMMENT ON COLUMN billiards_ods.settlement_records.canberevoked IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】canberevoked。';
COMMENT ON COLUMN billiards_ods.settlement_records.pointdiscountprice IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】pointdiscountprice。';
COMMENT ON COLUMN billiards_ods.settlement_records.pointdiscountcost IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】pointdiscountcost。';
COMMENT ON COLUMN billiards_ods.settlement_records.activitydiscount IS '【说明】数量/时长字段,用于统计与计量。 【示例】NULL数量/时长字段,用于统计与计量)。 【JSON字段】activitydiscount。';
COMMENT ON COLUMN billiards_ods.settlement_records.serialnumber IS '【说明】数量/时长字段,用于统计与计量。 【示例】NULL数量/时长字段,用于统计与计量)。 【JSON字段】serialnumber。';
COMMENT ON COLUMN billiards_ods.settlement_records.assistantmanualdiscount IS '【说明】数量/时长字段,用于统计与计量。 【示例】NULL数量/时长字段,用于统计与计量)。 【JSON字段】assistantmanualdiscount。';
COMMENT ON COLUMN billiards_ods.settlement_records.allcoupondiscount IS '【说明】数量/时长字段,用于统计与计量。 【示例】NULL数量/时长字段,用于统计与计量)。 【JSON字段】allcoupondiscount。';
COMMENT ON COLUMN billiards_ods.settlement_records.goodspromotionmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】goodspromotionmoney。';
COMMENT ON COLUMN billiards_ods.settlement_records.assistantpromotionmoney IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】assistantpromotionmoney。';
COMMENT ON COLUMN billiards_ods.settlement_records.isusecoupon IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】isusecoupon。';
COMMENT ON COLUMN billiards_ods.settlement_records.isusediscount IS '【说明】数量/时长字段,用于统计与计量。 【示例】NULL数量/时长字段,用于统计与计量)。 【JSON字段】isusediscount。';
COMMENT ON COLUMN billiards_ods.settlement_records.isactivity IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】isactivity。';
COMMENT ON COLUMN billiards_ods.settlement_records.isbindmember IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】isbindmember。';
COMMENT ON COLUMN billiards_ods.settlement_records.isfirst IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】isfirst。';
COMMENT ON COLUMN billiards_ods.settlement_records.rechargecardamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】rechargecardamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.giftcardamount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。 【示例】NULL金额字段用于计费/结算/分摊等金额计算)。 【JSON字段】giftcardamount。';
COMMENT ON COLUMN billiards_ods.settlement_records.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】settlement_records.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.settlement_records.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/settlement_records.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.settlement_records.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.settlement_records.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.assistant_cancellation_records (
id BIGINT PRIMARY KEY,
siteId BIGINT,
siteProfile JSONB,
assistantName TEXT,
assistantAbolishAmount NUMERIC(18,2),
assistantOn INT,
pdChargeMinutes INT,
tableAreaId BIGINT,
tableArea TEXT,
tableId BIGINT,
tableName TEXT,
trashReason TEXT,
createTime TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.assistant_cancellation_records IS 'ODS 原始明细表:助教作废/取消记录。来源C:/dev/LLTQ/export/test-json-doc/assistant_cancellation_records.json分析assistant_cancellation_records-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.id IS '【说明】本表主键 ID用于唯一标识一条记录。 【示例】2957675849518789本表主键 ID用于唯一标识一条记录。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.siteId IS '【说明】门店 ID即该废除记录所在门店。 【示例】2790685415443269用于门店 ID即该废除记录所在门店。 【JSON字段】siteId。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.siteProfile IS '【说明】门店信息快照。 【示例】{"id": 2790685415443269, "org_id": 2790684179467077, "shop_name": "朗朗桌球", "avatar": "https://oss.ficoo.vip/admin/hXcE4E…用于门店信息快照。 【JSON字段】siteProfile。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.assistantName IS '【说明】助教姓名/对外展示名称。 【示例】泡芙(用于助教姓名/对外展示名称)。 【JSON字段】assistantName。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.assistantAbolishAmount IS '【说明】与“助教废除”关联的金额字段。 【示例】5.83(用于与“助教废除”关联的金额字段)。 【JSON字段】assistantAbolishAmount。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.assistantOn IS '【说明】助教编号(工号/序号)。 【示例】27用于助教编号工号/序号))。 【JSON字段】assistantOn。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.pdChargeMinutes IS '【说明】“已发生的计费时长(分钟)”,即这次助教服务在被废除前已经累计了多少分钟。 【示例】214用于“已发生的计费时长分钟即这次助教服务在被废除前已经累计了多少分钟。 【JSON字段】pdChargeMinutes。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.tableAreaId IS '【说明】台桌所在区域 ID。 【示例】2791963816579205用于台桌所在区域 ID。 【JSON字段】tableAreaId。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.tableArea IS '【说明】台桌所属区域名称。 【示例】C区用于台桌所属区域名称。 【JSON字段】tableArea。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.tableId IS '【说明】球台/桌子的 ID。 【示例】2793016660660357用于球台/桌子的 ID。 【JSON字段】tableId。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.tableName IS '【说明】台桌名称/编号,供人阅读。 【示例】C1用于台桌名称/编号,供人阅读)。 【JSON字段】tableName。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.trashReason IS '【说明】用于记录“废除原因”的文本描述,例如“顾客临时有事取消”“录入错误”“更换助教”等。 【示例】NULL用于记录“废除原因”的文本描述例如“顾客临时有事取消”“录入错误”“更换助教”等。 【JSON字段】trashReason。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.createTime IS '【说明】这条“助教废除记录”被创建的时间,即系统正式记录“废除”操作的时刻。 【示例】2025-11-09 19:23:29用于这条“助教废除记录”被创建的时间即系统正式记录“废除”操作的时刻。 【JSON字段】createTime。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】assistant_cancellation_records.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/assistant_cancellation_records.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.assistant_accounts_master (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
assistant_no TEXT,
nickname TEXT,
real_name TEXT,
mobile TEXT,
team_id BIGINT,
team_name TEXT,
user_id BIGINT,
level TEXT,
assistant_status INT,
work_status INT,
leave_status INT,
entry_time TIMESTAMP,
resign_time TIMESTAMP,
start_time TIMESTAMP,
end_time TIMESTAMP,
create_time TIMESTAMP,
update_time TIMESTAMP,
order_trade_no TEXT,
staff_id BIGINT,
staff_profile_id BIGINT,
system_role_id BIGINT,
avatar TEXT,
birth_date TIMESTAMP,
gender INT,
height NUMERIC(18,2),
weight NUMERIC(18,2),
job_num TEXT,
show_status INT,
show_sort INT,
sum_grade NUMERIC(18,2),
assistant_grade NUMERIC(18,2),
get_grade_times INT,
introduce TEXT,
video_introduction_url TEXT,
group_id BIGINT,
group_name TEXT,
shop_name TEXT,
charge_way INT,
entry_type INT,
allow_cx INT,
is_guaranteed INT,
salary_grant_enabled INT,
light_status INT,
online_status INT,
is_delete INT,
cx_unit_price NUMERIC(18,2),
pd_unit_price NUMERIC(18,2),
last_table_id BIGINT,
last_table_name TEXT,
person_org_id BIGINT,
serial_number BIGINT,
is_team_leader INT,
criticism_status INT,
last_update_name TEXT,
ding_talk_synced INT,
site_light_cfg_id BIGINT,
light_equipment_id TEXT,
entry_sign_status INT,
resign_sign_status INT,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.assistant_accounts_master IS 'ODS 原始明细表助教档案主数据。来源C:/dev/LLTQ/export/test-json-doc/assistant_accounts_master.json分析assistant_accounts_master-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.id IS '【说明】助教账号主键 ID在“助教流水.json”中对应 site_assistant_id。 【示例】2947562271297029用于助教账号主键 ID在“助教流水.json”中对应 site_assistant_id。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.tenant_id IS '【说明】品牌/租户 ID对应“非球科技”系统中该商户的唯一标识。 【示例】2790683160709957用于品牌/租户 ID对应“非球科技”系统中该商户的唯一标识。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.site_id IS '【说明】门店 ID对应本次数据的这家球房朗朗桌球。 【示例】2790685415443269用于门店 ID对应本次数据的这家球房朗朗桌球。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.assistant_no IS '【说明】助教工号 / 编号,便于业务侧识别。 【示例】31用于助教工号 / 编号,便于业务侧识别)。 【JSON字段】assistant_no。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.nickname IS '【说明】助教在前台展示的昵称,如“佳怡”“周周”“球球”等。 【示例】小然(用于助教在前台展示的昵称,如“佳怡”“周周”“球球”等)。 【JSON字段】nickname。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.real_name IS '【说明】助教真实姓名,如“何海婷”“梁婷婷”等。 【示例】张静然(用于助教真实姓名,如“何海婷”“梁婷婷”等)。 【JSON字段】real_name。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.mobile IS '【说明】助教手机号,用于登录绑定、通知、钉钉同步等。 【示例】15119679931助教手机号用于登录绑定、通知、钉钉同步等。 【JSON字段】mobile。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.team_id IS '【说明】助教所属团队 ID。 【示例】2792011585884037用于助教所属团队 ID。 【JSON字段】team_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.team_name IS '【说明】团队名称,展示用,和 team_id 一一对应。 【示例】1组用于团队名称展示用和 team_id 一一对应)。 【JSON字段】team_name。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.user_id IS '【说明】系统级“用户账号 ID”通常对应登录账号。 【示例】2947562270838277用于系统级“用户账号 ID”通常对应登录账号。 【JSON字段】user_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.level IS '【说明】10 × 24。 【示例】20用于10 × 24。 【JSON字段】level。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.assistant_status IS '【说明】1 × 48。 【示例】1用于1 × 48。 【JSON字段】assistant_status。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.work_status IS '【说明】当 leave_status = 0 时work_status = 1。 【示例】2用于当 leave_status = 0 时work_status = 1。 【JSON字段】work_status。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.leave_status IS '【说明】0 × 21。 【示例】1用于0 × 21。 【JSON字段】leave_status。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.entry_time IS '【说明】入职时间。 【示例】2025-11-02 08:00:00用于入职时间。 【JSON字段】entry_time。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.resign_time IS '【说明】离职日期。 【示例】2025-11-03 08:00:00用于离职日期。 【JSON字段】resign_time。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.start_time IS '【说明】当前配置生效的开始日期。 【示例】2025-11-01 08:00:00用于当前配置生效的开始日期。 【JSON字段】start_time。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.end_time IS '【说明】当前配置生效的结束日期(例如一个周期性的排班/合同周期)。 【示例】2025-12-01 08:00:00用于当前配置生效的结束日期例如一个周期性的排班/合同周期))。 【JSON字段】end_time。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.create_time IS '【说明】账号创建时间。 【示例】2025-11-02 15:55:26用于账号创建时间。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.update_time IS '【说明】账号最近一次被修改的时间(例如修改等级、昵称等)。 【示例】2025-11-03 18:32:07用于账号最近一次被修改的时间例如修改等级、昵称等。 【JSON字段】update_time。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.order_trade_no IS '【说明】该助教最近一次关联的订单号,用于快速跳转或回溯最近服务行为。 【示例】0该助教最近一次关联的订单号用于快速跳转或回溯最近服务行为。 【JSON字段】order_trade_no。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.staff_id IS '【说明】预留给“人事系统员工 ID”的字段目前未接入或未启用。 【示例】0用于预留给“人事系统员工 ID”的字段目前未接入或未启用。 【JSON字段】staff_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.staff_profile_id IS '【说明】人事档案 ID与第三方 HR 系统或内部员工档案集成使用,当前未启用。 【示例】0用于人事档案 ID与第三方 HR 系统或内部员工档案集成使用,当前未启用)。 【JSON字段】staff_profile_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.system_role_id IS '【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】10标识类 ID 字段,用于关联/定位相关实体)。 【JSON字段】system_role_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.avatar IS '【说明】助教头像地址。 【示例】https://oss.ficoo.vip/maUiImages/images/defaultAvatar.png用于助教头像地址。 【JSON字段】avatar。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.birth_date IS '【说明】助教出生日期。 【示例】0001-01-01 00:00:00用于助教出生日期。 【JSON字段】birth_date。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.gender IS '【说明】0 × 40。 【示例】0用于0 × 40。 【JSON字段】gender。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.height IS '【说明】身高(单位:厘米)。 【示例】0.0(用于身高(单位:厘米))。 【JSON字段】height。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.weight IS '【说明】体重(单位:公斤)。 【示例】0.0(用于体重(单位:公斤))。 【JSON字段】weight。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.job_num IS '【说明】备用工号字段,目前未在该门店启用。 【示例】NULL用于备用工号字段目前未在该门店启用。 【JSON字段】job_num。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.show_status IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】show_status。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.show_sort IS '【说明】前台展示排序权重,值越小/越大对应不同的排序策略(当前看起来与 assistant_no 有一定对应关系)。 【示例】31用于前台展示排序权重值越小/越大对应不同的排序策略(当前看起来与 assistant_no 有一定对应关系))。 【JSON字段】show_sort。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.sum_grade IS '【说明】评分总和用于计算平均分assistant_grade = sum_grade / get_grade_times当前为 0。 【示例】0.0评分总和用于计算平均分assistant_grade = sum_grade / get_grade_times当前为 0。 【JSON字段】sum_grade。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.assistant_grade IS '【说明】助教综合评分(员工维度的平均分 snapshot当前尚未启用评分。 【示例】0.0(用于助教综合评分(员工维度的平均分 snapshot当前尚未启用评分。 【JSON字段】assistant_grade。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.get_grade_times IS '【说明】累计被评分次数。 【示例】0用于累计被评分次数。 【JSON字段】get_grade_times。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.introduce IS '【说明】个人简介文案,预留给助教自我介绍使用。 【示例】NULL用于个人简介文案预留给助教自我介绍使用。 【JSON字段】introduce。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.video_introduction_url IS '【说明】助教个人视频介绍地址。 【示例】https://oss.ficoo.vip/cbb/userVideo/1753096246308/175309624630830.mp4用于助教个人视频介绍地址。 【JSON字段】video_introduction_url。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.group_id IS '【说明】上层“分组 ID”预留字段例如集团/事业部),本门店未使用。 【示例】0用于上层“分组 ID”预留字段例如集团/事业部),本门店未使用)。 【JSON字段】group_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.group_name IS '【说明】group_id 对应的名称,目前为空。 【示例】NULL用于group_id 对应的名称,目前为空)。 【JSON字段】group_name。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.shop_name IS '【说明】门店名称,冗余字段,用于展示。 【示例】朗朗桌球(门店名称,冗余字段,用于展示)。 【JSON字段】shop_name。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.charge_way IS '【说明】2 代表当前门店为“计时收费”其他值1、3 等)可能对应按局、按课时等,当前未出现。 【示例】2用于2 代表当前门店为“计时收费”其他值1、3 等)可能对应按局、按课时等,当前未出现)。 【JSON字段】charge_way。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.entry_type IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】entry_type。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.allow_cx IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】allow_cx。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.is_guaranteed IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。。 【示例】1布尔/开关字段,用于表示权限、可用性或状态开关。)。 【JSON字段】is_guaranteed。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.salary_grant_enabled IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】2来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】salary_grant_enabled。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.light_status IS '【说明】灯光控制状态,如 1=启用控制、2=不启用 或相反。 【示例】2用于灯光控制状态如 1=启用控制、2=不启用 或相反)。 【JSON字段】light_status。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.online_status IS '【说明】在线状态。 【示例】1用于在线状态。 【JSON字段】online_status。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.is_delete IS '【说明】逻辑删除标记0=否1=是)。。 【示例】0用于逻辑删除标记0=否1=是))。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.cx_unit_price IS '【说明】促销时段的单价,本门店未在账号表层面设置。 【示例】0.0(用于促销时段的单价,本门店未在账号表层面设置)。 【JSON字段】cx_unit_price。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.pd_unit_price IS '【说明】某种标准单价(例如“普通时段单价”),这里未在账号上配置(实际单价在助教商品或套餐配置中)。 【示例】0.0(用于某种标准单价(例如“普通时段单价”),这里未在账号上配置(实际单价在助教商品或套餐配置中))。 【JSON字段】pd_unit_price。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.last_table_id IS '【说明】该助教最近一次服务的球台 ID。 【示例】0用于该助教最近一次服务的球台 ID。 【JSON字段】last_table_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.last_table_name IS '【说明】最近服务球台名称(展示用)。 【示例】TV用于最近服务球台名称展示用。 【JSON字段】last_table_name。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.person_org_id IS '【说明】人事组织 ID通常表示“某某门店-助教部-某小组”等层级组织。 【示例】2947562271215109用于人事组织 ID通常表示“某某门店-助教部-某小组”等层级组织)。 【JSON字段】person_org_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.serial_number IS '【说明】系统内部生成的序列号或排序标识,用于全局排序或迁移。 【示例】0系统内部生成的序列号或排序标识用于全局排序或迁移。 【JSON字段】serial_number。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.is_team_leader IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。。 【示例】0布尔/开关字段,用于表示权限、可用性或状态开关。)。 【JSON字段】is_team_leader。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.criticism_status IS '【说明】1 × 49。 【示例】1用于1 × 49。 【JSON字段】criticism_status。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.last_update_name IS '【说明】最近修改该账号配置的管理员名称。 【示例】管理员:郑丽珊(用于最近修改该账号配置的管理员名称)。 【JSON字段】last_update_name。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.ding_talk_synced IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】ding_talk_synced。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.site_light_cfg_id IS '【说明】门店灯控配置 ID本门店未在助教账号维度启用。 【示例】0用于门店灯控配置 ID本门店未在助教账号维度启用。 【JSON字段】site_light_cfg_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.light_equipment_id IS '【说明】灯控设备 ID如果开启“助教开台自动控制灯”会通过该字段关联到灯控硬件。 【示例】NULL用于灯控设备 ID如果开启“助教开台自动控制灯”会通过该字段关联到灯控硬件。 【JSON字段】light_equipment_id。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.entry_sign_status IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】0来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】entry_sign_status。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.resign_sign_status IS '【说明】离职协议签署状态,类似上面。 【示例】0用于离职协议签署状态类似上面。 【JSON字段】resign_sign_status。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】assistant_accounts_master.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/assistant_accounts_master.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.assistant_service_records (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteProfile JSONB,
site_table_id BIGINT,
order_settle_id BIGINT,
order_trade_no TEXT,
order_pay_id BIGINT,
order_assistant_id BIGINT,
order_assistant_type INT,
assistantName TEXT,
assistantNo TEXT,
assistant_level TEXT,
levelname TEXT,
site_assistant_id BIGINT,
skill_id BIGINT,
skillname TEXT,
system_member_id BIGINT,
tablename TEXT,
tenant_member_id BIGINT,
user_id BIGINT,
assistant_team_id BIGINT,
nickname TEXT,
ledger_name TEXT,
ledger_group_name TEXT,
ledger_amount NUMERIC(18,2),
ledger_count NUMERIC(18,4),
ledger_unit_price NUMERIC(18,4),
ledger_status INT,
ledger_start_time TIMESTAMP,
ledger_end_time TIMESTAMP,
manual_discount_amount NUMERIC(18,2),
member_discount_amount NUMERIC(18,2),
coupon_deduct_money NUMERIC(18,2),
service_money NUMERIC(18,2),
projected_income NUMERIC(18,2),
real_use_seconds INT,
income_seconds INT,
start_use_time TIMESTAMP,
last_use_time TIMESTAMP,
create_time TIMESTAMP,
is_single_order INT,
is_delete INT,
is_trash INT,
trash_reason TEXT,
trash_applicant_id BIGINT,
trash_applicant_name TEXT,
operator_id BIGINT,
operator_name TEXT,
salesman_name TEXT,
salesman_org_id BIGINT,
salesman_user_id BIGINT,
person_org_id BIGINT,
add_clock INT,
returns_clock INT,
composite_grade NUMERIC(10,2),
composite_grade_time TIMESTAMP,
skill_grade NUMERIC(10,2),
service_grade NUMERIC(10,2),
sum_grade NUMERIC(10,2),
grade_status INT,
get_grade_times INT,
is_not_responding INT,
is_confirm INT,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.assistant_service_records IS 'ODS 原始明细表助教服务流水。来源C:/dev/LLTQ/export/test-json-doc/assistant_service_records.json分析assistant_service_records-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.id IS '【说明】本条助教流水记录的主键 ID流水唯一标识。 【示例】2957913441292165用于本条助教流水记录的主键 ID流水唯一标识。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.tenant_id IS '【说明】租户/品牌 ID。 【示例】2790683160709957用于租户/品牌 ID。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.site_id IS '【说明】门店 ID本数据中指“朗朗桌球”这一家门店。 【示例】2790685415443269用于门店 ID本数据中指“朗朗桌球”这一家门店。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.siteProfile IS '【说明】门店信息快照,包括 id、shop_name、address 等,和其他 JSON 里的 siteProfile 一致。 【示例】{"id": 2790685415443269, "org_id": 2790684179467077, "shop_name": "朗朗桌球", "avatar": "https://oss.ficoo.vip/admin/hXcE4E…用于门店信息快照包括 id、shop_name、address 等,和其他 JSON 里的 siteProfile 一致)。 【JSON字段】siteProfile。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.site_table_id IS '【说明】球台 ID。 【示例】2793020259897413用于球台 ID。 【JSON字段】site_table_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.order_settle_id IS '【说明】订单结算 ID相当于“结账单号”的内部主键。 【示例】2957913171693253用于订单结算 ID相当于“结账单号”的内部主键。 【JSON字段】order_settle_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.order_trade_no IS '【说明】订单交易号,整个订单层面的编号。 【示例】2957784612605829用于订单交易号整个订单层面的编号。 【JSON字段】order_trade_no。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.order_pay_id IS '【说明】关联到“支付记录”的主键 ID。 【示例】0用于关联到“支付记录”的主键 ID。 【JSON字段】order_pay_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.order_assistant_id IS '【说明】订单中“助教项目明细”的内部 ID。 【示例】2957788717240005用于订单中“助教项目明细”的内部 ID。 【JSON字段】order_assistant_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.order_assistant_type IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】order_assistant_type。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.assistantName IS '【说明】助教姓名,如“何海婷”“胡敏”等。 【示例】何海婷(用于助教姓名,如“何海婷”“胡敏”等)。 【JSON字段】assistantName。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.assistantNo IS '【说明】助教编号,例如 "27"。 【示例】27用于助教编号例如 "27")。 【JSON字段】assistantNo。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.assistant_level IS '【说明】助教等级名称,与 assistant_level 一一对应(初级/中级/高级/助教管理)。 【示例】10用于助教等级名称与 assistant_level 一一对应(初级/中级/高级/助教管理))。 【JSON字段】assistant_level。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.levelname IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】levelname。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.site_assistant_id IS '【说明】门店维度的助教 ID。 【示例】2946266869435205用于门店维度的助教 ID。 【JSON字段】site_assistant_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.skill_id IS '【说明】助教服务“课程/技能”ID。 【示例】2790683529513797用于助教服务“课程/技能”ID。 【JSON字段】skill_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.skillname IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】skillname。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.system_member_id IS '【说明】系统级会员 ID全集团统一 ID。 【示例】0用于系统级会员 ID全集团统一 ID。 【JSON字段】system_member_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.tablename IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】tablename。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.tenant_member_id IS '【说明】商户维度会员 ID门店/品牌内的会员主键)。 【示例】0用于商户维度会员 ID门店/品牌内的会员主键))。 【JSON字段】tenant_member_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.user_id IS '【说明】助教对应的“用户账号 ID”系统级用户。 【示例】2946266868976453用于助教对应的“用户账号 ID”系统级用户。 【JSON字段】user_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.assistant_team_id IS '【说明】助教所属团队 ID。 【示例】2792011585884037用于助教所属团队 ID。 【JSON字段】assistant_team_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.nickname IS '【说明】助教对外昵称,如“佳怡”“周周”“球球”等。 【示例】泡芙(用于助教对外昵称,如“佳怡”“周周”“球球”等)。 【JSON字段】nickname。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_name IS '【说明】名称字段,用于展示与辅助识别。 【示例】27-泡芙(名称字段,用于展示与辅助识别)。 【JSON字段】ledger_name。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_group_name IS '【说明】助教项目所属的“计费分组/套餐分组名称”,例如某种助教套餐或业务组名称。 【示例】NULL用于助教项目所属的“计费分组/套餐分组名称”,例如某种助教套餐或业务组名称)。 【JSON字段】ledger_group_name。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_amount IS '【说明】按标准单价计算出来的应收金额(近似 = ledger_unit_price × income_seconds / 3600。 【示例】206.67(用于按标准单价计算出来的应收金额(近似 = ledger_unit_price × income_seconds / 3600。 【JSON字段】ledger_amount。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_count IS '【说明】台账记录的计时总秒数。 【示例】7592用于台账记录的计时总秒数。 【JSON字段】ledger_count。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_unit_price IS '【说明】助教服务 标准单价(通常是标价:每小时、每节课的单价)。 【示例】98.0(用于助教服务 标准单价(通常是标价:每小时、每节课的单价))。 【JSON字段】ledger_unit_price。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_status IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】ledger_status。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_start_time IS '【说明】台账层面记录的开始时间。 【示例】2025-11-09 21:18:18用于台账层面记录的开始时间。 【JSON字段】ledger_start_time。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_end_time IS '【说明】台账层面的结束时间。 【示例】2025-11-09 23:24:50用于台账层面的结束时间。 【JSON字段】ledger_end_time。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.manual_discount_amount IS '【说明】收银员手动给予的减免金额(人工改价)。 【示例】0.0(用于收银员手动给予的减免金额(人工改价))。 【JSON字段】manual_discount_amount。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.member_discount_amount IS '【说明】由会员卡折扣产生的优惠金额。 【示例】0.0(用于由会员卡折扣产生的优惠金额)。 【JSON字段】member_discount_amount。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.coupon_deduct_money IS '【说明】由“优惠券/代金券/团购券”等 直接抵扣到这条助教服务上的金额。 【示例】0.0(用于由“优惠券/代金券/团购券”等 直接抵扣到这条助教服务上的金额)。 【JSON字段】coupon_deduct_money。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.service_money IS '【说明】用于记录与助教结算的金额(平台预留的“成本/分成”字段)。 【示例】0.0(用于记录与助教结算的金额(平台预留的“成本/分成”字段))。 【JSON字段】service_money。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.projected_income IS '【说明】实际结算计入门店的金额(已经考虑折扣、卡权益、券等后的结果)。 【示例】168.0(用于实际结算计入门店的金额(已经考虑折扣、卡权益、券等后的结果))。 【JSON字段】projected_income。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.real_use_seconds IS '【说明】实际使用时长(秒)。 【示例】7592用于实际使用时长。 【JSON字段】real_use_seconds。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.income_seconds IS '【说明】计费秒数 / 应计收入对应的时间。 【示例】7560用于计费秒数 / 应计收入对应的时间)。 【JSON字段】income_seconds。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.start_use_time IS '【说明】助教实际开始服务时间。 【示例】2025-11-09 21:18:18用于助教实际开始服务时间。 【JSON字段】start_use_time。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.last_use_time IS '【说明】最后一次使用(实际服务)时间。 【示例】2025-11-09 23:24:50用于最后一次使用实际服务时间。 【JSON字段】last_use_time。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.create_time IS '【说明】这条助教流水记录创建时间(一般接近结算/下单时间)。 【示例】2025-11-09 23:25:11用于这条助教流水记录创建时间一般接近结算/下单时间))。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.is_single_order IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。。 【示例】1布尔/开关字段,用于表示权限、可用性或状态开关。)。 【JSON字段】is_single_order。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.is_delete IS '【说明】逻辑删除标志。 【示例】0用于逻辑删除标志。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.is_trash IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。。 【示例】0布尔/开关字段,用于表示权限、可用性或状态开关。)。 【JSON字段】is_trash。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.trash_reason IS '【说明】废除原因(文本说明),例如“顾客取消”“录入错误”等。 【示例】NULL用于废除原因文本说明例如“顾客取消”“录入错误”等。 【JSON字段】trash_reason。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.trash_applicant_id IS '【说明】提出废除申请的员工 ID通常是操作员/管理员)。 【示例】0用于提出废除申请的员工 ID通常是操作员/管理员))。 【JSON字段】trash_applicant_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.trash_applicant_name IS '【说明】废除申请人姓名。 【示例】NULL用于废除申请人姓名。 【JSON字段】trash_applicant_name。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.operator_id IS '【说明】操作员 ID录入/结算这条助教服务的员工)。 【示例】2790687322443013用于操作员 ID录入/结算这条助教服务的员工))。 【JSON字段】operator_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.operator_name IS '【说明】操作员姓名,与 operator_id 一起使用,便于直接阅读。 【示例】收银员:郑丽珊(用于操作员姓名,与 operator_id 一起使用,便于直接阅读)。 【JSON字段】operator_name。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.salesman_name IS '【说明】关联的“营业员/销售员姓名”,用于提成归属。 【示例】NULL关联的“营业员/销售员姓名”,用于提成归属)。 【JSON字段】salesman_name。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.salesman_org_id IS '【说明】营业员所属组织/部门 ID。 【示例】0用于营业员所属组织/部门 ID。 【JSON字段】salesman_org_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.salesman_user_id IS '【说明】营业员用户 ID。 【示例】0用于营业员用户 ID。 【JSON字段】salesman_user_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.person_org_id IS '【说明】助教所属“人事组织/部门 ID”。 【示例】2946266869336901用于助教所属“人事组织/部门 ID”。 【JSON字段】person_org_id。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.add_clock IS '【说明】加钟秒数,即在原有预约/服务基础上临时追加的时长。 【示例】0用于加钟秒数即在原有预约/服务基础上临时追加的时长)。 【JSON字段】add_clock。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.returns_clock IS '【说明】退钟秒数(取消加钟或提前结束退回的时间)。 【示例】0用于退钟秒数取消加钟或提前结束退回的时间。 【JSON字段】returns_clock。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.composite_grade IS '【说明】综合评分(例如技能+服务加权后的平均分),当前数据没有实际评分。 【示例】0.0(用于综合评分(例如技能+服务加权后的平均分),当前数据没有实际评分)。 【JSON字段】composite_grade。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.composite_grade_time IS '【说明】助教服务所在的球台名称(如 "A17"、"S1")。 【示例】0001-01-01 00:00:00用于助教服务所在的球台名称如 "A17"、"S1"))。 【JSON字段】composite_grade_time。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.skill_grade IS '【说明】顾客对“技能表现”的评分(整数或打分等级)。 【示例】0用于顾客对“技能表现”的评分整数或打分等级。 【JSON字段】skill_grade。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.service_grade IS '【说明】顾客对“服务态度”的评分。 【示例】0用于顾客对“服务态度”的评分。 【JSON字段】service_grade。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.sum_grade IS '【说明】累计评分总和(可能用于计算平均分),当前为 0。 【示例】0.0(累计评分总和(可能用于计算平均分),当前为 0。 【JSON字段】sum_grade。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.grade_status IS '【说明】1 = 未评价/正常。 【示例】1用于1 = 未评价/正常)。 【JSON字段】grade_status。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.get_grade_times IS '【说明】该条记录对应的评价次数(或该助教被评价次数快照)。 【示例】0用于该条记录对应的评价次数或该助教被评价次数快照。 【JSON字段】get_grade_times。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.is_not_responding IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。。 【示例】0布尔/开关字段,用于表示权限、可用性或状态开关。)。 【JSON字段】is_not_responding。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.is_confirm IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。。 【示例】2布尔/开关字段,用于表示权限、可用性或状态开关。)。 【JSON字段】is_confirm。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】assistant_service_records.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/assistant_service_records.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
CREATE TABLE IF NOT EXISTS billiards_ods.site_tables_master (
id BIGINT PRIMARY KEY,
site_id BIGINT,
siteName TEXT,
"appletQrCodeUrl" TEXT,
areaName TEXT,
audit_status INT,
charge_free INT,
create_time TIMESTAMP,
delay_lights_time INT,
is_online_reservation INT,
is_rest_area INT,
light_status INT,
only_allow_groupon INT,
order_delay_time INT,
self_table INT,
show_status INT,
site_table_area_id BIGINT,
tableStatusName TEXT,
table_cloth_use_Cycle INT,
table_cloth_use_time TIMESTAMP,
table_name TEXT,
table_price NUMERIC(18,2),
table_status INT,
temporary_light_second INT,
virtual_table INT,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.site_tables_master IS 'ODS 原始明细表门店桌台主数据。来源C:/dev/LLTQ/export/test-json-doc/site_tables_master.json分析site_tables_master-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.site_tables_master.id IS '【说明】台桌主键 ID。 【示例】2791964216463493用于台桌主键 ID。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.site_tables_master.site_id IS '【说明】门店 ID。 【示例】2790685415443269用于门店 ID。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.site_tables_master.siteName IS '【说明】门店名称快照,冗余字段,配合 site_id 使用。 【示例】朗朗桌球(用于门店名称快照,冗余字段,配合 site_id 使用)。 【JSON字段】siteName。';
COMMENT ON COLUMN billiards_ods.site_tables_master.areaName IS '【说明】区域名称,用于前台展示和区域维度管理。 【示例】A区区域名称用于前台展示和区域维度管理。 【JSON字段】areaName。';
COMMENT ON COLUMN billiards_ods.site_tables_master.audit_status IS '【说明】当前值:全部为 2。 【示例】2用于当前值全部为 2。 【JSON字段】audit_status。';
COMMENT ON COLUMN billiards_ods.site_tables_master.charge_free IS '【说明】当前值:全部为 0。 【示例】0用于当前值全部为 0。 【JSON字段】charge_free。';
COMMENT ON COLUMN billiards_ods.site_tables_master.create_time IS '【说明】台桌配置的创建时间或最近一次创建/复制时间。 【示例】2025-07-15 17:52:54用于台桌配置的创建时间或最近一次创建/复制时间)。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.site_tables_master.delay_lights_time IS '【说明】台灯熄灭延迟时间(单位多半是秒或分钟),用于结账后延时关灯。 【示例】0台灯熄灭延迟时间单位多半是秒或分钟用于结账后延时关灯。 【JSON字段】delay_lights_time。';
COMMENT ON COLUMN billiards_ods.site_tables_master.is_online_reservation IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。。 【示例】2布尔/开关字段,用于表示权限、可用性或状态开关。)。 【JSON字段】is_online_reservation。';
COMMENT ON COLUMN billiards_ods.site_tables_master.is_rest_area IS '【说明】当前值:全部为 0。 【示例】0用于当前值全部为 0。 【JSON字段】is_rest_area。';
COMMENT ON COLUMN billiards_ods.site_tables_master.light_status IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】2来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】light_status。';
COMMENT ON COLUMN billiards_ods.site_tables_master.only_allow_groupon IS '【说明】小程序二维码 URL。 【示例】2用于小程序二维码 URL。 【JSON字段】only_allow_groupon。';
COMMENT ON COLUMN billiards_ods.site_tables_master.order_delay_time IS '【说明】订单层面允许的“自动延时时长”(例如到点后自动延长多少时间继续计费)。 【示例】0用于订单层面允许的“自动延时时长”例如到点后自动延长多少时间继续计费。 【JSON字段】order_delay_time。';
COMMENT ON COLUMN billiards_ods.site_tables_master.self_table IS '【说明】当前值:全部为 1。 【示例】1用于当前值全部为 1。 【JSON字段】self_table。';
COMMENT ON COLUMN billiards_ods.site_tables_master.show_status IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】show_status。';
COMMENT ON COLUMN billiards_ods.site_tables_master.site_table_area_id IS '【说明】门店维度的“台桌区域 ID”。 【示例】2791963794329671用于门店维度的“台桌区域 ID”。 【JSON字段】site_table_area_id。';
COMMENT ON COLUMN billiards_ods.site_tables_master.tableStatusName IS '【说明】table_status 的中文名称,仅为展示用途。 【示例】空闲中用于table_status 的中文名称,仅为展示用途)。 【JSON字段】tableStatusName。';
COMMENT ON COLUMN billiards_ods.site_tables_master.table_cloth_use_Cycle IS '【说明】台呢使用周期阈值,例如达到某个秒数后提醒更换。 【示例】0用于台呢使用周期阈值例如达到某个秒数后提醒更换。 【JSON字段】table_cloth_use_Cycle。';
COMMENT ON COLUMN billiards_ods.site_tables_master.table_cloth_use_time IS '【说明】时间字段,用于记录业务时间点/发生时间。。 【示例】1863727时间字段用于记录业务时间点/发生时间。)。 【JSON字段】table_cloth_use_time。';
COMMENT ON COLUMN billiards_ods.site_tables_master.table_name IS '【说明】台号/台名称,用于前台操作界面展示,也出现在小票和各种流水中的 ledger_name 或 tableName 字段。 【示例】A1台号/台名称,用于前台操作界面展示,也出现在小票和各种流水中的 ledger_name 或 tableName 字段)。 【JSON字段】table_name。';
COMMENT ON COLUMN billiards_ods.site_tables_master.table_price IS '【说明】设计上应为“台的基础单价”字段(例如按小时或按局单价)。 【示例】0.0(用于设计上应为“台的基础单价”字段(例如按小时或按局单价))。 【JSON字段】table_price。';
COMMENT ON COLUMN billiards_ods.site_tables_master.table_status IS '【说明】台当前运行状态,真实反映某一时刻台的占用/暂停情况。 【示例】1用于台当前运行状态真实反映某一时刻台的占用/暂停情况)。 【JSON字段】table_status。';
COMMENT ON COLUMN billiards_ods.site_tables_master.temporary_light_second IS '【说明】临时点灯时长(秒),例如手动临时开灯一段时间。 【示例】0用于临时点灯时长例如手动临时开灯一段时间。 【JSON字段】temporary_light_second。';
COMMENT ON COLUMN billiards_ods.site_tables_master.virtual_table IS '【说明】当前值:全部为 0。 【示例】0用于当前值全部为 0。 【JSON字段】virtual_table。';
COMMENT ON COLUMN billiards_ods.site_tables_master.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】site_tables_master.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.site_tables_master.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/site_tables_master.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.site_tables_master.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.site_tables_master.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.table_fee_discount_records (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteProfile JSONB,
site_table_id BIGINT,
tableProfile JSONB,
tenant_table_area_id BIGINT,
adjust_type INT,
ledger_amount NUMERIC(18,2),
ledger_count NUMERIC(18,4),
ledger_name TEXT,
ledger_status INT,
applicant_id BIGINT,
applicant_name TEXT,
operator_id BIGINT,
operator_name TEXT,
order_settle_id BIGINT,
order_trade_no TEXT,
is_delete INT,
create_time TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.table_fee_discount_records IS 'ODS 原始明细表台费折扣记录。来源C:/dev/LLTQ/export/test-json-doc/table_fee_discount_records.json分析table_fee_discount_records-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.id IS '【说明】台费打折 / 调整流水主键 ID。 【示例】2957913441881989用于台费打折 / 调整流水主键 ID。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.tenant_id IS '【说明】租户/品牌 ID。 【示例】2790683160709957用于租户/品牌 ID。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.site_id IS '【说明】门店 ID本批数据全部为同一家门店朗朗桌球。 【示例】2790685415443269用于门店 ID本批数据全部为同一家门店朗朗桌球。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.siteProfile IS '【说明】门店信息快照,用于报表时直接读取,无需再联门店档案。 【示例】{"id": 2790685415443269, "org_id": 2790684179467077, "shop_name": "朗朗桌球", "avatar": "https://oss.ficoo.vip/admin/hXcE4E…门店信息快照用于报表时直接读取无需再联门店档案。 【JSON字段】siteProfile。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.site_table_id IS '【说明】台桌 ID。 【示例】2793020259897413用于台桌 ID。 【JSON字段】site_table_id。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.tableProfile IS '【说明】折扣发生时,对应台桌的配置信息快照。 【示例】{"id": 2793020259897413, "tenant_id": 2790683160709957, "tenant_name": "", "siteName": "", "table_name": "S1", "site_ta…用于折扣发生时对应台桌的配置信息快照。 【JSON字段】tableProfile。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.tenant_table_area_id IS '【说明】租户维度的“台桌区域 ID”。 【示例】2791961347968901用于租户维度的“台桌区域 ID”。 【JSON字段】tenant_table_area_id。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.adjust_type IS '【说明】文件名是“台费打折”,字段名为“调整类型”,当前所有记录都是 1即“台费打折/台费减免”这一种调整类型。 【示例】1用于文件名是“台费打折”字段名为“调整类型”当前所有记录都是 1即“台费打折/台费减免”这一种调整类型)。 【JSON字段】adjust_type。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.ledger_amount IS '【说明】金额字段,用于计费/结算/分摊等金额计算。。 【示例】148.15(金额字段,用于计费/结算/分摊等金额计算。)。 【JSON字段】ledger_amount。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.ledger_count IS '【说明】这里不是“秒数”,而是“调整次数/条数”的量化,目前固定为 1表示“一次调账事件”。 【示例】1用于这里不是“秒数”而是“调整次数/条数”的量化,目前固定为 1表示“一次调账事件”。 【JSON字段】ledger_count。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.ledger_name IS '【说明】设计上应该用于记录“调账项目名称”或“打折原因描述”(例如某种优惠规则名称),但当前门店并未使用该字段。 【示例】NULL设计上应该用于记录“调账项目名称”或“打折原因描述”例如某种优惠规则名称但当前门店并未使用该字段。 【JSON字段】ledger_name。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.ledger_status IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】ledger_status。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.applicant_id IS '【说明】打折/调账申请人 ID。 【示例】2790687322443013用于打折/调账申请人 ID。 【JSON字段】applicant_id。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.applicant_name IS '【说明】申请人姓名(带角色描述),为 applicant_id 的冗余显示字段。 【示例】收银员:郑丽珊(用于申请人姓名(带角色描述),为 applicant_id 的冗余显示字段)。 【JSON字段】applicant_name。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.operator_id IS '【说明】实际执行调账操作的操作员 ID。 【示例】2790687322443013用于实际执行调账操作的操作员 ID。 【JSON字段】operator_id。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.operator_name IS '【说明】操作员姓名。 【示例】收银员:郑丽珊(用于操作员姓名)。 【JSON字段】operator_name。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.order_settle_id IS '【说明】结算单/小票 ID。 【示例】2957913171693253用于结算单/小票 ID。 【JSON字段】order_settle_id。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.order_trade_no IS '【说明】订单交易号。 【示例】2957784612605829用于订单交易号。 【JSON字段】order_trade_no。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.is_delete IS '【说明】逻辑删除标记0=否1=是)。。 【示例】0用于逻辑删除标记0=否1=是))。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.create_time IS '【说明】台费调整记录的创建时间,即打折操作被执行的时间戳。 【示例】2025-11-09 23:25:11用于台费调整记录的创建时间即打折操作被执行的时间戳。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】table_fee_discount_records.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/table_fee_discount_records.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.table_fee_transactions (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteProfile JSONB,
site_table_id BIGINT,
site_table_area_id BIGINT,
site_table_area_name TEXT,
tenant_table_area_id BIGINT,
order_trade_no TEXT,
order_pay_id BIGINT,
order_settle_id BIGINT,
ledger_name TEXT,
ledger_amount NUMERIC(18,2),
ledger_count NUMERIC(18,4),
ledger_unit_price NUMERIC(18,4),
ledger_status INT,
ledger_start_time TIMESTAMP,
ledger_end_time TIMESTAMP,
start_use_time TIMESTAMP,
last_use_time TIMESTAMP,
real_table_use_seconds INT,
real_table_charge_money NUMERIC(18,2),
add_clock_seconds INT,
adjust_amount NUMERIC(18,2),
coupon_promotion_amount NUMERIC(18,2),
member_discount_amount NUMERIC(18,2),
used_card_amount NUMERIC(18,2),
mgmt_fee NUMERIC(18,2),
service_money NUMERIC(18,2),
fee_total NUMERIC(18,2),
is_single_order INT,
is_delete INT,
member_id BIGINT,
operator_id BIGINT,
operator_name TEXT,
salesman_name TEXT,
salesman_org_id BIGINT,
salesman_user_id BIGINT,
create_time TIMESTAMP,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.table_fee_transactions IS 'ODS 原始明细表台费流水。来源C:/dev/LLTQ/export/test-json-doc/table_fee_transactions.json分析table_fee_transactions-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.id IS '【说明】台费流水记录主键(事实表主键)。 【示例】2957924029058885用于台费流水记录主键事实表主键。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.tenant_id IS '【说明】租户/品牌 ID。 【示例】2790683160709957用于租户/品牌 ID。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.site_id IS '【说明】门店 ID本次数据全部来自同一门店朗朗桌球。 【示例】2790685415443269用于门店 ID本次数据全部来自同一门店朗朗桌球。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.siteProfile IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】{"id": 2790685415443269, "org_id": 2790684179467077, "shop_name": "朗朗桌球", "avatar": "https://oss.ficoo.vip/admin/hXcE4E…来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】siteProfile。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.site_table_id IS '【说明】球台 ID。 【示例】2793003705192517用于球台 ID。 【JSON字段】site_table_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.site_table_area_id IS '【说明】门店内“台桌区域” ID站在门店物理布局的角度。 【示例】2791963794329671用于门店内“台桌区域” ID站在门店物理布局的角度。 【JSON字段】site_table_area_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.site_table_area_name IS '【说明】台桌区域的名称,用于门店表现和区域统计。 【示例】A区台桌区域的名称用于门店表现和区域统计。 【JSON字段】site_table_area_name。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.tenant_table_area_id IS '【说明】租户维度的台桌区域 ID品牌层面的同一类区域。 【示例】2791960001957765用于租户维度的台桌区域 ID品牌层面的同一类区域。 【JSON字段】tenant_table_area_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.order_trade_no IS '【说明】订单交易号,是整笔订单的主编号。 【示例】2957858167230149用于订单交易号是整笔订单的主编号。 【JSON字段】order_trade_no。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.order_pay_id IS '【说明】订单支付记录 ID。 【示例】0用于订单支付记录 ID。 【JSON字段】order_pay_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.order_settle_id IS '【说明】结算单号/结账 ID对应一次结账操作。 【示例】2957922914357125用于结算单号/结账 ID对应一次结账操作。 【JSON字段】order_settle_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_name IS '【说明】台号名称,实际展示给员工/顾客看的桌台编号。 【示例】A17用于台号名称实际展示给员工/顾客看的桌台编号)。 【JSON字段】ledger_name。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_amount IS '【说明】按单价与计费时长计算出的原始应收台费金额。 【示例】48.0(用于按单价与计费时长计算出的原始应收台费金额)。 【JSON字段】ledger_amount。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_count IS '【说明】台账记录的计费秒数,计费用秒数(应收时长)。 【示例】3600用于台账记录的计费秒数计费用秒数应收时长。 【JSON字段】ledger_count。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_unit_price IS '【说明】台费结算时设置的 每小时单价/计费单价。 【示例】48.0(用于台费结算时设置的 每小时单价/计费单价)。 【JSON字段】ledger_unit_price。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_status IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】ledger_status。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_start_time IS '【说明】台账上的计费起始时间。 【示例】2025-11-09 22:28:57用于台账上的计费起始时间。 【JSON字段】ledger_start_time。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_end_time IS '【说明】台账上的计费结束时间。 【示例】2025-11-09 23:28:57用于台账上的计费结束时间。 【JSON字段】ledger_end_time。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.start_use_time IS '【说明】台开始使用的时间(实际开台时间)。 【示例】2025-11-09 22:28:57用于台开始使用的时间实际开台时间。 【JSON字段】start_use_time。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.last_use_time IS '【说明】最后使用/操作时间。 【示例】2025-11-09 23:28:57用于最后使用/操作时间)。 【JSON字段】last_use_time。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.real_table_use_seconds IS '【说明】实际使用的总秒数(系统真实统计的使用时长)。 【示例】3600用于实际使用的总秒数系统真实统计的使用时长。 【JSON字段】real_table_use_seconds。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.real_table_charge_money IS '【说明】台费中实际向顾客收取的金额(现金/实付维度,未含券方承担或内部调账的那一部分)。 【示例】0.0(用于台费中实际向顾客收取的金额(现金/实付维度,未含券方承担或内部调账的那一部分))。 【JSON字段】real_table_charge_money。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.add_clock_seconds IS '【说明】加钟秒数,在原有使用基础上追加的时长。 【示例】0用于加钟秒数在原有使用基础上追加的时长。 【JSON字段】add_clock_seconds。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.adjust_amount IS '【说明】调整金额/调账金额,用于将台费金额转移或冲减到其它项目,或手工调整。 【示例】0.0(调整金额/调账金额,用于将台费金额转移或冲减到其它项目,或手工调整)。 【JSON字段】adjust_amount。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.coupon_promotion_amount IS '【说明】由优惠券/活动/团购(平台/门店促销)承担的优惠金额,直接抵扣在台费上。 【示例】48.0(用于由优惠券/活动/团购(平台/门店促销)承担的优惠金额,直接抵扣在台费上)。 【JSON字段】coupon_promotion_amount。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.member_discount_amount IS '【说明】由会员权益产生的优惠金额,例如会员折扣、会员价等。 【示例】0.0(用于由会员权益产生的优惠金额,例如会员折扣、会员价等)。 【JSON字段】member_discount_amount。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.used_card_amount IS '【说明】由储值卡、次卡等“卡内余额”抵扣的金额。 【示例】0.0(用于由储值卡、次卡等“卡内余额”抵扣的金额)。 【JSON字段】used_card_amount。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.mgmt_fee IS '【说明】管理费字段,用于未来支持“台费附加管理费/服务费”的功能。 【示例】0.0(管理费字段,用于未来支持“台费附加管理费/服务费”的功能)。 【JSON字段】mgmt_fee。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.service_money IS '【说明】门店用于记录“服务费/成本/分成金额”的字段,类似助教流水里的 service_money。 【示例】0.0(门店用于记录“服务费/成本/分成金额”的字段,类似助教流水里的 service_money。 【JSON字段】service_money。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.fee_total IS '【说明】各种附加费用(如管理费、服务费)合计值。 【示例】0.0(用于各种附加费用(如管理费、服务费)合计值)。 【JSON字段】fee_total。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.is_single_order IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。。 【示例】1布尔/开关字段,用于表示权限、可用性或状态开关。)。 【JSON字段】is_single_order。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.is_delete IS '【说明】逻辑删除标记0=否1=是)。。 【示例】0用于逻辑删除标记0=否1=是))。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.member_id IS '【说明】门店/租户内的会员 ID。 【示例】0用于门店/租户内的会员 ID。 【JSON字段】member_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.operator_id IS '【说明】操作员 ID负责开台/结账的员工账号 ID。 【示例】2790687322443013用于操作员 ID负责开台/结账的员工账号 ID。 【JSON字段】operator_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.operator_name IS '【说明】操作员姓名(冗余字段),便于直接阅读,不必再联表员工档案。 【示例】收银员:郑丽珊(用于操作员姓名(冗余字段),便于直接阅读,不必再联表员工档案)。 【JSON字段】operator_name。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.salesman_name IS '【说明】业务员/营业员姓名,如果台费有单独提成员工,这里记录归属人。 【示例】NULL用于业务员/营业员姓名,如果台费有单独提成员工,这里记录归属人)。 【JSON字段】salesman_name。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.salesman_org_id IS '【说明】营业员所属机构/部门 ID。 【示例】0用于营业员所属机构/部门 ID。 【JSON字段】salesman_org_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.salesman_user_id IS '【说明】营业员的用户 ID与 salesman_name 搭配)。 【示例】0用于营业员的用户 ID与 salesman_name 搭配))。 【JSON字段】salesman_user_id。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.create_time IS '【说明】这条台费流水记录的创建时间,通常接近结账时间。 【示例】2025-11-09 23:35:57用于这条台费流水记录的创建时间通常接近结账时间。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】table_fee_transactions.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/table_fee_transactions.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
CREATE TABLE IF NOT EXISTS billiards_ods.goods_stock_movements (
siteGoodsStockId BIGINT PRIMARY KEY,
tenantId BIGINT,
siteId BIGINT,
siteGoodsId BIGINT,
goodsName TEXT,
goodsCategoryId BIGINT,
goodsSecondCategoryId BIGINT,
unit TEXT,
price NUMERIC(18,4),
stockType INT,
changeNum NUMERIC(18,4),
startNum NUMERIC(18,4),
endNum NUMERIC(18,4),
changeNumA NUMERIC(18,4),
startNumA NUMERIC(18,4),
endNumA NUMERIC(18,4),
remark TEXT,
operatorName TEXT,
createTime TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.goods_stock_movements IS 'ODS 原始明细表商品库存变动流水。来源C:/dev/LLTQ/export/test-json-doc/goods_stock_movements.json分析goods_stock_movements-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.siteGoodsStockId IS '【说明】门店某个“商品库存记录”的主键 ID。 【示例】2957911857581957用于门店某个“商品库存记录”的主键 ID。 【JSON字段】siteGoodsStockId。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.tenantId IS '【说明】租户/品牌 ID。 【示例】2790683160709957用于租户/品牌 ID。 【JSON字段】tenantId。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.siteId IS '【说明】门店 ID。 【示例】2790685415443269用于门店 ID。 【JSON字段】siteId。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.siteGoodsId IS '【说明】门店维度的商品 ID。 【示例】2793026183532613用于门店维度的商品 ID。 【JSON字段】siteGoodsId。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.goodsName IS '【说明】商品名称。 【示例】阿萨姆(用于商品名称)。 【JSON字段】goodsName。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.goodsCategoryId IS '【说明】商品一级分类 ID。 【示例】2790683528350539用于商品一级分类 ID。 【JSON字段】goodsCategoryId。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.goodsSecondCategoryId IS '【说明】商品二级分类 ID。 【示例】2790683528350540用于商品二级分类 ID。 【JSON字段】goodsSecondCategoryId。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.unit IS '【说明】库存计量单位。 【示例】瓶(用于库存计量单位)。 【JSON字段】unit。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.price IS '【说明】商品单价(单位金额)。 【示例】8.0(用于商品单价(单位金额))。 【JSON字段】price。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.stockType IS '【说明】189 条。 【示例】1用于189 条)。 【JSON字段】stockType。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.changeNum IS '【说明】本次库存数量变化值。 【示例】-1用于本次库存数量变化值。 【JSON字段】changeNum。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.startNum IS '【说明】变动前(这次出入库之前)的库存数量。 【示例】28用于变动前这次出入库之前的库存数量。 【JSON字段】startNum。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.endNum IS '【说明】变动后(出入库之后)的库存数量。 【示例】27用于变动后出入库之后的库存数量。 【JSON字段】endNum。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.changeNumA IS '【说明】辅助单位的变化量(与 changeNum 对应的第二计量单位变化),当前未使用。 【示例】0用于辅助单位的变化量与 changeNum 对应的第二计量单位变化),当前未使用)。 【JSON字段】changeNumA。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.startNumA IS '【说明】辅助计量单位的起始库存(例如件/箱等第二单位)。 【示例】0用于辅助计量单位的起始库存例如件/箱等第二单位))。 【JSON字段】startNumA。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.endNumA IS '【说明】辅助单位的变动后库存,同样未启用。 【示例】0用于辅助单位的变动后库存同样未启用。 【JSON字段】endNumA。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.remark IS '【说明】备注信息,用于手工记录本次变更的特殊原因说明(例如“盘点差异调整”“报损”)。 【示例】NULL备注信息用于手工记录本次变更的特殊原因说明例如“盘点差异调整”“报损”。 【JSON字段】remark。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.operatorName IS '【说明】执行此次库存变动的操作人。 【示例】收银员:郑丽珊(用于执行此次库存变动的操作人)。 【JSON字段】operatorName。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.createTime IS '【说明】这条库存变动记录的创建时间,即发生库存变更的时间点。 【示例】2025-11-09 23:23:34用于这条库存变动记录的创建时间即发生库存变更的时间点。 【JSON字段】createTime。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】goods_stock_movements.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/goods_stock_movements.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.stock_goods_category_tree (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
category_name TEXT,
alias_name TEXT,
pid BIGINT,
business_name TEXT,
tenant_goods_business_id BIGINT,
open_salesman INT,
categoryBoxes JSONB,
sort INT,
is_warehousing INT,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.stock_goods_category_tree IS 'ODS 原始明细表商品分类树。来源C:/dev/LLTQ/export/test-json-doc/stock_goods_category_tree.json分析stock_goods_category_tree-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.id IS '【说明】分类节点主键 ID在商品分类维度中的唯一标识。 【示例】2790683528350533用于分类节点主键 ID在商品分类维度中的唯一标识。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.tenant_id IS '【说明】租户 ID品牌/商户 ID。 【示例】2790683160709957用于租户 ID品牌/商户 ID。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.category_name IS '【说明】分类名称(实际业务分类名称)。 【示例】槟榔(用于分类名称(实际业务分类名称))。 【JSON字段】category_name。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.alias_name IS '【说明】名称字段,用于展示与辅助识别。。 【示例】NULL名称字段用于展示与辅助识别。。 【JSON字段】alias_name。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.pid IS '【说明】父级分类 ID。 【示例】0用于父级分类 ID。 【JSON字段】pid。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.business_name IS '【说明】业务大类名称。 【示例】槟榔(用于业务大类名称)。 【JSON字段】business_name。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.tenant_goods_business_id IS '【说明】业务大类 ID。 【示例】2790683528317766用于业务大类 ID。 【JSON字段】tenant_goods_business_id。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.open_salesman IS '【说明】是否启用“营业员”或“导购提成”相关的功能开关。 【示例】2用于是否启用“营业员”或“导购提成”相关的功能开关。 【JSON字段】open_salesman。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.categoryBoxes IS '【说明】子分类数组。 【示例】[{"id": 2790683528350534, "tenant_id": 2790683160709957, "category_name": "槟榔", "alias_name": "", "pid": 27906835283505…用于子分类数组。 【JSON字段】categoryBoxes。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.sort IS '【说明】分类的排序序号,用于前端展示顺序的控制。 【示例】1分类的排序序号用于前端展示顺序的控制。 【JSON字段】sort。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.is_warehousing IS '【说明】本文件可视为“所有参与库存管理的商品分类清单”,因此均为 1。 【示例】1用于本文件可视为“所有参与库存管理的商品分类清单”因此均为 1。 【JSON字段】is_warehousing。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】stock_goods_category_tree.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/stock_goods_category_tree.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.goods_stock_summary (
siteGoodsId BIGINT PRIMARY KEY,
goodsName TEXT,
goodsUnit TEXT,
goodsCategoryId BIGINT,
goodsCategorySecondId BIGINT,
categoryName TEXT,
rangeStartStock NUMERIC(18,4),
rangeEndStock NUMERIC(18,4),
rangeIn NUMERIC(18,4),
rangeOut NUMERIC(18,4),
rangeSale NUMERIC(18,4),
rangeSaleMoney NUMERIC(18,2),
rangeInventory NUMERIC(18,4),
currentStock NUMERIC(18,4),
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.goods_stock_summary IS 'ODS 原始明细表商品库存汇总。来源C:/dev/LLTQ/export/test-json-doc/goods_stock_summary.json分析goods_stock_summary-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.siteGoodsId IS '【说明】门店商品 ID本库存汇总表的主键对应某个具体商品在本店的唯一标识。 【示例】2791953867886725用于门店商品 ID本库存汇总表的主键对应某个具体商品在本店的唯一标识。 【JSON字段】siteGoodsId。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.goodsName IS '【说明】商品名称,冗余于门店商品档案的 goods_name。 【示例】东方树叶(用于商品名称,冗余于门店商品档案的 goods_name。 【JSON字段】goodsName。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.goodsUnit IS '【说明】商品的计量单位(售卖单位)。 【示例】瓶(用于商品的计量单位(售卖单位))。 【JSON字段】goodsUnit。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.goodsCategoryId IS '【说明】一级商品分类 ID。 【示例】2790683528350539用于一级商品分类 ID。 【JSON字段】goodsCategoryId。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.goodsCategorySecondId IS '【说明】二级(次级)商品分类 ID是 goodsCategoryId 的下级分类。 【示例】2790683528350540用于二级次级商品分类 ID是 goodsCategoryId 的下级分类)。 【JSON字段】goodsCategorySecondId。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.categoryName IS '【说明】一级分类名称,属于冗余字段,用于直接展示。 【示例】酒水(一级分类名称,属于冗余字段,用于直接展示)。 【JSON字段】categoryName。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeStartStock IS '【说明】查询区间 起始时刻 的库存数量(期初库存)。 【示例】165用于查询区间 起始时刻 的库存数量(期初库存))。 【JSON字段】rangeStartStock。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeEndStock IS '【说明】查询区间 结束时刻 的库存数量(期末库存)。 【示例】118用于查询区间 结束时刻 的库存数量(期末库存))。 【JSON字段】rangeEndStock。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeIn IS '【说明】查询区间内的 入库数量汇总(正值),包括采购入库、调拨入库等。 【示例】450用于查询区间内的 入库数量汇总(正值),包括采购入库、调拨入库等)。 【JSON字段】rangeIn。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeOut IS '【说明】查询区间内的 出库数量汇总,以 负数 表示从库存扣减(出库/销售)。 【示例】-497用于查询区间内的 出库数量汇总,以 负数 表示从库存扣减(出库/销售))。 【JSON字段】rangeOut。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeSale IS '【说明】查询区间内,该商品的 销售数量汇总(售出多少“包/瓶/份”等)。 【示例】488用于查询区间内该商品的 销售数量汇总(售出多少“包/瓶/份”等))。 【JSON字段】rangeSale。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeSaleMoney IS '【说明】查询区间内,该商品销售的 金额小计(按商品维度汇总)。 【示例】3904.0(用于查询区间内,该商品销售的 金额小计(按商品维度汇总))。 【JSON字段】rangeSaleMoney。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeInventory IS '【说明】查询区间内的 盘点调整净变动量(盘盈–盘亏)。 【示例】0用于查询区间内的 盘点调整净变动量(盘盈–盘亏))。 【JSON字段】rangeInventory。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.currentStock IS '【说明】导出时刻的实时库存数量。 【示例】118用于导出时刻的实时库存数量。 【JSON字段】currentStock。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】goods_stock_summary.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/goods_stock_summary.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.payment_transactions (
id BIGINT PRIMARY KEY,
site_id BIGINT,
siteProfile JSONB,
relate_type INT,
relate_id BIGINT,
pay_amount NUMERIC(18,2),
pay_status INT,
pay_time TIMESTAMP,
create_time TIMESTAMP,
payment_method INT,
online_pay_channel INT,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.payment_transactions IS 'ODS 原始明细表支付流水。来源C:/dev/LLTQ/export/test-json-doc/payment_transactions.json分析payment_transactions-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.payment_transactions.id IS '【说明】支付流水记录的主键 ID。 【示例】2957924026486597用于支付流水记录的主键 ID。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.payment_transactions.site_id IS '【说明】支付记录所属的门店 ID。 【示例】2790685415443269用于支付记录所属的门店 ID。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.payment_transactions.siteProfile IS '【说明】门店信息快照,与其他 JSON 中的 siteProfile 结构一致。 【示例】{"id": 2790685415443269, "org_id": 2790684179467077, "shop_name": "朗朗桌球", "avatar": "https://oss.ficoo.vip/admin/hXcE4E…用于门店信息快照与其他 JSON 中的 siteProfile 结构一致)。 【JSON字段】siteProfile。';
COMMENT ON COLUMN billiards_ods.payment_transactions.relate_type IS '【说明】表示“这条支付记录关联的业务类型”。 【示例】2用于表示“这条支付记录关联的业务类型”。 【JSON字段】relate_type。';
COMMENT ON COLUMN billiards_ods.payment_transactions.relate_id IS '【说明】关联业务记录的主键 ID按 relate_type 不同指向不同表)。 【示例】2957922914357125用于关联业务记录的主键 ID按 relate_type 不同指向不同表))。 【JSON字段】relate_id。';
COMMENT ON COLUMN billiards_ods.payment_transactions.pay_amount IS '【说明】本条支付流水的“支付金额”,单位为元。 【示例】10.0(用于本条支付流水的“支付金额”,单位为元)。 【JSON字段】pay_amount。';
COMMENT ON COLUMN billiards_ods.payment_transactions.pay_status IS '【说明】支付状态枚举字段。 【示例】2用于支付状态枚举字段。 【JSON字段】pay_status。';
COMMENT ON COLUMN billiards_ods.payment_transactions.pay_time IS '【说明】实际支付完成时间(支付状态变为成功的时间戳)。 【示例】2025-11-09 23:35:57用于实际支付完成时间支付状态变为成功的时间戳。 【JSON字段】pay_time。';
COMMENT ON COLUMN billiards_ods.payment_transactions.create_time IS '【说明】支付记录创建时间,通常与发起支付请求的时间一致(创建支付流水的时间戳)。 【示例】2025-11-09 23:35:57用于支付记录创建时间通常与发起支付请求的时间一致创建支付流水的时间戳。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.payment_transactions.payment_method IS '【说明】支付方式枚举,例如微信、支付宝、现金、银行卡、储值卡等某一种。 【示例】4用于支付方式枚举例如微信、支付宝、现金、银行卡、储值卡等某一种。 【JSON字段】payment_method。';
COMMENT ON COLUMN billiards_ods.payment_transactions.online_pay_channel IS '【说明】每一笔结账单settleList.id对应一条支付记录当前样本中是一条记录relate_id 唯一)。 【示例】0用于每一笔结账单settleList.id对应一条支付记录当前样本中是一条记录relate_id 唯一))。 【JSON字段】online_pay_channel。';
COMMENT ON COLUMN billiards_ods.payment_transactions.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】payment_transactions.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.payment_transactions.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/payment_transactions.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.payment_transactions.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.payment_transactions.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.refund_transactions (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
tenantName TEXT,
site_id BIGINT,
siteProfile JSONB,
relate_type INT,
relate_id BIGINT,
pay_sn TEXT,
pay_amount NUMERIC(18,2),
refund_amount NUMERIC(18,2),
round_amount NUMERIC(18,2),
pay_status INT,
pay_time TIMESTAMP,
create_time TIMESTAMP,
payment_method INT,
pay_terminal INT,
pay_config_id BIGINT,
online_pay_channel INT,
online_pay_type INT,
channel_fee NUMERIC(18,2),
channel_payer_id TEXT,
channel_pay_no TEXT,
member_id BIGINT,
member_card_id BIGINT,
cashier_point_id BIGINT,
operator_id BIGINT,
action_type INT,
check_status INT,
is_revoke INT,
is_delete INT,
balance_frozen_amount NUMERIC(18,2),
card_frozen_amount NUMERIC(18,2),
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.refund_transactions IS 'ODS 原始明细表退款流水。来源C:/dev/LLTQ/export/test-json-doc/refund_transactions.json分析refund_transactions-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.refund_transactions.id IS '【说明】本条 退款流水 的唯一 ID。 【示例】2955202296416389用于本条 退款流水 的唯一 ID。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.refund_transactions.tenant_id IS '【说明】租户/品牌 ID全系统维度标识该商户。 【示例】2790683160709957用于租户/品牌 ID全系统维度标识该商户。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.refund_transactions.tenantName IS '【说明】租户(商户)名称。 【示例】朗朗桌球(用于租户(商户)名称)。 【JSON字段】tenantName。';
COMMENT ON COLUMN billiards_ods.refund_transactions.site_id IS '【说明】门店 ID。 【示例】2790685415443269用于门店 ID。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.refund_transactions.siteProfile IS '【说明】门店信息快照,结构与其他 JSON 中的 siteProfile 完全一致。 【示例】{"id": 2790685415443269, "org_id": 2790684179467077, "shop_name": "朗朗桌球", "avatar": "https://oss.ficoo.vip/admin/hXcE4E…用于门店信息快照结构与其他 JSON 中的 siteProfile 完全一致)。 【JSON字段】siteProfile。';
COMMENT ON COLUMN billiards_ods.refund_transactions.relate_type IS '【说明】本退款对应的“业务类型”。 【示例】5用于本退款对应的“业务类型”。 【JSON字段】relate_type。';
COMMENT ON COLUMN billiards_ods.refund_transactions.relate_id IS '【说明】本次退款关联的业务 ID。 【示例】2955078219057349用于本次退款关联的业务 ID。 【JSON字段】relate_id。';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_sn IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】0来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】pay_sn。';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_amount IS '【说明】本次退款的 资金变动金额。 【示例】-5000.0(用于本次退款的 资金变动金额)。 【JSON字段】pay_amount。';
COMMENT ON COLUMN billiards_ods.refund_transactions.refund_amount IS '【说明】设计上本应显示“实际退款金额”(正数),与 pay_amount 配合使用。 【示例】0.0(用于设计上本应显示“实际退款金额”(正数),与 pay_amount 配合使用)。 【JSON字段】refund_amount。';
COMMENT ON COLUMN billiards_ods.refund_transactions.round_amount IS '【说明】舍入金额/抹零金额。 【示例】0.0(用于舍入金额/抹零金额)。 【JSON字段】round_amount。';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_status IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】2来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】pay_status。';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_time IS '【说明】退款在支付渠道层面实际发生的时间。 【示例】2025-11-08 01:27:16用于退款在支付渠道层面实际发生的时间。 【JSON字段】pay_time。';
COMMENT ON COLUMN billiards_ods.refund_transactions.create_time IS '【说明】本条退款流水在系统内创建时间。 【示例】2025-11-08 01:27:16用于本条退款流水在系统内创建时间。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.refund_transactions.payment_method IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】4来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】payment_method。';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_terminal IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】pay_terminal。';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_config_id IS '【说明】支付配置 ID例如商户在“非球科技”内配置的某一条支付通道某个微信商户号、银联通道的主键。 【示例】0用于支付配置 ID例如商户在“非球科技”内配置的某一条支付通道某个微信商户号、银联通道的主键。 【JSON字段】pay_config_id。';
COMMENT ON COLUMN billiards_ods.refund_transactions.online_pay_channel IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】0来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】online_pay_channel。';
COMMENT ON COLUMN billiards_ods.refund_transactions.online_pay_type IS '【说明】当前:全部 0。 【示例】0用于当前全部 0。 【JSON字段】online_pay_type。';
COMMENT ON COLUMN billiards_ods.refund_transactions.channel_fee IS '【说明】第三方支付渠道对本次退款收取的手续费。 【示例】0.0(用于第三方支付渠道对本次退款收取的手续费)。 【JSON字段】channel_fee。';
COMMENT ON COLUMN billiards_ods.refund_transactions.channel_payer_id IS '【说明】支付渠道侧的 payer ID例如微信 openid、银行卡号掩码等。 【示例】NULL用于支付渠道侧的 payer ID例如微信 openid、银行卡号掩码等。 【JSON字段】channel_payer_id。';
COMMENT ON COLUMN billiards_ods.refund_transactions.channel_pay_no IS '【说明】第三方支付平台的交易号(如微信支付单号、支付宝交易号等)。 【示例】NULL用于第三方支付平台的交易号如微信支付单号、支付宝交易号等。 【JSON字段】channel_pay_no。';
COMMENT ON COLUMN billiards_ods.refund_transactions.member_id IS '【说明】租户内部的会员 ID对应会员档案中的某个主键。 【示例】0用于租户内部的会员 ID对应会员档案中的某个主键。 【JSON字段】member_id。';
COMMENT ON COLUMN billiards_ods.refund_transactions.member_card_id IS '【说明】关联的会员卡账户 ID对应“储值卡列表”或“会员档案”中的某一张卡。 【示例】0用于关联的会员卡账户 ID对应“储值卡列表”或“会员档案”中的某一张卡。 【JSON字段】member_card_id。';
COMMENT ON COLUMN billiards_ods.refund_transactions.cashier_point_id IS '【说明】收银点 ID例如前台 1、前台 2、自助机等。 【示例】0用于收银点 ID例如前台 1、前台 2、自助机等。 【JSON字段】cashier_point_id。';
COMMENT ON COLUMN billiards_ods.refund_transactions.operator_id IS '【说明】执行该退款操作的操作员 ID。 【示例】0用于执行该退款操作的操作员 ID。 【JSON字段】operator_id。';
COMMENT ON COLUMN billiards_ods.refund_transactions.action_type IS '【说明】当前:全部 2。 【示例】2用于当前全部 2。 【JSON字段】action_type。';
COMMENT ON COLUMN billiards_ods.refund_transactions.check_status IS '【说明】当前:全部 1。 【示例】1用于当前全部 1。 【JSON字段】check_status。';
COMMENT ON COLUMN billiards_ods.refund_transactions.is_revoke IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。。 【示例】0布尔/开关字段,用于表示权限、可用性或状态开关。)。 【JSON字段】is_revoke。';
COMMENT ON COLUMN billiards_ods.refund_transactions.is_delete IS '【说明】逻辑删除标志。 【示例】0用于逻辑删除标志。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.refund_transactions.balance_frozen_amount IS '【说明】涉及会员储值卡退款时,暂时冻结的余额金额。 【示例】0.0(用于涉及会员储值卡退款时,暂时冻结的余额金额)。 【JSON字段】balance_frozen_amount。';
COMMENT ON COLUMN billiards_ods.refund_transactions.card_frozen_amount IS '【说明】与上一个类似,偏向“某张卡的被冻结金额”,也与会员卡/储值账户相关。 【示例】0.0(用于与上一个类似,偏向“某张卡的被冻结金额”,也与会员卡/储值账户相关)。 【JSON字段】card_frozen_amount。';
COMMENT ON COLUMN billiards_ods.refund_transactions.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】refund_transactions.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.refund_transactions.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/refund_transactions.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.refund_transactions.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.refund_transactions.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.platform_coupon_redemption_records (
id BIGINT PRIMARY KEY,
verify_id BIGINT,
certificate_id TEXT,
coupon_code TEXT,
coupon_name TEXT,
coupon_channel INT,
groupon_type INT,
group_package_id BIGINT,
sale_price NUMERIC(18,2),
coupon_money NUMERIC(18,2),
coupon_free_time NUMERIC(18,2),
coupon_cover TEXT,
coupon_remark TEXT,
use_status INT,
consume_time TIMESTAMP,
create_time TIMESTAMP,
deal_id TEXT,
channel_deal_id TEXT,
site_id BIGINT,
site_order_id BIGINT,
table_id BIGINT,
tenant_id BIGINT,
operator_id BIGINT,
operator_name TEXT,
is_delete INT,
siteProfile JSONB,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.platform_coupon_redemption_records IS 'ODS 原始明细表:平台券核销/使用记录。来源C:/dev/LLTQ/export/test-json-doc/platform_coupon_redemption_records.json分析platform_coupon_redemption_records-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.id IS '【说明】本条平台验券记录在本系统内的主键 ID。 【示例】2957929042218501用于本条平台验券记录在本系统内的主键 ID。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.verify_id IS '【说明】平台核销记录 ID某些平台会为每一次核销生成一个唯一 ID。 【示例】7570689090418149418用于平台核销记录 ID某些平台会为每一次核销生成一个唯一 ID。 【JSON字段】verify_id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.certificate_id IS '【说明】平台侧的凭证 ID通常由第三方团购平台生成的券实例 ID。 【示例】5008024789379597447用于平台侧的凭证 ID通常由第三方团购平台生成的券实例 ID。 【JSON字段】certificate_id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_code IS '【说明】券码,顾客出示的团购券密码/编号。 【示例】0102701209726用于券码顾客出示的团购券密码/编号)。 【JSON字段】coupon_code。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_name IS '【说明】团购券产品名称(即第三方平台上向顾客展示的名称)。 【示例】【全天可用】中八桌球一小时A区用于团购券产品名称即第三方平台上向顾客展示的名称。 【JSON字段】coupon_name。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_channel IS '【说明】券来源渠道(第三方平台渠道编号)。 【示例】1用于券来源渠道第三方平台渠道编号。 【JSON字段】coupon_channel。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.groupon_type IS '【说明】团购券类型。 【示例】1用于团购券类型。 【JSON字段】groupon_type。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.group_package_id IS '【说明】标识类 ID 字段,用于关联/定位相关实体。。 【示例】0标识类 ID 字段,用于关联/定位相关实体。)。 【JSON字段】group_package_id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.sale_price IS '【说明】顾客在第三方平台上实际支付的价格(团购售价)。 【示例】29.9(用于顾客在第三方平台上实际支付的价格(团购售价))。 【JSON字段】sale_price。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_money IS '【说明】券面值 / 套餐价值(系统层面的“可抵扣金额或对应套餐价值”)。 【示例】48.0(用于券面值 / 套餐价值(系统层面的“可抵扣金额或对应套餐价值”))。 【JSON字段】coupon_money。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_free_time IS '【说明】券附带的“免费时长”字段(例如送多少分钟台费)。 【示例】0用于券附带的“免费时长”字段例如送多少分钟台费。 【JSON字段】coupon_free_time。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_cover IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】coupon_cover。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_remark IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】617547ec-9697-4f58-a700-b30a49e88904||CgYIASAHKAESLgos9ZhHDryhHb0z3RpdBZ0dVoaQbkldBcx/XTXPV8Te+9SEqYOa7aDp8nbKOpsaAA==(来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】coupon_remark。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.use_status IS '【说明】值 1198 条。 【示例】1用于值 1198 条)。 【JSON字段】use_status。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.consume_time IS '【说明】券被核销/使用的业务时间。 【示例】2025-11-09 23:41:04用于券被核销/使用的业务时间)。 【JSON字段】consume_time。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.create_time IS '【说明】验券记录在本系统中创建的时间(记录入库时间)。 【示例】2025-11-09 23:41:03用于验券记录在本系统中创建的时间记录入库时间。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.deal_id IS '【说明】另一个层次的团购产品 ID。 【示例】1345108507用于另一个层次的团购产品 ID。 【JSON字段】deal_id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.channel_deal_id IS '【说明】渠道侧 dealId / 产品 ID一般是第三方平台给该团购商品定义的主键。 【示例】1128411555用于渠道侧 dealId / 产品 ID一般是第三方平台给该团购商品定义的主键。 【JSON字段】channel_deal_id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.site_id IS '【说明】门店 ID。 【示例】2790685415443269用于门店 ID。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.site_order_id IS '【说明】门店内部的订单 ID平台券核销时对应的店内订单。 【示例】2957929043037702用于门店内部的订单 ID平台券核销时对应的店内订单。 【JSON字段】site_order_id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.table_id IS '【说明】使用券的球台 ID。 【示例】2793001904918661用于使用券的球台 ID。 【JSON字段】table_id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.tenant_id IS '【说明】商户/租户 ID品牌级别。 【示例】2790683160709957用于商户/租户 ID品牌级别。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.operator_id IS '【说明】操作员 ID执行验券操作的收银员/员工)。 【示例】2790687322443013用于操作员 ID执行验券操作的收银员/员工))。 【JSON字段】operator_id。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.operator_name IS '【说明】操作员姓名,例如 "收银员:郑丽珊"。 【示例】收银员:郑丽珊(用于操作员姓名,例如 "收银员:郑丽珊")。 【JSON字段】operator_name。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.is_delete IS '【说明】把平台验券记录挂到本门店的一条订单上。 【示例】0用于把平台验券记录挂到本门店的一条订单上。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.siteProfile IS '【说明】门店信息快照。 【示例】{"id": 2790685415443269, "org_id": 2790684179467077, "shop_name": "朗朗桌球", "avatar": "https://oss.ficoo.vip/admin/hXcE4E…用于门店信息快照。 【JSON字段】siteProfile。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】platform_coupon_redemption_records.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/platform_coupon_redemption_records.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.tenant_goods_master (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
goods_name TEXT,
goods_bar_code TEXT,
goods_category_id BIGINT,
goods_second_category_id BIGINT,
categoryName TEXT,
unit TEXT,
goods_number TEXT,
out_goods_id TEXT,
goods_state INT,
sale_channel INT,
able_discount INT,
able_site_transfer INT,
is_delete INT,
is_warehousing INT,
isInSite INT,
cost_price NUMERIC(18,4),
cost_price_type INT,
market_price NUMERIC(18,4),
min_discount_price NUMERIC(18,4),
common_sale_royalty NUMERIC(18,4),
point_sale_royalty NUMERIC(18,4),
pinyin_initial TEXT,
commodityCode TEXT,
commodity_code TEXT,
goods_cover TEXT,
supplier_id BIGINT,
remark_name TEXT,
create_time TIMESTAMP,
update_time TIMESTAMP,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.tenant_goods_master IS 'ODS 原始明细表租户商品主数据。来源C:/dev/LLTQ/export/test-json-doc/tenant_goods_master.json分析tenant_goods_master-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.id IS '【说明】商品档案主键 ID唯一标识一条商品。 【示例】2791925230096261用于商品档案主键 ID唯一标识一条商品。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.tenant_id IS '【说明】租户/品牌 ID。 【示例】2790683160709957用于租户/品牌 ID。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_name IS '【说明】商品名称(前台展示名称)。 【示例】东方树叶(用于商品名称(前台展示名称))。 【JSON字段】goods_name。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_bar_code IS '【说明】商品条码EAN 等),目前未维护。 【示例】NULL用于商品条码EAN 等),目前未维护)。 【JSON字段】goods_bar_code。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_category_id IS '【说明】商品一级分类 ID。 【示例】2790683528350539用于商品一级分类 ID。 【JSON字段】goods_category_id。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_second_category_id IS '【说明】商品二级分类 ID。 【示例】2790683528350540用于商品二级分类 ID。 【JSON字段】goods_second_category_id。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.categoryName IS '【说明】商品一级分类名称(业务可读)。 【示例】饮料(用于商品一级分类名称(业务可读))。 【JSON字段】categoryName。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.unit IS '【说明】计量单位。 【示例】瓶(用于计量单位)。 【JSON字段】unit。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_number IS '【说明】商品内部编码(自定义货号/系统货号)。 【示例】1用于商品内部编码自定义货号/系统货号))。 【JSON字段】goods_number。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.out_goods_id IS '【说明】外部系统商品 ID对接第三方平台使用如外卖、线上商城等。 【示例】0用于外部系统商品 ID对接第三方平台使用如外卖、线上商城等。 【JSON字段】out_goods_id。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_state IS '【说明】商品状态(上架/下架等)。 【示例】1用于商品状态上架/下架等))。 【JSON字段】goods_state。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.sale_channel IS '【说明】销售渠道类型,如“门店堂食/线下零售/线上小程序”等的一种编码。 【示例】1用于销售渠道类型如“门店堂食/线下零售/线上小程序”等的一种编码)。 【JSON字段】sale_channel。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.able_discount IS '【说明】是否允许参与折扣/打折。 【示例】1用于是否允许参与折扣/打折)。 【JSON字段】able_discount。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.able_site_transfer IS '【说明】布尔/开关字段,用于表示权限、可用性或状态开关。。 【示例】2布尔/开关字段,用于表示权限、可用性或状态开关。)。 【JSON字段】able_site_transfer。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.is_delete IS '【说明】逻辑删除标志。 【示例】0用于逻辑删除标志。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.is_warehousing IS '【说明】是否启用库存管理。 【示例】1用于是否启用库存管理。 【JSON字段】is_warehousing。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.isInSite IS '【说明】是否在当前门店启用/上架。 【示例】false用于是否在当前门店启用/上架)。 【JSON字段】isInSite。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.cost_price IS '【说明】成本价格。 【示例】0.0(用于成本价格)。 【JSON字段】cost_price。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.cost_price_type IS '【说明】金额字段,用于计费/结算/分摊等金额计算。。 【示例】1金额字段用于计费/结算/分摊等金额计算。)。 【JSON字段】cost_price_type。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.market_price IS '【说明】商品标价 / 售价(标准销售单价)。 【示例】8.0(用于商品标价 / 售价(标准销售单价))。 【JSON字段】market_price。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.min_discount_price IS '【说明】该商品允许售卖的最低价格(底价)。 【示例】0.0(用于该商品允许售卖的最低价格(底价))。 【JSON字段】min_discount_price。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.common_sale_royalty IS '【说明】普通销售提成比例或提成金额的配置字段。 【示例】0用于普通销售提成比例或提成金额的配置字段。 【JSON字段】common_sale_royalty。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.point_sale_royalty IS '【说明】积分销售提成/积分赠送规则相关配置。 【示例】0用于积分销售提成/积分赠送规则相关配置)。 【JSON字段】point_sale_royalty。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.pinyin_initial IS '【说明】拼音首字母/助记码。 【示例】DFSY,DFSX用于拼音首字母/助记码)。 【JSON字段】pinyin_initial。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.commodityCode IS '【说明】与 commodity_code 是同一信息的数组形式(冗余存储),便于支持一个商品对应多个编码的场景。 【示例】["10000028"](用于与 commodity_code 是同一信息的数组形式(冗余存储),便于支持一个商品对应多个编码的场景)。 【JSON字段】commodityCode。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.commodity_code IS '【说明】商品编码(通常为对外商品编码或条码)。 【示例】10000028用于商品编码通常为对外商品编码或条码。 【JSON字段】commodity_code。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_cover IS '【说明】商品封面图片 URL 地址。 【示例】https://oss.ficoo.vip/admin/ZwS8fj_1753175129443.jpg用于商品封面图片 URL 地址)。 【JSON字段】goods_cover。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.supplier_id IS '【说明】供应商 ID用于关联到供应商档案。 【示例】0供应商 ID用于关联到供应商档案。 【JSON字段】supplier_id。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.remark_name IS '【说明】商品备注名/别名,通常用来配置简写或特殊显示名称。 【示例】NULL用于商品备注名/别名,通常用来配置简写或特殊显示名称)。 【JSON字段】remark_name。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.create_time IS '【说明】商品档案创建时间。 【示例】2025-07-15 17:13:15用于商品档案创建时间。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.update_time IS '【说明】商品档案最近一次修改时间。 【示例】2025-10-29 23:51:38用于商品档案最近一次修改时间。 【JSON字段】update_time。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】tenant_goods_master.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/tenant_goods_master.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
CREATE TABLE IF NOT EXISTS billiards_ods.group_buy_packages (
id BIGINT PRIMARY KEY,
package_id BIGINT,
package_name TEXT,
selling_price NUMERIC(18,2),
coupon_money NUMERIC(18,2),
date_type INT,
date_info TEXT,
start_time TIMESTAMP,
end_time TIMESTAMP,
start_clock TEXT,
end_clock TEXT,
add_start_clock TEXT,
add_end_clock TEXT,
duration INT,
usable_count INT,
usable_range INT,
table_area_id BIGINT,
table_area_name TEXT,
table_area_id_list JSONB,
tenant_table_area_id BIGINT,
tenant_table_area_id_list JSONB,
site_id BIGINT,
site_name TEXT,
tenant_id BIGINT,
card_type_ids JSONB,
group_type INT,
system_group_type INT,
type INT,
effective_status INT,
is_enabled INT,
is_delete INT,
max_selectable_categories INT,
area_tag_type INT,
creator_name TEXT,
create_time TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.group_buy_packages IS 'ODS 原始明细表团购套餐主数据。来源C:/dev/LLTQ/export/test-json-doc/group_buy_packages.json分析group_buy_packages-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.id IS '【说明】门店侧套餐 ID本文件内部的主键。 【示例】2939215004469573用于门店侧套餐 ID本文件内部的主键。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.package_id IS '【说明】“上层套餐 ID” 或“总部/系统级套餐 ID”。 【示例】1814707240811572用于“上层套餐 ID” 或“总部/系统级套餐 ID”。 【JSON字段】package_id。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.package_name IS '【说明】团购套餐名称,用于前台展示和核销界面。 【示例】早场特惠一小时(团购套餐名称,用于前台展示和核销界面)。 【JSON字段】package_name。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.selling_price IS '【说明】语义上应该是“团购售卖价”(顾客在平台购买券时的成交价格)。 【示例】0.0(用于语义上应该是“团购售卖价”(顾客在平台购买券时的成交价格))。 【JSON字段】selling_price。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.coupon_money IS '【说明】券面值或内部结算面值,表示该套餐在门店侧对应的金额额度。 【示例】0.0(用于券面值或内部结算面值,表示该套餐在门店侧对应的金额额度)。 【JSON字段】coupon_money。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.date_type IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】date_type。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.date_info IS '【说明】预留字段,通常用来存储更细粒度的日期信息,如具体日期列表、节假日特殊规则(可能是 JSON 字符串或编码)。 【示例】0用于预留字段通常用来存储更细粒度的日期信息如具体日期列表、节假日特殊规则可能是 JSON 字符串或编码))。 【JSON字段】date_info。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.start_time IS '【说明】套餐开始生效的日期时间。 【示例】2025-10-27 00:00:00用于套餐开始生效的日期时间。 【JSON字段】start_time。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.end_time IS '【说明】套餐失效的日期时间(到这个时间点后不可使用)。 【示例】2026-10-28 00:00:00用于套餐失效的日期时间到这个时间点后不可使用。 【JSON字段】end_time。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.start_clock IS '【说明】每日可用起始时间点(第一段)。 【示例】00:00:00用于每日可用起始时间点第一段。 【JSON字段】start_clock。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.end_clock IS '【说明】每日可用的结束时间点(第一段)。 【示例】1.00:00:00用于每日可用的结束时间点第一段。 【JSON字段】end_clock。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.add_start_clock IS '【说明】附加可用时间段的起始时间(第二段)。 【示例】00:00:00用于附加可用时间段的起始时间第二段。 【JSON字段】add_start_clock。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.add_end_clock IS '【说明】附加时段结束时间,多数情况配合 "00:00:00" 或 "10:00:00" 使用。 【示例】1.00:00:00用于附加时段结束时间多数情况配合 "00:00:00" 或 "10:00:00" 使用)。 【JSON字段】add_end_clock。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.duration IS '【说明】套餐内包含的时长(秒)。 【示例】3600用于套餐内包含的时长。 【JSON字段】duration。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.usable_count IS '【说明】可使用次数上限。 【示例】9999999用于可使用次数上限。 【JSON字段】usable_count。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.usable_range IS '【说明】一般用于文字描述可用日期范围(例如“周一至周五”)。 【示例】NULL一般用于文字描述可用日期范围例如“周一至周五”。 【JSON字段】usable_range。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.table_area_id IS '【说明】原始设计应为“单一台区 ID”当套餐只限一个区域可以用这个字段存储。 【示例】0用于原始设计应为“单一台区 ID”当套餐只限一个区域可以用这个字段存储。 【JSON字段】table_area_id。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.table_area_name IS '【说明】套餐适用的“门店台区名称”,用于显示和筛选。 【示例】A区套餐适用的“门店台区名称”用于显示和筛选。 【JSON字段】table_area_name。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.table_area_id_list IS '【说明】用来存放具体台区 ID 列表(例如 "1,2,3"),实现更细粒度的台桌限制。 【示例】NULL用于用来存放具体台区 ID 列表(例如 "1,2,3"),实现更细粒度的台桌限制)。 【JSON字段】table_area_id_list。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.tenant_table_area_id IS '【说明】与 table_area_id 类似,是租户层级的台区 ID原本用于单区选择。 【示例】0与 table_area_id 类似,是租户层级的台区 ID原本用于单区选择。 【JSON字段】tenant_table_area_id。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.tenant_table_area_id_list IS '【说明】实际代表“台区集合 ID”或“租户台区配置 ID”用来限制套餐可用的台区范围。 【示例】2791960001957765用于实际代表“台区集合 ID”或“租户台区配置 ID”用来限制套餐可用的台区范围。 【JSON字段】tenant_table_area_id_list。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.site_id IS '【说明】门店 ID。 【示例】2790685415443269用于门店 ID。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.site_name IS '【说明】门店名称。 【示例】朗朗桌球(用于门店名称)。 【JSON字段】site_name。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.tenant_id IS '【说明】租户 ID品牌/商户 ID。 【示例】2790683160709957用于租户 ID品牌/商户 ID。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.card_type_ids IS '【说明】原意是“适用会员卡类型 ID 列表”,例如某套餐只允许某几种会员卡使用,可以在此配置。 【示例】0用于原意是“适用会员卡类型 ID 列表”,例如某套餐只允许某几种会员卡使用,可以在此配置)。 【JSON字段】card_type_ids。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.group_type IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】group_type。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.system_group_type IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】system_group_type。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.type IS '【说明】内部业务子类型,具体含义需要结合系统文档。 【示例】2用于内部业务子类型具体含义需要结合系统文档。 【JSON字段】type。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.effective_status IS '【说明】113 条。 【示例】1用于113 条)。 【JSON字段】effective_status。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.is_enabled IS '【说明】启用状态。 【示例】1用于启用状态。 【JSON字段】is_enabled。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.is_delete IS '【说明】逻辑删除标志。 【示例】0用于逻辑删除标志。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.max_selectable_categories IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】0来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】max_selectable_categories。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.area_tag_type IS '【说明】1 很可能代表“按台区标签限制”,例如 A区、中八区、包厢、KTV 等。 【示例】1用于1 很可能代表“按台区标签限制”,例如 A区、中八区、包厢、KTV 等)。 【JSON字段】area_tag_type。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.creator_name IS '【说明】创建人信息,一般包含“角色:姓名”。 【示例】店长:郑丽珊(用于创建人信息,一般包含“角色:姓名”)。 【JSON字段】creator_name。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.create_time IS '【说明】该套餐在系统中创建的时间。 【示例】2025-10-27 18:24:09用于该套餐在系统中创建的时间。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】group_buy_packages.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/group_buy_packages.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
CREATE TABLE IF NOT EXISTS billiards_ods.group_buy_redemption_records (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteName TEXT,
table_id BIGINT,
tableName TEXT,
tableAreaName TEXT,
tenant_table_area_id BIGINT,
order_trade_no TEXT,
order_settle_id BIGINT,
order_pay_id BIGINT,
order_coupon_id BIGINT,
order_coupon_channel INT,
coupon_code TEXT,
coupon_money NUMERIC(18,2),
coupon_origin_id BIGINT,
ledger_name TEXT,
ledger_group_name TEXT,
ledger_amount NUMERIC(18,2),
ledger_count NUMERIC(18,4),
ledger_unit_price NUMERIC(18,4),
ledger_status INT,
table_charge_seconds INT,
promotion_activity_id BIGINT,
promotion_coupon_id BIGINT,
promotion_seconds INT,
offer_type INT,
assistant_promotion_money NUMERIC(18,2),
assistant_service_promotion_money NUMERIC(18,2),
table_service_promotion_money NUMERIC(18,2),
goods_promotion_money NUMERIC(18,2),
recharge_promotion_money NUMERIC(18,2),
reward_promotion_money NUMERIC(18,2),
goodsOptionPrice NUMERIC(18,2),
salesman_name TEXT,
sales_man_org_id BIGINT,
salesman_role_id BIGINT,
salesman_user_id BIGINT,
operator_id BIGINT,
operator_name TEXT,
is_single_order INT,
is_delete INT,
create_time TIMESTAMP,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.group_buy_redemption_records IS 'ODS 原始明细表团购核销记录。来源C:/dev/LLTQ/export/test-json-doc/group_buy_redemption_records.json分析group_buy_redemption_records-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.id IS '【说明】本条“团购套餐流水”记录的 主键 ID。 【示例】2957924029615941用于本条“团购套餐流水”记录的 主键 ID。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.tenant_id IS '【说明】租户/品牌 ID。 【示例】2790683160709957用于租户/品牌 ID。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.site_id IS '【说明】门店 ID与其它 JSON 中一致。 【示例】2790685415443269用于门店 ID与其它 JSON 中一致)。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.siteName IS '【说明】门店名称,冗余展示用。 【示例】朗朗桌球(用于门店名称,冗余展示用)。 【JSON字段】siteName。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.table_id IS '【说明】球台 ID。 【示例】2793003705192517用于球台 ID。 【JSON字段】table_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.tableName IS '【说明】本次使用券所关联的 球台名称/台号。 【示例】A17用于本次使用券所关联的 球台名称/台号)。 【JSON字段】tableName。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.tableAreaName IS '【说明】该球台所属的 台区名称。 【示例】A区用于该球台所属的 台区名称)。 【JSON字段】tableAreaName。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.tenant_table_area_id IS '【说明】租户级台区分组 ID表示当前使用券的台桌所属的区域组合。 【示例】2791960001957765用于租户级台区分组 ID表示当前使用券的台桌所属的区域组合。 【JSON字段】tenant_table_area_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.order_trade_no IS '【说明】订单交易号,和其它消费明细(台费、商品、助教、团购)共用的订单主键。 【示例】2957858167230149用于订单交易号和其它消费明细台费、商品、助教、团购共用的订单主键。 【JSON字段】order_trade_no。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.order_settle_id IS '【说明】结算单 ID小票结账主键。 【示例】2957922914357125用于结算单 ID小票结账主键。 【JSON字段】order_settle_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.order_pay_id IS '【说明】指向支付记录表中的支付流水 ID。 【示例】0用于指向支付记录表中的支付流水 ID。 【JSON字段】order_pay_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.order_coupon_id IS '【说明】订单中“券使用记录”的 ID。 【示例】2957858168229573用于订单中“券使用记录”的 ID。 【JSON字段】order_coupon_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.order_coupon_channel IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】order_coupon_channel。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.coupon_code IS '【说明】团购券券码,核销时扫描/录入的字符串。 【示例】0107892475999用于团购券券码核销时扫描/录入的字符串)。 【JSON字段】coupon_code。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.coupon_money IS '【说明】本次核销时,这张券在门店侧对应的金额额度(“可抵扣金额”)。 【示例】48.0(用于本次核销时,这张券在门店侧对应的金额额度(“可抵扣金额”))。 【JSON字段】coupon_money。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.coupon_origin_id IS '【说明】平台/上游系统中的券记录主键 ID“券来源 ID”。 【示例】2957858168229573用于平台/上游系统中的券记录主键 ID“券来源 ID”。 【JSON字段】coupon_origin_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_name IS '【说明】台费侧关联的“团购项目名称”(记账名)。 【示例】全天A区中八一小时用于台费侧关联的“团购项目名称”记账名。 【JSON字段】ledger_name。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_group_name IS '【说明】团购项目所属的“记账分组名称”(例如“团购台费”“团购包厢”等)。 【示例】NULL用于团购项目所属的“记账分组名称”例如“团购台费”“团购包厢”等。 【JSON字段】ledger_group_name。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_amount IS '【说明】本次券实际冲抵台费的金额。 【示例】48.0(用于本次券实际冲抵台费的金额)。 【JSON字段】ledger_amount。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_count IS '【说明】按此次优惠实际计算的“核销秒数”。 【示例】3600用于按此次优惠实际计算的“核销秒数”。 【JSON字段】ledger_count。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_unit_price IS '【说明】对应台费的标准单价,单位元/小时从数值来看是类似29.9/小时这种定价)。 【示例】29.9(用于对应台费的标准单价,单位元/小时从数值来看是类似29.9/小时这种定价))。 【JSON字段】ledger_unit_price。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_status IS '【说明】流水状态。 【示例】1用于流水状态。 【JSON字段】ledger_status。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.table_charge_seconds IS '【说明】本次结算中该球台总计计费的秒数(整台的台费计费时间)。 【示例】3600用于本次结算中该球台总计计费的秒数整台的台费计费时间。 【JSON字段】table_charge_seconds。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.promotion_activity_id IS '【说明】团购/促销活动 ID。 【示例】2957858166460101用于团购/促销活动 ID。 【JSON字段】promotion_activity_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.promotion_coupon_id IS '【说明】团购套餐定义 ID。 【示例】2798727423528005用于团购套餐定义 ID。 【JSON字段】promotion_coupon_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.promotion_seconds IS '【说明】团购套餐定义的“标准时长”(券本身标称的可用时长)。 【示例】3600用于团购套餐定义的“标准时长”券本身标称的可用时长。 【JSON字段】promotion_seconds。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.offer_type IS '【说明】优惠类型。 【示例】1用于优惠类型。 【JSON字段】offer_type。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.assistant_promotion_money IS '【说明】分摊到“助教服务”的促销金额。 【示例】0.0(用于分摊到“助教服务”的促销金额)。 【JSON字段】assistant_promotion_money。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.assistant_service_promotion_money IS '【说明】进一步细分助教服务的促销金额。 【示例】0.0(用于进一步细分助教服务的促销金额)。 【JSON字段】assistant_service_promotion_money。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.table_service_promotion_money IS '【说明】本次券使用中,分摊到“台费服务费”部分的促销金额。 【示例】0.0(用于本次券使用中,分摊到“台费服务费”部分的促销金额)。 【JSON字段】table_service_promotion_money。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.goods_promotion_money IS '【说明】本次券使用中,分摊到“商品”部分的促销金额。 【示例】0.0(用于本次券使用中,分摊到“商品”部分的促销金额)。 【JSON字段】goods_promotion_money。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.recharge_promotion_money IS '【说明】来自“充值类优惠”的分摊金额(例如储值赠送部分)。 【示例】0.0(用于来自“充值类优惠”的分摊金额(例如储值赠送部分))。 【JSON字段】recharge_promotion_money。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.reward_promotion_money IS '【说明】本次促销中,属于“奖励金/积分抵扣”的金额。 【示例】0.0(用于本次促销中,属于“奖励金/积分抵扣”的金额)。 【JSON字段】reward_promotion_money。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.goodsOptionPrice IS '【说明】商品规格价格,用于商品类促销分摊时使用。 【示例】0.0(商品规格价格,用于商品类促销分摊时使用)。 【JSON字段】goodsOptionPrice。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.salesman_name IS '【说明】营业员姓名。 【示例】NULL用于营业员姓名。 【JSON字段】salesman_name。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.sales_man_org_id IS '【说明】营业员所属组织 ID。 【示例】0用于营业员所属组织 ID。 【JSON字段】sales_man_org_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.salesman_role_id IS '【说明】营业员角色 ID。 【示例】0用于营业员角色 ID。 【JSON字段】salesman_role_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.salesman_user_id IS '【说明】营业员/业务员用户 ID。 【示例】0用于营业员/业务员用户 ID。 【JSON字段】salesman_user_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.operator_id IS '【说明】执行本次核销/结算操作的 操作员 ID。 【示例】2790687322443013用于执行本次核销/结算操作的 操作员 ID。 【JSON字段】operator_id。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.operator_name IS '【说明】操作员名称(包含角色说明),与 operator_id 对应的冗余展示字段。 【示例】收银员:郑丽珊(用于操作员名称(包含角色说明),与 operator_id 对应的冗余展示字段)。 【JSON字段】operator_name。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.is_single_order IS '【说明】是否单独作为一条订单行。 【示例】1用于是否单独作为一条订单行。 【JSON字段】is_single_order。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.is_delete IS '【说明】逻辑删除标记0=否1=是)。。 【示例】0用于逻辑删除标记0=否1=是))。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.create_time IS '【说明】本条团购套餐使用流水创建时间(即券核销时间,或与结账时间接近)。 【示例】2025-11-09 23:35:57用于本条团购套餐使用流水创建时间即券核销时间或与结账时间接近。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】group_buy_redemption_records.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/group_buy_redemption_records.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
CREATE TABLE IF NOT EXISTS billiards_ods.settlement_ticket_details (
orderSettleId BIGINT PRIMARY KEY,
actualPayment NUMERIC(18,2),
adjustAmount NUMERIC(18,2),
assistantManualDiscount NUMERIC(18,2),
balanceAmount NUMERIC(18,2),
cashierName TEXT,
consumeMoney NUMERIC(18,2),
couponAmount NUMERIC(18,2),
deliveryAddress TEXT,
deliveryFee NUMERIC(18,2),
ledgerAmount NUMERIC(18,2),
memberDeductAmount NUMERIC(18,2),
memberOfferAmount NUMERIC(18,2),
onlineReturnAmount NUMERIC(18,2),
orderRemark TEXT,
orderSettleNumber BIGINT,
payMemberBalance NUMERIC(18,2),
payTime TIMESTAMP,
paymentMethod INT,
pointDiscountCost NUMERIC(18,2),
pointDiscountPrice NUMERIC(18,2),
prepayMoney NUMERIC(18,2),
refundAmount NUMERIC(18,2),
returnGoodsAmount NUMERIC(18,2),
rewardName TEXT,
settleType TEXT,
siteAddress TEXT,
siteBusinessTel TEXT,
siteId BIGINT,
siteName TEXT,
tenantId BIGINT,
tenantName TEXT,
ticketCustomContent TEXT,
ticketRemark TEXT,
voucherMoney NUMERIC(18,2),
memberProfile JSONB,
orderItem JSONB,
tenantMemberCardLogs JSONB,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.settlement_ticket_details IS 'ODS 原始明细表结算小票明细。来源C:/dev/LLTQ/export/test-json-doc/settlement_ticket_details.json分析settlement_ticket_details-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.orderSettleId IS '【说明】结算单 ID和顶层字段相同再次冗余。 【示例】2957922914357125用于结算单 ID和顶层字段相同再次冗余。 【JSON字段】orderSettleId。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.actualPayment IS '【说明】本单实际支付金额总和(顾客本次实际付出:现金 + 线上 + 会员余额等)。 【示例】NULL用于本单实际支付金额总和顾客本次实际付出现金 + 线上 + 会员余额等))。 【JSON字段】actualPayment。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.adjustAmount IS '【说明】人工调价/整单调整金额(例如手工改价、折扣调整),是所有类型的手工调整合计。 【示例】NULL用于人工调价/整单调整金额(例如手工改价、折扣调整),是所有类型的手工调整合计)。 【JSON字段】adjustAmount。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.assistantManualDiscount IS '【说明】针对“助教项目”的人工减免金额汇总(整单维度)。 【示例】NULL用于针对“助教项目”的人工减免金额汇总整单维度。 【JSON字段】assistantManualDiscount。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.balanceAmount IS '【说明】本单通过“会员余额/储值卡”支付的金额(从余额中扣除的总额)。 【示例】NULL用于本单通过“会员余额/储值卡”支付的金额(从余额中扣除的总额))。 【JSON字段】balanceAmount。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.cashierName IS '【说明】本单结算操作员名称(带角色前缀文字)。 【示例】NULL用于本单结算操作员名称带角色前缀文字。 【JSON字段】cashierName。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.consumeMoney IS '【说明】本单“消费金额总计”(原价层面),即台费 + 商品 + 助教 + 服务等消费项目的金额总和(未扣除各类优惠)。 【示例】NULL用于本单“消费金额总计”原价层面即台费 + 商品 + 助教 + 服务等消费项目的金额总和(未扣除各类优惠))。 【JSON字段】consumeMoney。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.couponAmount IS '【说明】本单由优惠券抵扣的金额汇总。 【示例】NULL用于本单由优惠券抵扣的金额汇总。 【JSON字段】couponAmount。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.deliveryAddress IS '【说明】配送地址(若存在外送业务时使用)。 【示例】NULL用于配送地址若存在外送业务时使用。 【JSON字段】deliveryAddress。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.deliveryFee IS '【说明】配送费金额(如果支持外送业务)。 【示例】NULL用于配送费金额如果支持外送业务。 【JSON字段】deliveryFee。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.ledgerAmount IS '【说明】商品小计金额(通常 = 单价 × 数量,未考虑其他折扣)。 【示例】NULL用于商品小计金额通常 = 单价 × 数量,未考虑其他折扣))。 【JSON字段】ledgerAmount。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.memberDeductAmount IS '【说明】会员抵扣的某种数量或金额(例如积分抵现金额、次卡次数抵扣等),当前数据未启用。 【示例】NULL用于会员抵扣的某种数量或金额例如积分抵现金额、次卡次数抵扣等当前数据未启用。 【JSON字段】memberDeductAmount。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.memberOfferAmount IS '【说明】由“会员权益/折扣”产生的优惠金额总计(整单维度)。 【示例】NULL用于由“会员权益/折扣”产生的优惠金额总计(整单维度))。 【JSON字段】memberOfferAmount。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.onlineReturnAmount IS '【说明】本单通过线上支付渠道退回的金额(如微信/支付宝退款)。 【示例】NULL用于本单通过线上支付渠道退回的金额如微信/支付宝退款))。 【JSON字段】onlineReturnAmount。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.orderRemark IS '【说明】订单备注,由收银员录入,用于记录与本单相关的特殊说明。 【示例】NULL订单备注由收银员录入用于记录与本单相关的特殊说明。 【JSON字段】orderRemark。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.orderSettleNumber IS '【说明】结算单编号(与 ID 独立的一套编号体系,如流水号)。 【示例】NULL用于结算单编号与 ID 独立的一套编号体系,如流水号))。 【JSON字段】orderSettleNumber。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.payMemberBalance IS '【说明】使用会员余额支付的金额,用于区分与 balanceAmount 的不同维度(如“本次支付使用余额部分”与“余额本身变化”等),当前未实际使用。 【示例】NULL使用会员余额支付的金额用于区分与 balanceAmount 的不同维度(如“本次支付使用余额部分”与“余额本身变化”等),当前未实际使用)。 【JSON字段】payMemberBalance。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.payTime IS '【说明】本单最终支付成功时间。 【示例】NULL用于本单最终支付成功时间。 【JSON字段】payTime。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.paymentMethod IS '【说明】结算主支付方式编码(汇总视角)。 【示例】NULL用于结算主支付方式编码汇总视角。 【JSON字段】paymentMethod。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.pointDiscountCost IS '【说明】积分抵扣对应的成本金额(成本侧)。 【示例】NULL用于积分抵扣对应的成本金额成本侧。 【JSON字段】pointDiscountCost。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.pointDiscountPrice IS '【说明】积分抵扣对应的金额(售价侧)。 【示例】NULL用于积分抵扣对应的金额售价侧。 【JSON字段】pointDiscountPrice。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.prepayMoney IS '【说明】预付金/定金在本单中使用的金额。 【示例】NULL用于预付金/定金在本单中使用的金额)。 【JSON字段】prepayMoney。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.refundAmount IS '【说明】本单涉及的退款金额(汇总)。 【示例】NULL用于本单涉及的退款金额汇总。 【JSON字段】refundAmount。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.returnGoodsAmount IS '【说明】本单涉及的退货金额汇总。 【示例】NULL用于本单涉及的退货金额汇总。 【JSON字段】returnGoodsAmount。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.rewardName IS '【说明】用于标识本单适用的激励方案名称,可能用于内部绩效或活动名称展示。 【示例】NULL用于标识本单适用的激励方案名称可能用于内部绩效或活动名称展示。 【JSON字段】rewardName。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.settleType IS '【说明】结算类型字符串标识。 【示例】NULL用于结算类型字符串标识。 【JSON字段】settleType。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.siteAddress IS '【说明】门店地址(详细地址)。 【示例】NULL用于门店地址详细地址。 【JSON字段】siteAddress。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.siteBusinessTel IS '【说明】门店电话。 【示例】NULL用于门店电话。 【JSON字段】siteBusinessTel。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.siteId IS '【说明】门店 ID。 【示例】NULL用于门店 ID。 【JSON字段】siteId。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.siteName IS '【说明】门店名称,如“朗朗桌球”。 【示例】NULL用于门店名称如“朗朗桌球”。 【JSON字段】siteName。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.tenantId IS '【说明】租户 / 商户 ID品牌维度。 【示例】NULL用于租户 / 商户 ID品牌维度。 【JSON字段】tenantId。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.tenantName IS '【说明】租户名称,如“朗朗桌球”。 【示例】NULL用于租户名称如“朗朗桌球”。 【JSON字段】tenantName。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.ticketCustomContent IS '【说明】自定义小票内容,如商家自定义宣传语、条款等。 【示例】NULL用于自定义小票内容如商家自定义宣传语、条款等。 【JSON字段】ticketCustomContent。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.ticketRemark IS '【说明】小票备注内容,可用于打印在小票底部或顶部(例如活动说明、特别提示)。 【示例】NULL小票备注内容可用于打印在小票底部或顶部例如活动说明、特别提示。 【JSON字段】ticketRemark。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.voucherMoney IS '【说明】代金券类金额字段(可能用于某类“代金券余额”或“券面值”记录)。 【示例】NULL代金券类金额字段可能用于某类“代金券余额”或“券面值”记录。 【JSON字段】voucherMoney。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.memberProfile IS '【说明】不是会员卡主键,而是本次结账时的会员信息快照。 【示例】NULL用于不是会员卡主键而是本次结账时的会员信息快照。 【JSON字段】memberProfile。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.orderItem IS '【说明】本次结算对应的“订单明细列表”,这部分是连接“台费流水 / 商品出库 / 券使用”等多个子领域的关键结构。 【示例】NULL用于本次结算对应的“订单明细列表”这部分是连接“台费流水 / 商品出库 / 券使用”等多个子领域的关键结构)。 【JSON字段】orderItem。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.tenantMemberCardLogs IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】tenantMemberCardLogs。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】settlement_ticket_details.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/settlement_ticket_details.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
CREATE TABLE IF NOT EXISTS billiards_ods.store_goods_master (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteName TEXT,
tenant_goods_id BIGINT,
goods_name TEXT,
goods_bar_code TEXT,
goods_category_id BIGINT,
goods_second_category_id BIGINT,
oneCategoryName TEXT,
twoCategoryName TEXT,
unit TEXT,
sale_price NUMERIC(18,4),
cost_price NUMERIC(18,4),
cost_price_type INT,
min_discount_price NUMERIC(18,4),
safe_stock NUMERIC(18,4),
stock NUMERIC(18,4),
stock_A NUMERIC(18,4),
sale_num NUMERIC(18,4),
total_purchase_cost NUMERIC(18,4),
total_sales NUMERIC(18,4),
average_monthly_sales NUMERIC(18,4),
batch_stock_quantity NUMERIC(18,2),
days_available INT,
provisional_total_cost NUMERIC(18,2),
enable_status INT,
audit_status INT,
goods_state INT,
is_delete INT,
is_warehousing INT,
able_discount INT,
able_site_transfer INT,
forbid_sell_status INT,
"freeze" INT,
send_state INT,
custom_label_type INT,
option_required INT,
sale_channel INT,
sort INT,
remark TEXT,
pinyin_initial TEXT,
goods_cover TEXT,
create_time TIMESTAMP,
update_time TIMESTAMP,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.store_goods_master IS 'ODS 原始明细表门店商品主数据。来源C:/dev/LLTQ/export/test-json-doc/store_goods_master.json分析store_goods_master-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.store_goods_master.id IS '【说明】门店商品 ID门店维度的商品主键。 【示例】2793025851560005用于门店商品 ID门店维度的商品主键。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.store_goods_master.tenant_id IS '【说明】租户/品牌 ID。 【示例】2790683160709957用于租户/品牌 ID。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.store_goods_master.site_id IS '【说明】门店 ID。 【示例】2790685415443269用于门店 ID。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.store_goods_master.siteName IS '【说明】门店名称,是对 site_id 的冗余展示,方便直接阅读,无需再去关联门店档案。 【示例】朗朗桌球(用于门店名称,是对 site_id 的冗余展示,方便直接阅读,无需再去关联门店档案)。 【JSON字段】siteName。';
COMMENT ON COLUMN billiards_ods.store_goods_master.tenant_goods_id IS '【说明】租户/品牌维度的商品 ID相当于“全局商品 ID”。 【示例】2792178593255301用于租户/品牌维度的商品 ID相当于“全局商品 ID”。 【JSON字段】tenant_goods_id。';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_name IS '【说明】商品名称,例如“合味道泡面”“地道肠”“麻将房茶位费”等。 【示例】合味道泡面(用于商品名称,例如“合味道泡面”“地道肠”“麻将房茶位费”等)。 【JSON字段】goods_name。';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_bar_code IS '【说明】商品条形码(如 EAN-13 编码),用于扫码销售。 【示例】NULL商品条形码如 EAN-13 编码),用于扫码销售)。 【JSON字段】goods_bar_code。';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_category_id IS '【说明】商品一级分类 ID。 【示例】2791941988405125用于商品一级分类 ID。 【JSON字段】goods_category_id。';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_second_category_id IS '【说明】商品二级分类 ID。 【示例】2793236829620037用于商品二级分类 ID。 【JSON字段】goods_second_category_id。';
COMMENT ON COLUMN billiards_ods.store_goods_master.oneCategoryName IS '【说明】一级分类名称,如“零食”“酒水”“服务费”等。 【示例】零食(用于一级分类名称,如“零食”“酒水”“服务费”等)。 【JSON字段】oneCategoryName。';
COMMENT ON COLUMN billiards_ods.store_goods_master.twoCategoryName IS '【说明】二级分类名称,如“面”“洋酒”“纸巾”等。 【示例】面(用于二级分类名称,如“面”“洋酒”“纸巾”等)。 【JSON字段】twoCategoryName。';
COMMENT ON COLUMN billiards_ods.store_goods_master.unit IS '【说明】商品计量单位(销售单位)。 【示例】桶(用于商品计量单位(销售单位))。 【JSON字段】unit。';
COMMENT ON COLUMN billiards_ods.store_goods_master.sale_price IS '【说明】商品标准销售价(挂牌价),单位为元。 【示例】12.0(用于商品标准销售价(挂牌价),单位为元)。 【JSON字段】sale_price。';
COMMENT ON COLUMN billiards_ods.store_goods_master.cost_price IS '【说明】商品成本价(单件成本)。 【示例】0.0(用于商品成本价(单件成本))。 【JSON字段】cost_price。';
COMMENT ON COLUMN billiards_ods.store_goods_master.cost_price_type IS '【说明】1 代表使用“固定成本价”(手工维护的 cost_priceprovisional_total_cost 按“数量 × cost_price”算。 【示例】1用于1 代表使用“固定成本价”(手工维护的 cost_priceprovisional_total_cost 按“数量 × cost_price”算。 【JSON字段】cost_price_type。';
COMMENT ON COLUMN billiards_ods.store_goods_master.min_discount_price IS '【说明】最低允许成交价(限价)。 【示例】7.0(用于最低允许成交价(限价))。 【JSON字段】min_discount_price。';
COMMENT ON COLUMN billiards_ods.store_goods_master.safe_stock IS '【说明】安全库存量(阈值),低于该值时系统可以提示补货。 【示例】0用于安全库存量阈值低于该值时系统可以提示补货。 【JSON字段】safe_stock。';
COMMENT ON COLUMN billiards_ods.store_goods_master.stock IS '【说明】当前可用库存数量(以 unit 为单位)。 【示例】18用于当前可用库存数量以 unit 为单位))。 【JSON字段】stock。';
COMMENT ON COLUMN billiards_ods.store_goods_master.stock_A IS '【说明】副单位库存数量。 【示例】0用于副单位库存数量。 【JSON字段】stock_A。';
COMMENT ON COLUMN billiards_ods.store_goods_master.sale_num IS '【说明】在当前统计口径下的销售数量(总销量,单位同 unit。 【示例】104用于在当前统计口径下的销售数量总销量单位同 unit。 【JSON字段】sale_num。';
COMMENT ON COLUMN billiards_ods.store_goods_master.total_purchase_cost IS '【说明】总采购成本,单位为元。 【示例】0.0(用于总采购成本,单位为元)。 【JSON字段】total_purchase_cost。';
COMMENT ON COLUMN billiards_ods.store_goods_master.total_sales IS '【说明】累计销售数量。 【示例】104用于累计销售数量。 【JSON字段】total_sales。';
COMMENT ON COLUMN billiards_ods.store_goods_master.average_monthly_sales IS '【说明】平均月销量(件/月),根据某个统计周期内的销售数据折算而来。 【示例】1.32(用于平均月销量(件/月),根据某个统计周期内的销售数据折算而来)。 【JSON字段】average_monthly_sales。';
COMMENT ON COLUMN billiards_ods.store_goods_master.batch_stock_quantity IS '【说明】当前“批次”的库存数量(主单位)。 【示例】43用于当前“批次”的库存数量主单位。 【JSON字段】batch_stock_quantity。';
COMMENT ON COLUMN billiards_ods.store_goods_master.days_available IS '【说明】商品“在架天数”或“可售天数”,大致等于当前时间减去首次上架时间。 【示例】13用于商品“在架天数”或“可售天数”大致等于当前时间减去首次上架时间。 【JSON字段】days_available。';
COMMENT ON COLUMN billiards_ods.store_goods_master.provisional_total_cost IS '【说明】暂估总成本,单位为元。 【示例】0.0(用于暂估总成本,单位为元)。 【JSON字段】provisional_total_cost。';
COMMENT ON COLUMN billiards_ods.store_goods_master.enable_status IS '【说明】控制商品档案是否参与任何业务(库存、销售等)。 【示例】1用于控制商品档案是否参与任何业务库存、销售等。 【JSON字段】enable_status。';
COMMENT ON COLUMN billiards_ods.store_goods_master.audit_status IS '【说明】观察值:全部为 2。 【示例】2用于观察值全部为 2。 【JSON字段】audit_status。';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_state IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】1来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】goods_state。';
COMMENT ON COLUMN billiards_ods.store_goods_master.is_delete IS '【说明】逻辑删除标志。 【示例】0用于逻辑删除标志。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.store_goods_master.is_warehousing IS '【说明】是否纳入库存管理。 【示例】1用于是否纳入库存管理。 【JSON字段】is_warehousing。';
COMMENT ON COLUMN billiards_ods.store_goods_master.able_discount IS '【说明】是否允许参与折扣。 【示例】1用于是否允许参与折扣。 【JSON字段】able_discount。';
COMMENT ON COLUMN billiards_ods.store_goods_master.able_site_transfer IS '【说明】表示是否允许跨门店调拨或跨站点共享库存。 【示例】2用于表示是否允许跨门店调拨或跨站点共享库存。 【JSON字段】able_site_transfer。';
COMMENT ON COLUMN billiards_ods.store_goods_master.forbid_sell_status IS '【说明】观察值:全部为 1。 【示例】1用于观察值全部为 1。 【JSON字段】forbid_sell_status。';
COMMENT ON COLUMN billiards_ods.store_goods_master.send_state IS '【说明】观察值:全部为 1。 【示例】1用于观察值全部为 1。 【JSON字段】send_state。';
COMMENT ON COLUMN billiards_ods.store_goods_master.custom_label_type IS '【说明】自定义标签类型。 【示例】2用于自定义标签类型。 【JSON字段】custom_label_type。';
COMMENT ON COLUMN billiards_ods.store_goods_master.option_required IS '【说明】是否需要在销售时选择规格/选项。 【示例】1用于是否需要在销售时选择规格/选项)。 【JSON字段】option_required。';
COMMENT ON COLUMN billiards_ods.store_goods_master.sale_channel IS '【说明】销售渠道类型。 【示例】1用于销售渠道类型。 【JSON字段】sale_channel。';
COMMENT ON COLUMN billiards_ods.store_goods_master.sort IS '【说明】排序权重,用于前端商品列表展示时的排版顺序,数值越小/越大哪个优先,具体规则看系统设定(一般是数值越小排序越靠前)。 【示例】100排序权重用于前端商品列表展示时的排版顺序数值越小/越大哪个优先,具体规则看系统设定(一般是数值越小排序越靠前))。 【JSON字段】sort。';
COMMENT ON COLUMN billiards_ods.store_goods_master.remark IS '【说明】商品备注(可以写口味说明、供应商、注意事项等)。 【示例】NULL用于商品备注可以写口味说明、供应商、注意事项等。 【JSON字段】remark。';
COMMENT ON COLUMN billiards_ods.store_goods_master.pinyin_initial IS '【说明】商品名称的拼音首字母缩写,有时多个别名用逗号分隔。 【示例】HWDPM,GWDPM用于商品名称的拼音首字母缩写有时多个别名用逗号分隔。 【JSON字段】pinyin_initial。';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_cover IS '【说明】商品图片 URL如 OSS 对象存储地址),用于前端展示商品图片。 【示例】https://oss.ficoo.vip/admin/8M1WM7_1753204221337.jpg商品图片 URL如 OSS 对象存储地址),用于前端展示商品图片)。 【JSON字段】goods_cover。';
COMMENT ON COLUMN billiards_ods.store_goods_master.create_time IS '【说明】门店商品档案创建时间(商品在门店建立档案的时间点)。 【示例】2025-07-16 11:52:51用于门店商品档案创建时间商品在门店建立档案的时间点。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.store_goods_master.update_time IS '【说明】最后一次修改该商品档案的时间(包括价格调整、状态变更等)。 【示例】2025-11-09 07:23:47用于最后一次修改该商品档案的时间包括价格调整、状态变更等。 【JSON字段】update_time。';
COMMENT ON COLUMN billiards_ods.store_goods_master.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
COMMENT ON COLUMN billiards_ods.store_goods_master.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】store_goods_master.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.store_goods_master.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/store_goods_master.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.store_goods_master.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';
CREATE TABLE IF NOT EXISTS billiards_ods.store_goods_sales_records (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteid BIGINT,
sitename TEXT,
site_goods_id BIGINT,
tenant_goods_id BIGINT,
order_settle_id BIGINT,
order_trade_no TEXT,
order_goods_id BIGINT,
ordergoodsid BIGINT,
order_pay_id BIGINT,
order_coupon_id BIGINT,
ledger_name TEXT,
ledger_group_name TEXT,
ledger_amount NUMERIC(18,2),
ledger_count NUMERIC(18,4),
ledger_unit_price NUMERIC(18,4),
ledger_status INT,
discount_money NUMERIC(18,2),
discount_price NUMERIC(18,2),
coupon_deduct_money NUMERIC(18,2),
member_discount_amount NUMERIC(18,2),
option_coupon_deduct_money NUMERIC(18,2),
option_member_discount_money NUMERIC(18,2),
point_discount_money NUMERIC(18,2),
point_discount_money_cost NUMERIC(18,2),
real_goods_money NUMERIC(18,2),
cost_money NUMERIC(18,2),
push_money NUMERIC(18,2),
sales_type INT,
is_single_order INT,
is_delete INT,
goods_remark TEXT,
option_price NUMERIC(18,2),
option_value_name TEXT,
option_name TEXT,
member_coupon_id BIGINT,
package_coupon_id BIGINT,
sales_man_org_id BIGINT,
salesman_name TEXT,
salesman_role_id BIGINT,
salesman_user_id BIGINT,
operator_id BIGINT,
operator_name TEXT,
openSalesman TEXT,
returns_number INT,
site_table_id BIGINT,
tenant_goods_business_id BIGINT,
tenant_goods_category_id BIGINT,
create_time TIMESTAMP,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.store_goods_sales_records IS 'ODS 原始明细表门店商品销售流水。来源C:/dev/LLTQ/export/test-json-doc/store_goods_sales_records.json分析store_goods_sales_records-Analysis.md。字段以导出原样为主ETL 补充 source_file/source_endpoint/fetched_at并保留 payload 为原始记录快照。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.id IS '【说明】本条「门店销售流水」记录的主键 ID。 【示例】2957924029550406用于本条「门店销售流水」记录的主键 ID。 【JSON字段】id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.tenant_id IS '【说明】租户/品牌 ID。 【示例】2790683160709957用于租户/品牌 ID。 【JSON字段】tenant_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.site_id IS '【说明】门店 ID系统主键。 【示例】2790685415443269用于门店 ID系统主键。 【JSON字段】site_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.siteid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】siteid。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.sitename IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】sitename。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.site_goods_id IS '【说明】门店商品 ID。 【示例】2793026176012357用于门店商品 ID。 【JSON字段】site_goods_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.tenant_goods_id IS '【说明】租户(品牌)级商品 ID全局商品 ID。 【示例】2792115932417925用于租户品牌级商品 ID全局商品 ID。 【JSON字段】tenant_goods_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.order_settle_id IS '【说明】订单结算 ID结账单主键。 【示例】2957922914357125用于订单结算 ID结账单主键。 【JSON字段】order_settle_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.order_trade_no IS '【说明】订单交易号(业务单号)。 【示例】2957858167230149用于订单交易号业务单号。 【JSON字段】order_trade_no。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.order_goods_id IS '【说明】订单商品明细 ID订单内部的商品行主键。 【示例】2957858456391557用于订单商品明细 ID订单内部的商品行主键。 【JSON字段】order_goods_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ordergoodsid IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。 【示例】NULL来自 JSON 导出的原始字段,用于保留业务取值)。 【JSON字段】ordergoodsid。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.order_pay_id IS '【说明】关联支付记录的 ID。 【示例】0用于关联支付记录的 ID。 【JSON字段】order_pay_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.order_coupon_id IS '【说明】订单级优惠券 ID。 【示例】0用于订单级优惠券 ID。 【JSON字段】order_coupon_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_name IS '【说明】销售项目名称(商品名称),例如 “哇哈哈矿泉水”“地道肠”“东方树叶”等。 【示例】哇哈哈矿泉水(用于销售项目名称(商品名称),例如 “哇哈哈矿泉水”“地道肠”“东方树叶”等)。 【JSON字段】ledger_name。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_group_name IS '【说明】销售项目所属的「门店内部分组名称」,类似前台菜单分组或大类标签。 【示例】酒水(用于销售项目所属的「门店内部分组名称」,类似前台菜单分组或大类标签)。 【JSON字段】ledger_group_name。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_amount IS '【说明】原始应收金额,公式上接近 ledger_unit_price × ledger_count。 【示例】5.0(用于原始应收金额,公式上接近 ledger_unit_price × ledger_count。 【JSON字段】ledger_amount。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_count IS '【说明】销售数量(以 unit 为单位unit 字段在门店商品档案中)。 【示例】1用于销售数量以 unit 为单位unit 字段在门店商品档案中))。 【JSON字段】ledger_count。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_unit_price IS '【说明】商品在该次销售中的「结算单价」(元/单位)。 【示例】5.0(用于商品在该次销售中的「结算单价」(元/单位))。 【JSON字段】ledger_unit_price。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_status IS '【说明】销售流水状态。 【示例】1用于销售流水状态。 【JSON字段】ledger_status。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.discount_money IS '【说明】本条销售明细的「价格优惠金额」,即原价部分被减免掉的金额。 【示例】0.0(用于本条销售明细的「价格优惠金额」,即原价部分被减免掉的金额)。 【JSON字段】discount_money。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.discount_price IS '【说明】折后单价(元/单位)。 【示例】5.0(用于折后单价(元/单位))。 【JSON字段】discount_price。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.coupon_deduct_money IS '【说明】被优惠券 / 团购券直接抵扣到这条商品明细上的金额。 【示例】0.0(用于被优惠券 / 团购券直接抵扣到这条商品明细上的金额)。 【JSON字段】coupon_deduct_money。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.member_discount_amount IS '【说明】由会员身份(会员折扣)针对这一行商品产生的优惠金额。 【示例】0.0(用于由会员身份(会员折扣)针对这一行商品产生的优惠金额)。 【JSON字段】member_discount_amount。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.option_coupon_deduct_money IS '【说明】由优惠券抵扣“选项价格”的金额。 【示例】0.0(用于由优惠券抵扣“选项价格”的金额)。 【JSON字段】option_coupon_deduct_money。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.option_member_discount_money IS '【说明】由会员折扣作用在“选项价格”上的优惠金额。 【示例】0.0(用于由会员折扣作用在“选项价格”上的优惠金额)。 【JSON字段】option_member_discount_money。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.point_discount_money IS '【说明】由积分抵扣的金额(顾客兑换积分抵现金额)。 【示例】0.0(用于由积分抵扣的金额(顾客兑换积分抵现金额))。 【JSON字段】point_discount_money。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.point_discount_money_cost IS '【说明】积分抵扣对应的“成本金额”(后台核算用),例如按积分成本来计提费用。 【示例】0.0(用于积分抵扣对应的“成本金额”(后台核算用),例如按积分成本来计提费用)。 【JSON字段】point_discount_money_cost。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.real_goods_money IS '【说明】商品实际入账金额(考虑折扣、可能还会考虑其它抵扣后的实际销售金额)。 【示例】5.0(用于商品实际入账金额(考虑折扣、可能还会考虑其它抵扣后的实际销售金额))。 【JSON字段】real_goods_money。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.cost_money IS '【说明】本条销售对应的成本金额(以元计)。 【示例】0.01(用于本条销售对应的成本金额(以元计))。 【JSON字段】cost_money。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.push_money IS '【说明】本条销售对应的提成金额(给营业员/促销员的提成)。 【示例】0.0(用于本条销售对应的提成金额(给营业员/促销员的提成))。 【JSON字段】push_money。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.sales_type IS '【说明】销售类型。 【示例】1用于销售类型。 【JSON字段】sales_type。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.is_single_order IS '【说明】是否单独订单标识。 【示例】1用于是否单独订单标识。 【JSON字段】is_single_order。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.is_delete IS '【说明】逻辑删除标志。 【示例】0用于逻辑删除标志。 【JSON字段】is_delete。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.goods_remark IS '【说明】商品备注/口味说明/特殊说明。 【示例】哇哈哈矿泉水(用于商品备注/口味说明/特殊说明)。 【JSON字段】goods_remark。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.option_price IS '【说明】商品选项(规格/加料)的附加价格。 【示例】0.0(用于商品选项(规格/加料)的附加价格)。 【JSON字段】option_price。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.option_value_name IS '【说明】商品选项名称(如规格、口味:大杯/小杯,不加冰等)。 【示例】NULL用于商品选项名称如规格、口味大杯/小杯,不加冰等))。 【JSON字段】option_value_name。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.option_name IS '【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【JSON字段】option_name。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.member_coupon_id IS '【说明】会员券 ID比如会员专享优惠券。 【示例】0用于会员券 ID比如会员专享优惠券。 【JSON字段】member_coupon_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.package_coupon_id IS '【说明】套餐券 ID。 【示例】0用于套餐券 ID。 【JSON字段】package_coupon_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.sales_man_org_id IS '【说明】营业员所属组织/部门 ID。 【示例】0用于营业员所属组织/部门 ID。 【JSON字段】sales_man_org_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.salesman_name IS '【说明】营业员姓名(如果有为具体销售员记业绩,则在此填姓名)。 【示例】NULL用于营业员姓名如果有为具体销售员记业绩则在此填姓名。 【JSON字段】salesman_name。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.salesman_role_id IS '【说明】营业员的系统角色 ID例如某个角色代码表示“销售员”。 【示例】0用于营业员的系统角色 ID例如某个角色代码表示“销售员”。 【JSON字段】salesman_role_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.salesman_user_id IS '【说明】营业员用户 ID系统账号 ID。 【示例】0用于营业员用户 ID系统账号 ID。 【JSON字段】salesman_user_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.operator_id IS '【说明】操作员 ID录入这笔销售的员工。 【示例】2790687322443013用于操作员 ID录入这笔销售的员工。 【JSON字段】operator_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.operator_name IS '【说明】操作员姓名,文字冗余。 【示例】收银员:郑丽珊(用于操作员姓名,文字冗余)。 【JSON字段】operator_name。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.openSalesman IS '【说明】来自 JSON 导出的原始字段,用于保留业务取值。。 【示例】2来自 JSON 导出的原始字段,用于保留业务取值。)。 【JSON字段】openSalesman。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.returns_number IS '【说明】退货数量(如果这条明细做了退货,会记录退货数量)。 【示例】0用于退货数量如果这条明细做了退货会记录退货数量。 【JSON字段】returns_number。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.site_table_id IS '【说明】球台 ID。 【示例】2793003705192517用于球台 ID。 【JSON字段】site_table_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.tenant_goods_business_id IS '【说明】租户级商品「业务大类」ID例如“零食类”“酒水类”等更高维度。 【示例】2790683528317768用于租户级商品「业务大类」ID例如“零食类”“酒水类”等更高维度。 【JSON字段】tenant_goods_business_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.tenant_goods_category_id IS '【说明】租户级商品一级分类 ID。 【示例】2790683528350540用于租户级商品一级分类 ID。 【JSON字段】tenant_goods_category_id。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.create_time IS '【说明】销售记录创建时间,通常就是结账时间或录入时间。 【示例】2025-11-09 23:35:57用于销售记录创建时间通常就是结账时间或录入时间。 【JSON字段】create_time。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.payload IS '【说明】完整原始 JSON 记录快照,用于回溯与二次解析。 【示例】{...}(完整原始 JSON 记录快照,用于回溯与二次解析)。 【JSON字段】$(整条记录)。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.source_file IS '【说明】ETL 元数据:原始导出文件名,用于数据追溯。 【示例】store_goods_sales_records.jsonETL 元数据:原始导出文件名,用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.source_endpoint IS '【说明】ETL 元数据:采集来源(接口/文件路径),用于数据追溯。 【示例】C:/dev/LLTQ/export/test-json-doc/store_goods_sales_records.jsonETL 元数据:采集来源(接口/文件路径),用于数据追溯)。 【JSON字段】无ETL元数据。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.fetched_at IS '【说明】ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理。 【示例】2025-11-10T00:00:00+08:00ETL 元数据:采集/入库时间戳,用于口径对齐与增量处理)。 【JSON字段】无ETL元数据。';