nhance/app/Database/rate_limit_blocks.sql
2026-05-18 12:28:19 +05:30

20 lines
997 B
SQL

CREATE TABLE IF NOT EXISTS `rate_limit_blocks` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`block_type` ENUM('ip', 'user') NOT NULL,
`cache_identifier` VARCHAR(191) NOT NULL COMMENT 'fingerprint for ip, hashed identity for user',
`display_identifier` VARCHAR(255) NOT NULL COMMENT 'actual IP or email/mobile for admin display',
`block_level` ENUM('soft', 'medium', 'hard') NOT NULL,
`status` ENUM('active', 'unblocked') NOT NULL DEFAULT 'active',
`blocked_at` DATETIME NOT NULL,
`unblocked_at` DATETIME NULL DEFAULT NULL,
`unblocked_by` BIGINT NULL DEFAULT NULL,
`unblock_reason` VARCHAR(255) NULL DEFAULT NULL,
`meta_json` LONGTEXT NULL,
`created_at` DATETIME NOT NULL,
`updated_at` DATETIME NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_rate_limit_block` (`block_type`, `cache_identifier`),
KEY `idx_rate_limit_status` (`status`, `block_type`),
KEY `idx_rate_limit_level` (`block_level`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;