package migration func notificationGrantStatements() map[Dialect][]string { // 不依赖自增、布尔或日期方言;计数窗口统一使用 UTC 字符串。 statement := `CREATE TABLE IF NOT EXISTS notification_grant ( user_id BIGINT NOT NULL PRIMARY KEY, enabled INTEGER NOT NULL DEFAULT 0, code_version INTEGER NOT NULL DEFAULT 1, code_hash VARCHAR(64) NOT NULL DEFAULT '', session_version INTEGER NOT NULL DEFAULT 0, security_version INTEGER NOT NULL DEFAULT 0, minute_limit INTEGER NOT NULL DEFAULT 10, day_limit INTEGER NOT NULL DEFAULT 100, minute_key VARCHAR(16) NOT NULL DEFAULT '', minute_count INTEGER NOT NULL DEFAULT 0, day_key VARCHAR(10) NOT NULL DEFAULT '', day_count INTEGER NOT NULL DEFAULT 0 )` return map[Dialect][]string{ DialectSQLite: {statement}, DialectMySQL: {statement + " ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"}, DialectPostgres: {statement}, } }