-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sql
More file actions
68 lines (62 loc) · 2.81 KB
/
setup.sql
File metadata and controls
68 lines (62 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
-- Database setup for AI Chat backend (Laravel + MySQL)
-- Creates database, tables, indexes, and foreign keys
-- Create database
CREATE DATABASE IF NOT EXISTS `ai_chat` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `ai_chat`;
-- Users table
CREATE TABLE IF NOT EXISTS `users` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL,
`email_verified_at` TIMESTAMP NULL DEFAULT NULL,
`password` VARCHAR(255) NOT NULL,
`remember_token` VARCHAR(100) NULL DEFAULT NULL,
`plan` ENUM('free','pro','enterprise') NOT NULL DEFAULT 'free',
`preferences` JSON NULL,
`created_at` TIMESTAMP NULL DEFAULT NULL,
`updated_at` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_email_unique` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Messages table
CREATE TABLE IF NOT EXISTS `messages` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` BIGINT UNSIGNED NOT NULL,
`role` ENUM('system','user','assistant') NOT NULL,
`content` LONGTEXT NOT NULL,
`model` VARCHAR(100) NULL DEFAULT NULL,
`created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_messages_user_created` (`user_id`, `created_at`),
CONSTRAINT `messages_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Sanctum personal access tokens table
CREATE TABLE IF NOT EXISTS `personal_access_tokens` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tokenable_type` VARCHAR(255) NOT NULL,
`tokenable_id` BIGINT UNSIGNED NOT NULL,
`name` VARCHAR(255) NOT NULL,
`token` VARCHAR(64) NOT NULL,
`abilities` TEXT NULL,
`last_used_at` TIMESTAMP NULL DEFAULT NULL,
`expires_at` TIMESTAMP NULL DEFAULT NULL,
`created_at` TIMESTAMP NULL DEFAULT NULL,
`updated_at` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `personal_access_tokens_token_unique` (`token`),
KEY `personal_access_tokens_tokenable_type_tokenable_id_index` (`tokenable_type`, `tokenable_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Sessions table (for SESSION_DRIVER=database)
CREATE TABLE IF NOT EXISTS `sessions` (
`id` VARCHAR(255) NOT NULL,
`user_id` BIGINT UNSIGNED NULL DEFAULT NULL,
`ip_address` VARCHAR(45) NULL DEFAULT NULL,
`user_agent` TEXT NULL DEFAULT NULL,
`payload` LONGTEXT NOT NULL,
`last_activity` INT NOT NULL,
PRIMARY KEY (`id`),
KEY `sessions_last_activity_index` (`last_activity`),
KEY `sessions_user_id_index` (`user_id`),
CONSTRAINT `sessions_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;