Database Schema (Mô hình Dữ liệu)
3. Database Schema (Mô hình Dữ liệu)#
Cơ sở dữ liệu được chia theo 4 phân hệ chính để tối ưu hóa việc quản lý và tránh rối mắt. Dưới đây là lược đồ thực thể (ERD) mức tổng quan cho các khối dữ liệu cốt lõi:
MỤC LỤC CHI TIẾT#
1. Phân hệ Khách hàng & Người dùng (Clients & Subscribers)#
Bảng CLIENTS#
Mô tả: Lưu trữ cấu hình, API token và giới hạn của các website khách hàng gắn Widget One Push.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
name | varchar | Tên định danh Website (Ví dụ: Bong88, Viva88) |
domain | varchar | Tên miền chính xác dùng để verify Widget |
token | varchar | Mã xác thực tĩnh dùng cho API nhúng |
guideline | text | Chứa mã nhúng Script mẫu cho Client |
alert_title | varchar | Tiêu đề mặc định của Popup thông báo |
alert_content | varchar | Nội dung mặc định của Popup thông báo |
alert_img | varchar | URL ảnh đại diện (Icon) cho Popup |
alert_btn | varchar | Nhãn hiển thị trên nút bấm của Popup |
alert_expired | int | Thời gian tự động đóng Popup (giây) |
daily_report_enabled | tinyint | Trạng thái Bật/Tắt báo cáo hàng ngày |
daily_report_webhook | text | Webhook nhận báo cáo qua Telegram |
active | enum | Trạng thái hoạt động của Client |
seen | int | Tổng lượt hiển thị tích lũy |
read | int | Tổng lượt nhấp (Click) tích lũy |
total | int | Tổng số Subscribers đã đăng ký |
deleted_at | timestamp (FK) | Khóa ngoại |
created_at | timestamp | Lịch sử thời gian |
updated_at | timestamp | Lịch sử thời gian |
Bảng SUBCRIBERS#
Mô tả: Lưu trữ định danh người dùng cuối (PAM ID, FCM Token) và thiết bị/nền tảng của họ.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
subcriber_id | text | Định danh duy nhất (PAM ID) của thiết bị |
t3_id | varchar | ID liên kết với hệ thống tài khoản T3 |
client_id | bigint | Liên kết với bảng CLIENTS |
actived | tinyint | Trạng thái nhận tin (1: Bật, 0: Chặn) |
type | enum | Phân loại (Web / Telegram / Mobile) |
platform | varchar | Hệ điều hành (Windows, Android, iOS...) |
device | varchar | Loại thiết bị (Desktop, Mobile, Tablet) |
language | varchar | Ngôn ngữ trình duyệt của người dùng |
connection_type | varchar | Loại mạng (4G, Wifi...) |
created_at | timestamp | Thời điểm người dùng nhấn Allow thông báo |
updated_at | timestamp | Lịch sử thời gian |
Bảng USERS#
Mô tả: Cấu trúc bảng USERS.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
name | varchar | Tên hiển thị của Admin/Nhân viên |
username | varchar | Tên đăng nhập hệ thống |
email | varchar | Email liên hệ và nhận mã OTP (nếu có) |
email_verified_at | timestamp | Thời điểm xác định tài khoản đã verify email |
password | varchar | Mật khẩu (Dạng Hash mã hóa bảo mật) |
remember_token | varchar | Token dùng để duy trì phiên đăng nhập |
created_at | timestamp | Ngày giờ khởi tạo tài khoản |
updated_at | timestamp | Ngày giờ cập nhật thông tin cuối |
deleted_at | timestamp | Thời gian xóa tài khoản (Soft delete) |
Bảng ROLES#
Mô tả: Cấu trúc bảng ROLES.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | int (PK) | Khóa chính |
name | varchar | |
slug | varchar | |
description | varchar | |
created_at | timestamp | Lịch sử thời gian |
updated_at | timestamp | Lịch sử thời gian |
deleted_at | timestamp | |
Bảng PERMISSIONS#
Mô tả: Cấu trúc bảng PERMISSIONS.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | int (PK) | Khóa chính |
name | varchar | |
slug | varchar | |
description | varchar | |
created_at | timestamp | Lịch sử thời gian |
updated_at | timestamp | Lịch sử thời gian |
deleted_at | timestamp | |
2. Phân hệ Chiến dịch & Gửi tin (Campaigns & Schedules)#
Bảng CAMPAIGNS#
Mô tả: Quản lý chiến dịch chung, là thẻ cha bao bọc nhiều lịch gửi bên trong.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
name | varchar | Tên chiến dịch (VD: Khuyến mãi Tháng 3) |
type | varchar | Phân loại mảng (Thể thao, Casino...) |
description | text | Ghi chú chi tiết về mục tiêu chiến dịch |
created_at | timestamp | Thời gian khởi tạo |
updated_at | timestamp | Thời gian cập nhật |
Bảng NOTIFICATION_SCHEDULES#
Mô tả: Nơi thiết lập cấu hình tin nhắn Push, Telegram, Betting Tips và thời điểm gửi bài.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
campaign_id | bigint | Thuộc về chiến dịch mẹ nào |
primary_client_id | bigint | Website chính thực hiện lệnh gửi |
send_to_app | enum | Gửi qua Web hay Telegram (W/T) |
client | enum | Đối tượng nhận (All/Specific) |
title | varchar | Tiêu đề tin nhắn Push |
content | longtext | Nội dung chi tiết của thông báo |
action | json | Cấu hình các nút bấm (Link điều hướng) |
action_tele | json | Cấu hình nút bấm trên Telegram |
is_betting_notification | tinyint | Đánh dấu là tin nhắn kèo bóng đá |
match_id | bigint | ID Trận đấu tương ứng |
match_league | varchar | Tên giải đấu |
match_time | datetime | Thời gian diễn ra trận đấu |
match_home_team | varchar | Đội nhà |
match_away_team | varchar | Đội khách |
match_is_live | tinyint | Trận đấu đang diễn ra hay sắp đá |
match_home_logo | varchar | URL Logo đội nhà |
match_away_logo | varchar | URL Logo đội khách |
best_percent | decimal | Tỷ lệ dự đoán thắng cao nhất |
bet_type | varchar | Loại cược (CH, OU, 1X2) |
bet_label | varchar | Nhãn hiển thị của kèo |
bet_selection | varchar | Đội được chọn |
bet_percent | decimal | Tỷ lệ phần trăm dự đoán |
bet_hope | decimal | Mức kỳ vọng |
bet_odds | decimal | Tỷ lệ cược (Odds) |
bet_company | varchar | Tên công ty/nhà cái cung cấp kèo |
betting_data_fetched_at | timestamp | Thời gian cập nhật Odds cuối |
betting_api_source | varchar | Nguồn API cung cấp dữ liệu cược |
type | enum | Kiểu gửi (Ngay, Hẹn giờ, Lặp lại) |
repeat | varchar | Tên lịch lặp lại (mỗi ngày/tháng...) |
repeat_time | int | Số giờ lặp lại |
repeat_min | int | Số phút lặp lại |
date | date | Ngày bắt đầu kích hoạt |
end_date | date | Ngày kết thúc chu kỳ |
time | time | Giờ cụ thể thực hiện lệnh bắn |
sent_count | int | Tổng số tin đã đẩy thành công |
active | enum | Trạng thái (1: Active, 0: Disable) |
user_id | bigint | Người tạo lịch gửi |
last_sent | timestamp | Thời gian lần gửi gần nhất |
deleted_at | timestamp | Thời gian xóa mềm |
created_at | timestamp | Ngày khởi tạo |
updated_at | timestamp | Ngày cập nhật |
notification_client | enum | Nguồn Client (Nhắm mục tiêu) |
notification_type | enum | Phân loại tin nhắn |
alert_expried | int | Thời gian hết hạn hiển thị |
Bảng NOTIFICATION_SCHEDULE_CLIENTS#
Mô tả: Cấu trúc bảng NOTIFICATION_SCHEDULE_CLIENTS.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
notification_schedule_id | bigint (FK) | Khóa ngoại |
client_id | bigint | |
unit | enum | |
unit_id | varchar (FK) | Khóa ngoại |
created_at | timestamp | Lịch sử thời gian |
updated_at | timestamp | Lịch sử thời gian |
Bảng NOTIFICATION_SCHEDULE_ASSET#
Mô tả: Cấu trúc bảng NOTIFICATION_SCHEDULE_ASSET.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
notification_id | bigint | |
asset_id | bigint | |
type | varchar | |
3. Phân hệ Lịch sử & Tương tác (Logs & Tracking)#
Bảng NOTIFICATION_SCHEDULE_LOGS#
Mô tả: Lịch sử bắn tin khổng lồ: Ghi nhận trạng thái Sent/Seen/Read của từng Device một.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
notification_schedule_id | int | Liên kết với Lịch gửi |
client_id | bigint | Web site người dùng nhận tin |
send_to_app | varchar | Kênh (Web/Telegram) |
sub_id | varchar | PAM ID của thiết bị nhận |
seen | enum | Trạng thái hiển thị (1: Có, 0: Không) |
read | enum | Trạng thái click (1: Có, 0: Không) |
unit | text | Đơn vị định danh thêm |
unit_id | varchar | ID của đơn vị định danh |
unit_value | varchar | Giá trị định danh |
| `value" | text | Giá trị phản hồi |
status | enum | Kết quả (Success / Error) |
result | text | Chi tiết lỗi hoặc JSON response |
created_at | timestamp | Ngày giờ gửi thực tế |
updated_at | `timestamp" | Lịch sử thời gian |
Bảng WEB_MESSAGE_LOGS#
Mô tả: Cấu trúc bảng WEB_MESSAGE_LOGS.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
client_id | bigint (FK) | Khóa ngoại |
status | tinyint | Trạng thái kích hoạt |
payload | longtext | |
seen | tinyint (FK) | Khóa ngoại |
read | tinyint (FK) | Khóa ngoại |
message_id | varchar (FK) | Khóa ngoại |
subscriber_id | varchar (FK) | Khóa ngoại |
response | longtext | |
created_at | timestamp | Lịch sử thời gian |
updated_at | timestamp | Lịch sử thời gian |
Bảng TELEGRAM_MESSAGE_LOGS#
Mô tả: Cấu trúc bảng TELEGRAM_MESSAGE_LOGS.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
status | tinyint | Trạng thái kích hoạt |
payload | longtext | |
response | longtext | |
created_at | timestamp | Lịch sử thời gian |
updated_at | timestamp | Lịch sử thời gian |
bot_id | bigint | |
group_id | varchar | |
Bảng TRACKING_CHOICES#
Mô tả: Cấu trúc bảng TRACKING_CHOICES.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
notification_schedule_id | bigint (FK) | Khóa ngoại |
tracking_id | varchar (FK) | Khóa ngoại |
yes | tinyint | |
no | tinyint | |
url | varchar | |
created_at | timestamp (FK) | Lịch sử thời gian |
4. Phân hệ Thống kê (Statistics)#
Bảng DAILY_NOTIFICATION_STATS#
Mô tả: Cấu trúc bảng DAILY_NOTIFICATION_STATS.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
date | date | Ngày tổng hợp số liệu |
campaign_id | bigint | ID chiến dịch tương ứng |
campaign_name | `varchar" | Tên chiến dịch tại thời điểm đó |
total_notifications | int | Tổng số thông báo dự kiến gửi |
in_app_count | int | Số tin nhắn hiện trong ứng dụng |
background_count | int | Số tin nhắn đẩy nền (Push) |
sent_count | int | Số lượng tin gửi thành công |
| `error_count" | int | Số lượng tin bị lỗi |
| `pending_count" | int | Số lượng tin đang chờ |
seen_count | int | Tổng lượt hiển thị thực tế |
read_count | `int" | Tổng lượt người dùng click |
created_at | timestamp | Lịch sử thời gian |
updated_at | timestamp | Lịch sử thời gian |
Bảng DAILY_NOTIFICATION_CLIENT_STATS#
Mô tả: Cấu trúc bảng DAILY_NOTIFICATION_CLIENT_STATS.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
date | date (FK) | Khóa ngoại |
campaign_id | int (FK) | Khóa ngoại |
client_id | int (FK) | Khóa ngoại |
total_notifications | bigint | |
sent_count | bigint | |
error_count | bigint | |
pending_count | bigint | |
seen_count | bigint | |
read_count | bigint | |
in_app_count | bigint | |
background_count | bigint | |
created_at | timestamp | Lịch sử thời gian |
updated_at | timestamp | Lịch sử thời gian |
Bảng SUBSCRIBER_STATISTICS_V2#
Mô tả: Cấu trúc bảng SUBSCRIBER_STATISTICS_V2.| Cột (Field) | Kiểu (Type) | Mục đích |
|---|
id | bigint (PK) | Khóa chính |
site_id | bigint (FK) | Khóa ngoại |
date | date | |
key | varchar | |
value | varchar | |
total | int | |
created_at | timestamp | Lịch sử thời gian |
updated_at | timestamp | Lịch sử thời gian |
Modified at 2026-03-27 03:49:16