Добавить установщик XLX системы и веб-панель

Этот коммит содержится в:
2026-05-18 06:38:31 +09:00
родитель 53bcc6567a
Коммит 7808cc4158
36 изменённых файлов: 2461 добавлений и 78 удалений
+28 -2
Просмотреть файл
@@ -33,7 +33,7 @@ CREATE TABLE IF NOT EXISTS dmr_ids (
CREATE TABLE IF NOT EXISTS tariffs (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(120) NOT NULL,
name VARCHAR(120) NOT NULL UNIQUE,
price DECIMAL(10,2) NOT NULL DEFAULT 0.00,
currency CHAR(3) NOT NULL DEFAULT 'RUB',
duration_days INT UNSIGNED NOT NULL DEFAULT 30,
@@ -49,6 +49,7 @@ CREATE TABLE IF NOT EXISTS payments (
currency CHAR(3) NOT NULL DEFAULT 'RUB',
provider VARCHAR(64) NOT NULL DEFAULT 'manual',
provider_payment_id VARCHAR(190) NULL,
confirmation_url TEXT NULL,
status ENUM('pending', 'paid', 'failed', 'cancelled', 'refunded') NOT NULL DEFAULT 'pending',
paid_at DATETIME NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
@@ -56,6 +57,21 @@ CREATE TABLE IF NOT EXISTS payments (
CONSTRAINT fk_payments_tariff FOREIGN KEY (tariff_id) REFERENCES tariffs(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS payment_receipts (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
payment_id BIGINT UNSIGNED NOT NULL,
user_id BIGINT UNSIGNED NOT NULL,
receipt_reference VARCHAR(255) NOT NULL,
comment TEXT NULL,
status ENUM('pending', 'approved', 'rejected') NOT NULL DEFAULT 'pending',
reviewed_by_user_id BIGINT UNSIGNED NULL,
reviewed_at DATETIME NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_payment_receipts_payment FOREIGN KEY (payment_id) REFERENCES payments(id) ON DELETE CASCADE,
CONSTRAINT fk_payment_receipts_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
CONSTRAINT fk_payment_receipts_reviewer FOREIGN KEY (reviewed_by_user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS access_credentials (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id BIGINT UNSIGNED NOT NULL UNIQUE,
@@ -101,6 +117,16 @@ CREATE TABLE IF NOT EXISTS audit_logs (
CONSTRAINT fk_audit_logs_actor FOREIGN KEY (actor_user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS xlx_service_events (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
event_type VARCHAR(64) NOT NULL,
status VARCHAR(64) NOT NULL,
message TEXT NULL,
payload_json JSON NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
INDEX idx_xlx_service_events_created_at (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO tariffs (name, price, currency, duration_days)
VALUES ('Стартовый доступ 30 дней', 300.00, 'RUB', 30)
ON DUPLICATE KEY UPDATE name = name;
ON DUPLICATE KEY UPDATE price = VALUES(price), currency = VALUES(currency), duration_days = VALUES(duration_days);