164 lines
5.7 KiB
SQL
164 lines
5.7 KiB
SQL
-- Schema para Sistema DNSBlock
|
|
|
|
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
|
START TRANSACTION;
|
|
SET time_zone = "+00:00";
|
|
|
|
--
|
|
-- Tabela `clients`
|
|
--
|
|
CREATE TABLE `clients` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(255) NOT NULL,
|
|
`asn` varchar(50) NOT NULL,
|
|
`email` varchar(255) NOT NULL,
|
|
`financial_email` varchar(255) DEFAULT NULL,
|
|
`telegram_id` varchar(100) DEFAULT NULL,
|
|
`status` enum('active','inactive') NOT NULL DEFAULT 'active',
|
|
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
--
|
|
-- Tabela `users`
|
|
--
|
|
CREATE TABLE `users` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(255) NOT NULL,
|
|
`email` varchar(255) NOT NULL,
|
|
`password` varchar(255) NOT NULL,
|
|
`role` enum('admin','client') NOT NULL DEFAULT 'client',
|
|
`client_id` int(11) DEFAULT NULL,
|
|
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `email` (`email`),
|
|
KEY `client_id` (`client_id`),
|
|
CONSTRAINT `fk_users_client` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
--
|
|
-- Tabela `servers`
|
|
--
|
|
CREATE TABLE `servers` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`client_id` int(11) NOT NULL,
|
|
`name` varchar(255) NOT NULL,
|
|
`ip_v4` varchar(45) NOT NULL,
|
|
`ip_v6` varchar(100) DEFAULT NULL,
|
|
`serial_key` varchar(255) NOT NULL,
|
|
`machine_id` varchar(255) DEFAULT NULL,
|
|
`last_seen` datetime DEFAULT NULL,
|
|
`status` enum('active','inactive') NOT NULL DEFAULT 'active',
|
|
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `serial_key` (`serial_key`),
|
|
KEY `client_id` (`client_id`),
|
|
KEY `idx_last_seen` (`last_seen`),
|
|
CONSTRAINT `fk_servers_client` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
--
|
|
-- Tabela `orders`
|
|
--
|
|
CREATE TABLE `orders` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`title` varchar(255) NOT NULL,
|
|
`type` enum('block','unblock') NOT NULL,
|
|
`content` text,
|
|
`received_at` datetime NOT NULL,
|
|
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
--
|
|
-- Tabela `domains`
|
|
--
|
|
CREATE TABLE `domains` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(255) NOT NULL,
|
|
`status` enum('blocked','unblocked') NOT NULL DEFAULT 'blocked',
|
|
`last_order_id` int(11) DEFAULT NULL,
|
|
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `name` (`name`),
|
|
KEY `last_order_id` (`last_order_id`),
|
|
CONSTRAINT `fk_domains_order` FOREIGN KEY (`last_order_id`) REFERENCES `orders` (`id`) ON DELETE SET NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
--
|
|
-- Tabela `order_items`
|
|
--
|
|
CREATE TABLE `order_items` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`order_id` int(11) NOT NULL,
|
|
`domain_id` int(11) NOT NULL,
|
|
`action` enum('block','unblock') NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `order_id` (`order_id`),
|
|
KEY `domain_id` (`domain_id`),
|
|
CONSTRAINT `fk_items_order` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `fk_items_domain` FOREIGN KEY (`domain_id`) REFERENCES `domains` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
--
|
|
-- Tabela `audit_logs`
|
|
--
|
|
CREATE TABLE `audit_logs` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`user_id` int(11) DEFAULT NULL,
|
|
`action` varchar(255) NOT NULL,
|
|
`description` text,
|
|
`ip_address` varchar(45) DEFAULT NULL,
|
|
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
--
|
|
-- Tabela `api_logs`
|
|
--
|
|
CREATE TABLE `api_logs` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`server_id` int(11) DEFAULT NULL,
|
|
`action` varchar(50) NOT NULL,
|
|
`message` text,
|
|
`ip_address` varchar(45) DEFAULT NULL,
|
|
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `server_id` (`server_id`),
|
|
CONSTRAINT `fk_apilogs_server` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE SET NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
--
|
|
-- Tabela `settings`
|
|
--
|
|
CREATE TABLE `settings` (
|
|
`key` varchar(255) NOT NULL,
|
|
`value` text,
|
|
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`key`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
--
|
|
-- Tabela `order_attachments`
|
|
--
|
|
CREATE TABLE IF NOT EXISTS `order_attachments` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`order_id` int(11) NOT NULL,
|
|
`original_name` varchar(255) NOT NULL COMMENT 'Nome original do arquivo enviado pelo usuário',
|
|
`stored_name` varchar(255) NOT NULL COMMENT 'Nome gerado para armazenamento no disco',
|
|
`mime_type` varchar(100) DEFAULT NULL,
|
|
`size` int(11) DEFAULT NULL COMMENT 'Tamanho em bytes',
|
|
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_attachments_order` (`order_id`),
|
|
CONSTRAINT `fk_attachments_order` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
COMMIT;
|
|
|