-- S09 login authentication session table. -- Forward-only additive migration: no existing table or column is modified. CREATE TABLE `user_sessions` ( `id` VARCHAR(40) NOT NULL, `user_id` VARCHAR(32) NOT NULL, `refresh_token_hash` CHAR(64) NOT NULL, `user_agent` VARCHAR(500) NULL, `ip` VARCHAR(45) NULL, `expires_at` DATETIME(3) NOT NULL, `revoked_at` DATETIME(3) NULL, `rotated_from_id` VARCHAR(40) NULL, `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), PRIMARY KEY (`id`), UNIQUE INDEX `user_sessions_refresh_token_hash_key` (`refresh_token_hash`), INDEX `user_sessions_user_id_created_at_idx` (`user_id`, `created_at`), INDEX `user_sessions_expires_at_idx` (`expires_at`), INDEX `user_sessions_revoked_at_idx` (`revoked_at`), CONSTRAINT `user_sessions_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;