84 lines
3.3 KiB
SQL
84 lines
3.3 KiB
SQL
-- CreateTable
|
|
CREATE TABLE `customers` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`customer_id` VARCHAR(64) NOT NULL,
|
|
`name` VARCHAR(128) NULL,
|
|
`country` VARCHAR(64) NULL,
|
|
`email` VARCHAR(128) NULL,
|
|
`company` VARCHAR(255) NULL,
|
|
`register_time` DATETIME(3) NULL,
|
|
`avatar_url` VARCHAR(512) NULL,
|
|
`buyer_tags` VARCHAR(255) NULL,
|
|
`buyer_features` VARCHAR(255) NULL,
|
|
`behavior_product_views` INTEGER NULL,
|
|
`behavior_valid_inquiries` INTEGER NULL,
|
|
`behavior_valid_rfq` INTEGER NULL,
|
|
`behavior_login_days` INTEGER NULL,
|
|
`behavior_spam_inquiries` INTEGER NULL,
|
|
`behavior_top_industry` VARCHAR(255) NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL,
|
|
|
|
UNIQUE INDEX `customers_customer_id_key`(`customer_id`),
|
|
INDEX `customers_country_idx`(`country`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `inquiries` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`inquiry_id` VARCHAR(32) NOT NULL,
|
|
`customer_id` VARCHAR(64) NULL,
|
|
`manager` VARCHAR(128) NULL,
|
|
`create_time` DATETIME(3) NOT NULL,
|
|
`update_time` DATETIME(3) NOT NULL,
|
|
`status` VARCHAR(64) NULL,
|
|
`msg_preview` VARCHAR(512) NULL,
|
|
`is_flagged` BOOLEAN NOT NULL DEFAULT false,
|
|
`messages_count` INTEGER NOT NULL DEFAULT 0,
|
|
`last_send_time` DATETIME(3) NULL,
|
|
`has_failed_batches` BOOLEAN NOT NULL DEFAULT false,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL,
|
|
|
|
UNIQUE INDEX `inquiries_inquiry_id_key`(`inquiry_id`),
|
|
INDEX `inquiries_customer_id_idx`(`customer_id`),
|
|
INDEX `inquiries_manager_idx`(`manager`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `chat_messages` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`message_id` VARCHAR(64) NOT NULL,
|
|
`inquiry_id` VARCHAR(32) NOT NULL,
|
|
`sender` VARCHAR(128) NULL,
|
|
`direction` ENUM('incoming', 'outgoing', 'system') NOT NULL,
|
|
`send_time` DATETIME(3) NOT NULL,
|
|
`content` MEDIUMTEXT NOT NULL,
|
|
`translation` TEXT NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
UNIQUE INDEX `chat_messages_message_id_key`(`message_id`),
|
|
INDEX `chat_messages_inquiry_id_send_time_message_id_idx`(`inquiry_id`, `send_time`, `message_id`),
|
|
INDEX `chat_messages_inquiry_id_idx`(`inquiry_id`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `users` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`username` VARCHAR(191) NOT NULL,
|
|
`password_hash` VARCHAR(191) NOT NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
UNIQUE INDEX `users_username_key`(`username`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `inquiries` ADD CONSTRAINT `inquiries_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers`(`customer_id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `chat_messages` ADD CONSTRAINT `chat_messages_inquiry_id_fkey` FOREIGN KEY (`inquiry_id`) REFERENCES `inquiries`(`inquiry_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|