-- Create Telegram Users Table
USE tg_manage;

-- 创建 Telegram 用户表
CREATE TABLE IF NOT EXISTS `tg_telegram_users` (
  `id` bigint NOT NULL COMMENT 'Telegram用户ID',
  `username` varchar(100) DEFAULT NULL COMMENT '用户名',
  `first_name` varchar(100) DEFAULT NULL COMMENT '名',
  `last_name` varchar(100) DEFAULT NULL COMMENT '姓',
  `phone` varchar(20) DEFAULT NULL COMMENT '电话号码',
  `bio` text COMMENT '个人简介',
  `is_bot` tinyint(1) DEFAULT '0' COMMENT '是否机器人',
  `is_verified` tinyint(1) DEFAULT '0' COMMENT '是否认证账号',
  `is_premium` tinyint(1) DEFAULT '0' COMMENT '是否Premium用户',
  `is_scam` tinyint(1) DEFAULT '0' COMMENT '是否诈骗账号',
  `is_fake` tinyint(1) DEFAULT '0' COMMENT '是否虚假账号',
  `is_restricted` tinyint(1) DEFAULT '0' COMMENT '是否受限账号',
  `is_support` tinyint(1) DEFAULT '0' COMMENT '是否官方支持账号',
  `language_code` varchar(10) DEFAULT NULL COMMENT '语言代码',
  `status` enum('online','offline','recently','last_week','last_month') DEFAULT 'offline' COMMENT '在线状态',
  `profile_photo` text COMMENT '头像URL',
  `last_seen_at` datetime DEFAULT NULL COMMENT '最后上线时间',
  `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_username` (`username`),
  KEY `idx_phone` (`phone`),
  KEY `idx_status` (`status`),
  KEY `idx_is_bot` (`is_bot`),
  KEY `idx_is_verified` (`is_verified`),
  KEY `idx_is_premium` (`is_premium`),
  KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Telegram用户表';

-- 插入一些示例数据
INSERT INTO `tg_telegram_users` (`id`, `username`, `first_name`, `last_name`, `phone`, `bio`, `is_bot`, `is_verified`, `is_premium`, `is_scam`, `is_fake`, `is_restricted`, `is_support`, `language_code`, `status`, `profile_photo`, `last_seen_at`) VALUES
(777000, 'Telegram', 'Telegram', NULL, NULL, 'Official Telegram Support', 0, 1, 0, 0, 0, 0, 1, 'en', 'online', 'https://telegram.org/img/t_logo.png', NOW()),
(1087968824, 'GroupAnonymousBot', 'Group', 'Anonymous Bot', NULL, 'Anonymous Admin', 1, 1, 0, 0, 0, 0, 1, 'en', 'online', NULL, NOW()),
(136817688, 'Channel_Bot', 'Channel', 'Bot', NULL, 'Telegram Channel Bot', 1, 1, 0, 0, 0, 0, 1, 'en', 'online', NULL, NOW()),
(12345678, 'john_doe', 'John', 'Doe', '+1234567890', 'Software Developer', 0, 0, 1, 0, 0, 0, 0, 'en', 'recently', NULL, DATE_SUB(NOW(), INTERVAL 30 MINUTE)),
(87654321, 'jane_smith', 'Jane', 'Smith', '+0987654321', 'Designer & Content Creator', 0, 1, 1, 0, 0, 0, 0, 'en', 'last_week', NULL, DATE_SUB(NOW(), INTERVAL 3 DAY)),
(11111111, 'scammer_account', 'Fake', 'User', NULL, 'This is a scam account', 0, 0, 0, 1, 0, 0, 0, 'en', 'offline', NULL, DATE_SUB(NOW(), INTERVAL 30 DAY)),
(22222222, 'fake_profile', 'Fake', 'Profile', NULL, 'Impersonating someone else', 0, 0, 0, 0, 1, 0, 0, 'en', 'offline', NULL, DATE_SUB(NOW(), INTERVAL 15 DAY)),
(33333333, 'restricted_user', 'Restricted', 'User', NULL, 'Account has been restricted', 0, 0, 0, 0, 0, 1, 0, 'zh', 'last_month', NULL, DATE_SUB(NOW(), INTERVAL 20 DAY)),
(44444444, 'premium_user', 'Premium', 'Member', '+1122334455', 'Telegram Premium subscriber', 0, 0, 1, 0, 0, 0, 0, 'es', 'online', NULL, NOW()),
(55555555, 'verified_celeb', 'Celebrity', 'Account', NULL, 'Verified public figure', 0, 1, 1, 0, 0, 0, 0, 'fr', 'recently', NULL, DATE_SUB(NOW(), INTERVAL 2 HOUR)),
(66666666, 'echo_bot', 'Echo', 'Bot', NULL, 'A simple echo bot', 1, 0, 0, 0, 0, 0, 0, 'en', 'online', NULL, NOW()),
(77777777, 'music_lover', 'Music', 'Lover', '+2233445566', 'I love music and concerts', 0, 0, 0, 0, 0, 0, 0, 'de', 'last_week', NULL, DATE_SUB(NOW(), INTERVAL 5 DAY)),
(88888888, 'tech_guru', 'Tech', 'Guru', NULL, 'Technology enthusiast and blogger', 0, 1, 0, 0, 0, 0, 0, 'ja', 'recently', NULL, DATE_SUB(NOW(), INTERVAL 1 HOUR)),
(99999999, 'crypto_trader', 'Crypto', 'Trader', '+3344556677', 'Cryptocurrency trader and investor', 0, 0, 1, 0, 0, 0, 0, 'ko', 'offline', NULL, DATE_SUB(NOW(), INTERVAL 12 HOUR)),
(10101010, 'news_channel', 'News', 'Channel', NULL, 'Daily news and updates', 1, 1, 0, 0, 0, 0, 0, 'en', 'online', NULL, NOW());

-- 验证数据
SELECT COUNT(*) as total_users FROM tg_telegram_users;
SELECT 
    status,
    COUNT(*) as count
FROM tg_telegram_users 
GROUP BY status;

SELECT 
    SUM(CASE WHEN is_bot = 1 THEN 1 ELSE 0 END) as bots,
    SUM(CASE WHEN is_verified = 1 THEN 1 ELSE 0 END) as verified,
    SUM(CASE WHEN is_premium = 1 THEN 1 ELSE 0 END) as premium,
    SUM(CASE WHEN is_scam = 1 THEN 1 ELSE 0 END) as scam,
    SUM(CASE WHEN is_fake = 1 THEN 1 ELSE 0 END) as fake
FROM tg_telegram_users;