v0.11.1: 权限体系重构 + AI管线优化 + 内容整理

This commit is contained in:
sgp
2026-05-22 18:36:41 +08:00
parent 7955d11c52
commit b33fe1e8e1
397 changed files with 30940 additions and 161 deletions
@@ -0,0 +1,66 @@
-- CreateTable
CREATE TABLE `categories` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`slug` VARCHAR(50) NOT NULL,
`icon` VARCHAR(100) NULL,
`parent_id` INTEGER NULL,
`sort_order` INTEGER NOT NULL DEFAULT 0,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
UNIQUE INDEX `categories_slug_key`(`slug`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `tools` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`slug` VARCHAR(100) NOT NULL,
`category_id` INTEGER NOT NULL,
`description` TEXT NOT NULL,
`logo_url` VARCHAR(255) NULL,
`website_url` VARCHAR(255) NOT NULL,
`pricing_model` ENUM('free', 'freemium', 'paid', 'subscription') NOT NULL DEFAULT 'freemium',
`pricing_detail` VARCHAR(200) NULL,
`features` JSON NULL,
`tags` JSON NULL,
`view_count` INTEGER NOT NULL DEFAULT 0,
`status` ENUM('draft', 'published') NOT NULL DEFAULT 'draft',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
UNIQUE INDEX `tools_slug_key`(`slug`),
INDEX `tools_category_id_status_idx`(`category_id`, `status`),
FULLTEXT INDEX `tools_name_description_idx`(`name`, `description`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `pending_tools` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`slug` VARCHAR(100) NULL,
`category_id` INTEGER NULL,
`description` TEXT NULL,
`logo_url` VARCHAR(255) NULL,
`website_url` VARCHAR(255) NULL,
`pricing_model` ENUM('free', 'freemium', 'paid', 'subscription') NULL DEFAULT 'freemium',
`pricing_detail` VARCHAR(200) NULL,
`features` JSON NULL,
`tags` JSON NULL,
`source_url` VARCHAR(255) NULL,
`scraped_at` DATETIME(3) NULL,
`status` ENUM('pending', 'approved', 'rejected') NOT NULL DEFAULT 'pending',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- AddForeignKey
ALTER TABLE `categories` ADD CONSTRAINT `categories_parent_id_fkey` FOREIGN KEY (`parent_id`) REFERENCES `categories`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `tools` ADD CONSTRAINT `tools_category_id_fkey` FOREIGN KEY (`category_id`) REFERENCES `categories`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,8 @@
/*
Warnings:
- You are about to drop the column `scraped_at` on the `pending_tools` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE `pending_tools` DROP COLUMN `scraped_at`;
@@ -0,0 +1,13 @@
-- CreateTable
CREATE TABLE `discovery_configs` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`category_id` INTEGER NULL,
`prompt` TEXT NOT NULL,
`tagPool` JSON NULL,
`temperature` DOUBLE NOT NULL DEFAULT 0.7,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
UNIQUE INDEX `discovery_configs_category_id_key`(`category_id`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
@@ -0,0 +1,9 @@
/*
Warnings:
- You are about to drop the column `tagPool` on the `discovery_configs` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE `discovery_configs` DROP COLUMN `tagPool`,
ADD COLUMN `tag_pool` JSON NULL;
@@ -0,0 +1,4 @@
-- AlterTable
ALTER TABLE `discovery_configs` ADD COLUMN `apiBaseUrl` VARCHAR(255) NULL,
ADD COLUMN `apiKey` VARCHAR(255) NULL,
ADD COLUMN `modelName` VARCHAR(100) NULL;
@@ -0,0 +1,71 @@
/*
Warnings:
- You are about to drop the column `apiBaseUrl` on the `discovery_configs` table. All the data in the column will be lost.
- You are about to drop the column `apiKey` on the `discovery_configs` table. All the data in the column will be lost.
- You are about to drop the column `modelName` on the `discovery_configs` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE `discovery_configs` DROP COLUMN `apiBaseUrl`,
DROP COLUMN `apiKey`,
DROP COLUMN `modelName`,
ADD COLUMN `api_provider_id` INTEGER NULL;
-- CreateTable
CREATE TABLE `skills` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`slug` VARCHAR(100) NOT NULL,
`category_id` INTEGER NOT NULL,
`description` TEXT NOT NULL,
`logo_url` VARCHAR(255) NULL,
`source_url` VARCHAR(255) NOT NULL,
`source_type` VARCHAR(20) NOT NULL DEFAULT 'github',
`features` JSON NULL,
`tags` JSON NULL,
`view_count` INTEGER NOT NULL DEFAULT 0,
`status` ENUM('draft', 'published') NOT NULL DEFAULT 'draft',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
UNIQUE INDEX `skills_slug_key`(`slug`),
INDEX `skills_category_id_status_idx`(`category_id`, `status`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `pending_skills` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`slug` VARCHAR(100) NULL,
`category_id` INTEGER NULL,
`description` TEXT NULL,
`logo_url` VARCHAR(255) NULL,
`source_url` VARCHAR(255) NULL,
`source_type` VARCHAR(20) NULL,
`features` JSON NULL,
`tags` JSON NULL,
`status` ENUM('pending', 'approved', 'rejected') NOT NULL DEFAULT 'pending',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `api_providers` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`baseUrl` VARCHAR(255) NOT NULL,
`apiKey` VARCHAR(255) NOT NULL,
`model` VARCHAR(100) NOT NULL,
`isDefault` BOOLEAN NOT NULL DEFAULT false,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- AddForeignKey
ALTER TABLE `skills` ADD CONSTRAINT `skills_category_id_fkey` FOREIGN KEY (`category_id`) REFERENCES `categories`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,23 @@
-- DropForeignKey
ALTER TABLE `skills` DROP FOREIGN KEY `skills_category_id_fkey`;
-- CreateTable
CREATE TABLE `skill_categories` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`slug` VARCHAR(50) NOT NULL,
`icon` VARCHAR(100) NULL,
`parent_id` INTEGER NULL,
`sort_order` INTEGER NOT NULL DEFAULT 0,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
UNIQUE INDEX `skill_categories_slug_key`(`slug`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- AddForeignKey
ALTER TABLE `skill_categories` ADD CONSTRAINT `skill_categories_parent_id_fkey` FOREIGN KEY (`parent_id`) REFERENCES `skill_categories`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `skills` ADD CONSTRAINT `skills_category_id_fkey` FOREIGN KEY (`category_id`) REFERENCES `skill_categories`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AddForeignKey
ALTER TABLE `pending_tools` ADD CONSTRAINT `pending_tools_category_id_fkey` FOREIGN KEY (`category_id`) REFERENCES `categories`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1 @@
ALTER TABLE `daily_report_items` ADD COLUMN `hot_score` INT NOT NULL DEFAULT 0;
@@ -0,0 +1,44 @@
-- AlterTable
ALTER TABLE `skills` ADD COLUMN `last_reviewed_at` DATETIME(3) NULL,
ADD COLUMN `github_stars_history` JSON NULL;
-- CreateTable
CREATE TABLE `skill_reviews` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`skill_id` INTEGER NOT NULL,
`capability` DOUBLE NOT NULL,
`dev_exp` DOUBLE NOT NULL,
`cost_license` DOUBLE NOT NULL,
`community` DOUBLE NOT NULL,
`performance` DOUBLE NOT NULL,
`overall` DOUBLE NOT NULL,
`reviews` JSON NOT NULL,
`long_article` TEXT NULL,
`video_script` TEXT NULL,
`social_cards` JSON NULL,
`status` ENUM('DRAFT', 'PUBLISHED', 'REJECTED', 'OUTDATED') NOT NULL DEFAULT 'DRAFT',
`reviewed_at` DATETIME(3) NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
UNIQUE INDEX `skill_reviews_skill_id_key`(`skill_id`),
INDEX `skill_reviews_skill_id_idx`(`skill_id`),
INDEX `skill_reviews_overall_idx`(`overall`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `review_generation_logs` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`skill_id` INTEGER NOT NULL,
`status` VARCHAR(20) NOT NULL,
`prompt` TEXT NOT NULL,
`response` TEXT NULL,
`error` TEXT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
INDEX `review_generation_logs_skill_id_idx`(`skill_id`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- AddForeignKey
ALTER TABLE `skill_reviews` ADD CONSTRAINT `skill_reviews_skill_id_fkey` FOREIGN KEY (`skill_id`) REFERENCES `skills`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
+3
View File
@@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (e.g., Git)
provider = "mysql"