Hair Keeper v1.0.0:一个高度集成、深度定制、约定优于配置的全栈Web应用模板,旨在保持灵活性的同时提供一套基于成熟架构的开发底座,自带身份认证、权限控制、丰富前端组件、文件上传、后台任务、智能体开发等丰富功能,提供AI开发辅助,免于纠结功能如何实现,可快速上手专注于业务逻辑

This commit is contained in:
2025-11-13 15:24:54 +08:00
commit 42be39b343
249 changed files with 38843 additions and 0 deletions

View File

@@ -0,0 +1,223 @@
-- CreateTable
CREATE TABLE "user" (
"id" TEXT NOT NULL,
"name" TEXT,
"status" TEXT,
"dept_code" TEXT,
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMPTZ NOT NULL,
"password" TEXT NOT NULL,
"is_super_admin" BOOLEAN NOT NULL DEFAULT false,
"last_login_at" TIMESTAMPTZ,
CONSTRAINT "user_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "dept" (
"code" TEXT NOT NULL,
"name" TEXT NOT NULL DEFAULT '',
"full_name" TEXT NOT NULL DEFAULT '',
CONSTRAINT "dept_pkey" PRIMARY KEY ("code")
);
-- CreateTable
CREATE TABLE "role" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
CONSTRAINT "role_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "permission" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
CONSTRAINT "permission_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "selection_log" (
"id" SERIAL NOT NULL,
"userId" TEXT NOT NULL,
"context" TEXT NOT NULL,
"option_id" TEXT NOT NULL,
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "selection_log_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "dev_file_type" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"description" TEXT NOT NULL,
"order" INTEGER NOT NULL,
CONSTRAINT "dev_file_type_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "dev_pkg_type" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"description" TEXT NOT NULL,
"order" INTEGER NOT NULL,
CONSTRAINT "dev_pkg_type_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "dev_analyzed_file" (
"id" SERIAL NOT NULL,
"path" TEXT NOT NULL,
"fileName" TEXT NOT NULL,
"commit_id" TEXT NOT NULL DEFAULT '',
"content" TEXT,
"file_type_id" TEXT NOT NULL,
"summary" TEXT NOT NULL,
"description" TEXT NOT NULL,
"exportedMembers" JSONB,
"tags" TEXT[],
"lastAnalyzedAt" TIMESTAMPTZ NOT NULL,
"createdAt" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "dev_analyzed_file_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "dev_analyzed_pkg" (
"name" TEXT NOT NULL,
"version" TEXT NOT NULL,
"modifiedAt" TIMESTAMP(3) NOT NULL,
"description" TEXT NOT NULL,
"homepage" TEXT,
"repository_url" TEXT,
"pkg_type_id" TEXT NOT NULL,
"projectRoleSummary" TEXT NOT NULL,
"primaryUsagePattern" TEXT NOT NULL,
"relatedFiles" TEXT[],
"relatedFileCount" INTEGER NOT NULL,
"last_analyzed_at" TIMESTAMPTZ NOT NULL,
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "dev_analyzed_pkg_pkey" PRIMARY KEY ("name")
);
-- CreateTable
CREATE TABLE "dev_file_dependency" (
"id" SERIAL NOT NULL,
"source_file_id" INTEGER NOT NULL,
"target_file_path" TEXT NOT NULL,
"usage_description" TEXT,
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "dev_file_dependency_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "dev_file_pkg_dependency" (
"id" SERIAL NOT NULL,
"source_file_id" INTEGER NOT NULL,
"package_name" TEXT NOT NULL,
"usage_description" TEXT,
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "dev_file_pkg_dependency_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "dev_analyzed_folder" (
"path" TEXT NOT NULL,
"name" TEXT NOT NULL,
"summary" TEXT NOT NULL,
"description" TEXT NOT NULL,
"last_analyzed_at" TIMESTAMPTZ NOT NULL,
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "dev_analyzed_folder_pkey" PRIMARY KEY ("path")
);
-- CreateTable
CREATE TABLE "_RoleToUser" (
"A" INTEGER NOT NULL,
"B" TEXT NOT NULL,
CONSTRAINT "_RoleToUser_AB_pkey" PRIMARY KEY ("A","B")
);
-- CreateTable
CREATE TABLE "_PermissionToRole" (
"A" INTEGER NOT NULL,
"B" INTEGER NOT NULL,
CONSTRAINT "_PermissionToRole_AB_pkey" PRIMARY KEY ("A","B")
);
-- CreateIndex
CREATE UNIQUE INDEX "role_name_key" ON "role"("name");
-- CreateIndex
CREATE UNIQUE INDEX "permission_name_key" ON "permission"("name");
-- CreateIndex
CREATE INDEX "selection_log_userId_context_idx" ON "selection_log"("userId", "context");
-- CreateIndex
CREATE INDEX "selection_log_context_option_id_idx" ON "selection_log"("context", "option_id");
-- CreateIndex
CREATE UNIQUE INDEX "dev_analyzed_file_path_commit_id_key" ON "dev_analyzed_file"("path", "commit_id");
-- CreateIndex
CREATE INDEX "dev_analyzed_pkg_pkg_type_id_idx" ON "dev_analyzed_pkg"("pkg_type_id");
-- CreateIndex
CREATE INDEX "dev_file_dependency_target_file_path_idx" ON "dev_file_dependency"("target_file_path");
-- CreateIndex
CREATE UNIQUE INDEX "dev_file_dependency_source_file_id_target_file_path_key" ON "dev_file_dependency"("source_file_id", "target_file_path");
-- CreateIndex
CREATE INDEX "dev_file_pkg_dependency_package_name_idx" ON "dev_file_pkg_dependency"("package_name");
-- CreateIndex
CREATE UNIQUE INDEX "dev_file_pkg_dependency_source_file_id_package_name_key" ON "dev_file_pkg_dependency"("source_file_id", "package_name");
-- CreateIndex
CREATE INDEX "_RoleToUser_B_index" ON "_RoleToUser"("B");
-- CreateIndex
CREATE INDEX "_PermissionToRole_B_index" ON "_PermissionToRole"("B");
-- AddForeignKey
ALTER TABLE "user" ADD CONSTRAINT "user_dept_code_fkey" FOREIGN KEY ("dept_code") REFERENCES "dept"("code") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "selection_log" ADD CONSTRAINT "selection_log_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "dev_analyzed_file" ADD CONSTRAINT "dev_analyzed_file_file_type_id_fkey" FOREIGN KEY ("file_type_id") REFERENCES "dev_file_type"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "dev_analyzed_pkg" ADD CONSTRAINT "dev_analyzed_pkg_pkg_type_id_fkey" FOREIGN KEY ("pkg_type_id") REFERENCES "dev_pkg_type"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "dev_file_dependency" ADD CONSTRAINT "dev_file_dependency_source_file_id_fkey" FOREIGN KEY ("source_file_id") REFERENCES "dev_analyzed_file"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "dev_file_pkg_dependency" ADD CONSTRAINT "dev_file_pkg_dependency_source_file_id_fkey" FOREIGN KEY ("source_file_id") REFERENCES "dev_analyzed_file"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_RoleToUser" ADD CONSTRAINT "_RoleToUser_A_fkey" FOREIGN KEY ("A") REFERENCES "role"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_RoleToUser" ADD CONSTRAINT "_RoleToUser_B_fkey" FOREIGN KEY ("B") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_PermissionToRole" ADD CONSTRAINT "_PermissionToRole_A_fkey" FOREIGN KEY ("A") REFERENCES "permission"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_PermissionToRole" ADD CONSTRAINT "_PermissionToRole_B_fkey" FOREIGN KEY ("B") REFERENCES "role"("id") ON DELETE CASCADE ON UPDATE CASCADE;