Cơ sở dữ liệu được thiết kế tập trung, chia theo 4 phân hệ chính để tối ưu hóa việc quản lý và tránh gây rối cho lập trình viên. Dưới đây là lược đồ thực thể (ERD) mức mức tổng quan cho các khối dữ liệu cốt lõi:
CLIENTS, SUBCRIBERS, USERS, ROLES, PERMISSIONSCAMPAIGNS, NOTIFICATION_SCHEDULES, NOTIFICATION_SCHEDULE_CLIENTS, NOTIFICATION_SCHEDULE_ASSETNOTIFICATION_SCHEDULE_LOGS, WEB_MESSAGE_LOGS, TELEGRAM_MESSAGE_LOGS, TRACKING_CHOICESDAILY_NOTIFICATION_STATS, DAILY_NOTIFICATION_CLIENT_STATS, SUBSCRIBER_STATISTICS_V2CLIENTS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
id | bigint (PK) | Khóa chính |
name | varchar | Tên định danh Website/Tổ chức (VD: Bong88, 8XBet) |
domain | varchar | Tên miền chính xác dùng để lọc Verify Middleware |
token | varchar | Mã định danh cực kỳ quan trọng dùng cho gọi API ngầm |
guideline | text | Chứa mã nhúng Script mẫu sinh ra cho Client copy |
alert_title | varchar | Tiêu đề mặc định dự phòng của Popup thông báo |
alert_content | varchar | Nội dung lời mời tải trang mặc định |
alert_img | varchar | URL ảnh đại diện Banner tĩnh bảo vệ khi rớt mạng |
alert_btn | varchar | Chữ hiển thị mặc định gắn trên Call-To-Action Button |
alert_expired | int | Phiên tính bằng giây (Thời gian tự động biến mất màn hình) |
daily_report_enabled | tinyint | Cờ (Flag) cho phép máy chủ đánh thức gửi báo cáo hàng ngày |
daily_report_webhook | text | Webhook URL bắn thẳng về Group Telegram của Tổ chức Mẹ |
active | enum | Tình trạng bị khóa hay Còn chạy của Client |
seen | int | Tổng số lượng thiết bị từng hiển thị thông báo |
read | int | Tổng số lượt thiết bị Click tương tác link đích |
total | int | Tổng số Subscribers (Nạn nhân) nằm trong rọ data |
deleted_at | timestamp (FK) | Lịch sử xóa mềm ẩn khỏi giao diện Admin |
created_at | timestamp | Ngày giờ sinh thành |
updated_at | timestamp | Ngày cập nhật file |
SUBCRIBERS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
id | bigint (PK) | Khóa chính |
subcriber_id | text | (PAM ID) - Mã băm Hash cực quan trọng định danh Thiết Bị |
t3_id | varchar | Mã tài khoản chéo liên kết với hệ sinh thái T3 cũ |
client_id | bigint | User này thuộc sở hữu quản lý của Website rễ (Client) nào |
actived | tinyint | Khách hàng cho phép nhận Push (1) hay Tắt quyền Push (0) |
type | enum | User là đối tượng dùng loại: Trình duyệt Web, hay Bot Telegram |
platform | varchar | Hệ điều hành (Windows, Android, iOS...) làm điều kiện lọc |
device | varchar | Trình nhận dạng Màn hình (Desktop, Mobile, Tablet) |
language | varchar | Hệ tọa độ ngôn ngữ hiển thị (vi, en, zh) |
connection_type | varchar | Kênh phân luồng dữ liệu mạng (Wifi, LAN, 4G, 5G...) |
created_at | timestamp | Thời điểm khách vô tình nhấn "Allow Notification" |
updated_at | timestamp | Nhịp tim Heartbeat thay đổi cuối cùng |
USERS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
id | bigint (PK) | Khóa chính |
name | varchar | Tên Nhân viên làm giao thức báo cáo |
username | varchar | Mã nhân viên dùng để Login màn hình Admin |
email | varchar | Kênh nhận hỗ trợ lấy lại mật khẩu OTP |
email_verified_at | timestamp | Cờ nhận biết Account hợp lệ (Not Bot) |
password | varchar | Vỏ nén Hash Bcrypt mật khẩu của nhân viên |
remember_token | varchar | Token duy trì phiên Cookie trình duyệt không bị văng |
deleted_at | timestamp | Đuổi việc nhân viên (Xóa che tài khoản) |
ROLES| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
id | int (PK) | Khóa chính |
name | varchar | Tên Hiển thị Vai Trò (Ví dụ: Nhân viên Content, Trưởng Phòng CRM) |
slug | varchar | Mã định danh chìm dùng cho Gate Middleware (content_creator, admin) |
description | varchar | Giải thích sơ bộ xem chức danh này được thọc sâu vào màn hình nào |
deleted_at | timestamp | Khóa chức quyền này vĩnh viễn khỏi công ty |
PERMISSIONS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
id | int (PK) | Khóa chính |
name | varchar | Tên của khả năng thao tác (Ví dụ: Tạo Chiến Dịch Mới, Hủy Bắn Lịch) |
slug | varchar | Khóa check API Permission Level (Ví dụ: campaign-create) |
description | varchar | Giới hạn giải trình về lệnh ủy quyền |
CAMPAIGNS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
id | bigint (PK) | Định danh Nhóm Nhỏ |
name | varchar | Tên gọi chiến dịch vĩ mô (VD: Mùa Giải Euro 2026) |
type | varchar | Phân nhánh nghiệp vụ (VD: Sports, Livestream, Deposit) |
description | text | Mục tiêu chiến lược của chiến dịch |
NOTIFICATION_SCHEDULES| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
id | bigint (PK) | Khóa lệnh thi hành gốc |
campaign_id | bigint | Chạy theo ngân sách chỉ tiêu của Chiến dịch tổng nào |
primary_client_id | bigint | Đích đến mục tiêu đổ link chính (Tạo Traffic cho ai) |
send_to_app | enum | Phân bổ hỏa lực: Ra Trình duyệt (web) hay đập thẳng điện thoại (telegram) |
client | enum | Lấy mọi Khách (All) hay chỉ đích danh tập khách rác (Specify) |
title | varchar | Tên gọi hấp diêm lôi cuốn Click |
content | longtext | Text dài hướng dẫn dỗ khách kích hoạt chơi |
action | json | Cực trọng: Một cục Json Object điều hướng màu mè chứa nút bấm Yes/No và Link Đích |
action_tele | json | Nút bấm Inline Keyboard nếu nền tảng gửi là hạ tầng Telegram |
is_betting_notification | tinyint | Cờ (1) chứng tỏ hệ thống phải bật mắt soi kèo giải bóng tự động |
match_id | bigint | Kết nối ID từ Sever kết quả Bóng Đá (nhà cung cấp Odds) |
match_is_live | tinyint | Biết trước giải đang đá đấm trực tiếp hay là mai trận mới lăn bóng |
match_home_logo | varchar | Cạo tự động ảnh mào cờ đội chủ nhà (Local/Unsplash URL) |
match_away_logo | varchar | Cạo tự động ảnh khiên cúp đội khách làm banner |
best_percent | decimal | Bot đo biên độ độ ăn kèo - lấy lãi trần cao nhất giục user chơi |
bet_type | varchar | Ngôn ngữ nhà cái (Handicap, 1x2, Tài Xỉu...) |
bet_percent | decimal | % AI dự đoán đội chiến thắng cho con nghiện găm tiền |
bet_odds | decimal | Ghi bảng hệ số Nhân X tiền thưởng (Tỷ lệ cược thật) |
bet_company | varchar | Băng đảng nhà cái phát hành giá ODDS này |
type | enum | Tính cách lịch: Đẩy thẳng tay (SendNow), Hay Hẹn chóp (SpecifyDay) |
time | time | Đặt đồng hồ lúc mấy giờ Cronjob được gọi lệnh nã súng |
sent_count | int | Đồng hồ đếm ngược số bom (số Device) đã bị dính thính |
active | enum | Áp trạng thái Enable thì máy chủ mới móc ra gửi |
notification_client | enum | Nền móng gửi ra Client chung mâm hay tách biệt |
notification_type | enum | Phân tán màn hình hiển thị: Thanh trượt góc (Top), Đè màn (Popup) |
NOTIFICATION_SCHEDULE_CLIENTS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
notification_schedule_id | bigint (FK) | Kết nối tham chiếu tới thông báo chính |
client_id | bigint | Website nào vinh dự được đón nhận chùm tin rác này |
unit | enum | Cụm khóa mảng (Phân vùng theo Group, Nguồn Bot, Thiết bị) |
unit_id | varchar (FK) | ID nhóm hoặc UID để Middleware khoanh vùng đối tượng cấm cản |
NOTIFICATION_SCHEDULE_ASSET| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
id | bigint (PK) | Hệ tham chiếu độc lập |
notification_id | bigint | Map lại với chiến dịch thông báo để rọi URL Ảnh tới lúc gửi Payload JSON |
asset_id | bigint | Mã Key trên Media Drive (Minio/S3/Local Storage) |
type | varchar | Định tuyến kiểu hiển thị layout ảnh (Ảnh Đại Diện Background hay Nút bấm Image Custom) |
NOTIFICATION_SCHEDULE_LOGS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
id | bigint (PK) | Khóa chính |
notification_schedule_id | int | Định danh phiên lệnh bắn |
client_id | bigint | Nhận diện khách nằm ở phễu trang Web nào |
send_to_app | varchar | Đầu ra (Bắn về Website WebPush hay là về Bot Telegram) |
sub_id | varchar | Nã trúng UID Thiết bị cụ thể nào |
seen | enum | Tracking: Khách hàng CÓ hoặc KHÔNG lướt thấy (Hiển thị) |
read | enum | Tracking: Khách hàng CÓ click trúng khu vực không |
unit | text | Nhóm đối tượng đặc biệt làm cờ lọc |
status | enum | Chốt sổ kết quả hành vi gửi là (Success) Thành Công hay (Error) Thất Bại |
result | text | In ra toàn bộ JSON mã Code mà nền tảng trung gian ném về (Hết sức quan trọng để rà lỗi Debug) |
WEB_MESSAGE_LOGS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
client_id | bigint (FK) | Nguồn phát |
status | tinyint | Đã đến cửa trình duyệt khách chưa |
payload | longtext | Gói gọn cục JSON hiển thị DOM cấu trúc được tiêm thẳng vào Browser (Có chứa link hình, tên người) |
seen | tinyint (FK) | Bằng 1 là đã lên hình Pop ở màn máy tính |
read | tinyint (FK) | Khách Click đâm thẳng vào Link đích bên trong |
message_id | varchar (FK) | Ticket Hash Tracking |
response | longtext | Log lại mã Console (StatusCode / ErrorName) mà Browser phản hồi |
TELEGRAM_MESSAGE_LOGS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
bot_id | bigint | Mã ID (ChatID Token) nhận dạng con Bot trung gian đứng ra lính bắn tỉa tin |
group_id | varchar | Gửi nhét tập thể thẳng vào phòng chát nếu không gửi Inbox cá nhân |
status | tinyint | Phanh xe trạng thái 1-0 |
payload | longtext | Gói thư HTTP Body JSON chuẩn định dạng Telegram (có Inline Keyboard Option) |
response | longtext | Phản hồi sinh sát từ trạm máy chủ Telegram Server (Log HTTP 403 Forbidden Ban IP / Or 200 OK) |
TRACKING_CHOICES| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
notification_schedule_id | bigint (FK) | Thống kê vào sổ kịch bản Push |
tracking_id | varchar (FK) | Hash Key bảo chứng không cho 1 thiết bị vote láo 2 lần |
yes | tinyint | Cờ ghi công 1 điểm: Người chơi đã "Chấp Thuận / Đặt Cược / Đi Gửi Tiền" |
no | tinyint | Cờ thua báo cáo 1 điểm: Người ta tắt chéo khung (X Out) hoặc ấn nút Bỏ Qua |
url | varchar | Địa chỉ trỏ đích đến cuối cùng mà khách bị lừa click vào |
DAILY_NOTIFICATION_STATS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
date | date | Mã ngạch Ngày/Tháng/Năm s ổ sách |
campaign_id | bigint | Quy tính năng suất cống hiến cho ngân chiến dịch nào |
total_notifications | int | Tổng khối lượng Push dự tính thả thính hôm nay |
in_app_count | int | Đo lường rạch ròi bao nhiêu đạn nổ In-App (Ở giữa lõi ứng dụng/màn hình Popup Window) |
background_count | int | Đo lường đạn nã đẩy ngầm (Push Alert chuông tin nhắn Background mượt mà) |
sent_count | int | Đã đến thành công cửa nhà khách hàng qua các lớp hàng rào kiểm dịch |
error_count | int | Ghi nhận tỉ lệ rớt hàng trên đường đi để rà soát Bottleneck tắc đường |
pending_count | int | Bao nhiêu thùng tin nhắn còn bị kẹt trên Hàng Đợi (Queue Queue) chưa được tẩu tán |
DAILY_NOTIFICATION_CLIENT_STATS| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
client_id | int (FK) | Website (Chi nhánh) được chấm công đếm số |
total_notifications | bigint | Tổng số lệnh đẩy tin trên Website này |
sent_count | bigint | Lượng Push thành công rơi vào Domain này |
error_count | bigint | Khách rớt mạng |
pending_count | bigint | Tin đang delay kẹt bộ nhớ Memory |
seen_count | bigint | Tổng truy xuất nhãn cầu nhìn thấy cái Banner Pop trên Domain |
read_count | bigint | Tỷ lệ nhấp Click chui vào ngõ cụt |
SUBSCRIBER_STATISTICS_V2| Cột (Field) | Kiểu (Type) | Mục đích vận hành |
|---|---|---|
site_id | bigint (FK) | Nơi lấy mẫu |
date | date | Timestamp gom data chốt sổ nửa đêm |
key | varchar | Trục Mỏ neo bóc vách (Ví dụ mỏ neo: Hệ_Điều_Hành, Loại_Máy, Wifi_Or_4G) |
value | varchar | Tham số đi liền bóc từ ngách (Ví dụ phân cực: Mac_OS, Android, Mobifone) |
total | int | Thu gom đếm được tổng mẫu bao nhiêu khách xài con tham số Value ở trên trúng mạng |