CREATE TABLE gx_cc_daily_park_omni_revenue_ods
(
    id                          BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
    report_date                 DATE           NOT NULL COMMENT '报告日期',
    park                        VARCHAR(100)   NOT NULL COMMENT '园区名称',
    total_omni_revenue          DECIMAL(15, 2) NOT NULL COMMENT '总收入',
    business_created_timestamp  DATE           NOT NULL COMMENT '业务创建时间',
    business_modified_timestamp DATE           NOT NULL COMMENT '业务修改时间',
    created_by                  VARCHAR(50)    NOT NULL COMMENT '创建人',
    etl_created_timestamp       DATETIME       NOT NULL COMMENT 'ETL创建时间',
    etl_modified_timestamp      DATETIME       NOT NULL COMMENT 'ETL修改时间',
    UNIQUE KEY idx_report_date_park (report_date, park) COMMENT '日期和园区唯一索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='门票总收入';

CREATE TABLE gx_cc_daily_park_ig_revenue_ods
(
    id                          BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
    report_date                 DATE           NOT NULL COMMENT '报告日期',
    park                        VARCHAR(100)   NOT NULL COMMENT '园区名称',
    total_ig_revenue            DECIMAL(15, 2) NOT NULL COMMENT '总收入',
    business_created_timestamp  DATE           NOT NULL COMMENT '业务创建时间',
    business_modified_timestamp DATE           NOT NULL COMMENT '业务修改时间',
    created_by                  VARCHAR(50)    NOT NULL COMMENT '创建人',
    etl_created_timestamp       DATETIME       NOT NULL COMMENT 'ETL创建时间',
    etl_modified_timestamp      DATETIME       NOT NULL COMMENT 'ETL修改时间',
    UNIQUE KEY idx_report_date_park (report_date, park) COMMENT '日期和园区唯一索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='园区内交易总收入';
-- 出勤表
CREATE TABLE IF NOT EXISTS ods_attendance
(
    id
    INT
    PRIMARY
    KEY
    AUTO_INCREMENT
    COMMENT
    '自增ID',
    report_hour
    DATETIME
    NOT
    NULL
    COMMENT
    '报表小时（精确到小时）',
    park
    VARCHAR
(
    100
) NOT NULL COMMENT '乐园名称',
    total_attendance INT NOT NULL DEFAULT 0 COMMENT '总出勤人数',
    annual_pass INT NOT NULL DEFAULT 0 COMMENT '年卡用户出勤人数',
    vip_attendance INT NOT NULL DEFAULT 0 COMMENT 'VIP出勤人数',
    -- 添加 report_hour 和 park 的联合唯一索引，避免重复数据
    UNIQUE KEY uk_report_park
(
    report_hour,
    park
)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '乐园小时级出勤报表ODS表';

-- 乐园收入报表表
CREATE TABLE ods_revenue
(
    id                   BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
    report_date          DATE           NOT NULL COMMENT '报表日期',
    park                 VARCHAR(100)   NOT NULL COMMENT '乐园名称',
    total_fb_revenue     DECIMAL(12, 2) NOT NULL COMMENT '餐饮总收入',
    total_retail_revenue DECIMAL(12, 2) NOT NULL COMMENT '零售总收入',
    total_ticket_revenue DECIMAL(12, 2) NOT NULL COMMENT '门票总收入',
    UNIQUE KEY uk_report_date_park (report_date, park) COMMENT '日期+乐园唯一索引，避免重复数据'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='乐园每日收入报表';

CREATE TABLE `ods_emarsys`
(
    `id`                      bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `report_timestamp`        datetime     DEFAULT NULL COMMENT '报告时间',
    `campaign_id`             varchar(50)  DEFAULT NULL COMMENT '活动',
    `origin_campaign_id`      varchar(50)  DEFAULT NULL COMMENT '活动来源ID',
    `campaign_name`           varchar(255) DEFAULT NULL COMMENT '活动名称',
    `campaign_type`           varchar(50)  DEFAULT NULL COMMENT '活动类型',
    `campaign_category_name`  varchar(50)  DEFAULT NULL COMMENT '活动分类',
    `contact_id`              varchar(50)  DEFAULT NULL COMMENT 'contact_id',
    `launch_id`               varchar(50)  DEFAULT NULL COMMENT 'launch_id',
    `email_send_time`         datetime     DEFAULT NULL COMMENT '启动邮件发送时间',
    `email_first_open`        datetime     DEFAULT NULL COMMENT '首次邮件打开时间',
    `email_first_click`       datetime     DEFAULT NULL COMMENT '首次邮件点击时间',
    `last_activity_timestamp` datetime     DEFAULT NULL COMMENT '最后点击活动时间',
    PRIMARY KEY (`id`),
    -- 联合唯一索引：避免同一日期、平台的重复数据
    UNIQUE KEY uk_ods_emarsys_report_campaign (`report_timestamp`, `campaign_id`),
    KEY                       `idx_report_time` (`report_timestamp`),
    KEY                       `idx_campaign_id` (`campaign_id`),
    KEY                       `idx_email_send_time` (`email_send_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Emarsys 活动报表数据';

CREATE TABLE IF NOT EXISTS ods_yi_app_metrics_screen_views (
   id INT AUTO_INCREMENT PRIMARY KEY,
    report_hour VARCHAR(50) NOT NULL,
    app_platform VARCHAR(50)  NULL,
    screen_name VARCHAR(255)  NULL,
    page_views_count INT UNSIGNED  NULL,
    -- 联合唯一索引：避免同一小时、平台、页面的重复数据
    UNIQUE KEY uk_report_platform_screen (report_hour, app_platform, screen_name)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='页面浏览量统计数据表';



CREATE TABLE IF NOT EXISTS ods_yi_app_metrics_engagement (
     id INT AUTO_INCREMENT PRIMARY KEY,
     report_date VARCHAR(50) NOT NULL COMMENT '报告日期（如2025100101）',
    app_platform VARCHAR(50) NOT NULL COMMENT '应用平台（Android/iOS）',
    sessions_count INT UNSIGNED  NULL COMMENT '会话数',
    avg_engagement_time_sec DECIMAL(10, 2)  NULL COMMENT '平均参与时间（秒）',
    total_revenue DECIMAL(10, 2)  NULL COMMENT '总收入',
    -- 联合唯一索引：避免同一日期、平台的重复数据
    UNIQUE KEY uk_report_platform (report_date, app_platform)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用会话统计数据表';