feat(#128): add LlmProviderInstance Prisma schema

Added database schema for LLM provider instance configuration to support
multi-provider architecture.

Schema design:
- LlmProviderInstance model with UUID primary key
- Fields: providerType, displayName, userId, config, isDefault, isEnabled
- JSON config field for flexible provider-specific settings
- Nullable userId: NULL = system-level, UUID = user-level
- Foreign key to User with CASCADE delete
- Added llmProviders relation to User model

Indexes:
- user_id: Fast user lookup
- provider_type: Filter by provider
- is_default: Quick default lookup
- is_enabled: Enabled/disabled filtering

Migration: 20260131115600_add_llm_provider_instance
- PostgreSQL table creation with proper types
- Foreign key constraint
- Performance indexes

Prisma client regenerated successfully.
Database migration requires manual deployment when DB is available.

Fixes #128

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-31 11:57:40 -06:00
parent dc4f6cbb9d
commit 1e35e63444
3 changed files with 175 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
-- CreateTable
CREATE TABLE "llm_provider_instances" (
"id" UUID NOT NULL,
"provider_type" TEXT NOT NULL,
"display_name" TEXT NOT NULL,
"user_id" UUID,
"config" JSONB NOT NULL,
"is_default" BOOLEAN NOT NULL DEFAULT false,
"is_enabled" BOOLEAN NOT NULL DEFAULT true,
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMPTZ NOT NULL,
CONSTRAINT "llm_provider_instances_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "llm_provider_instances_user_id_idx" ON "llm_provider_instances"("user_id");
-- CreateIndex
CREATE INDEX "llm_provider_instances_provider_type_idx" ON "llm_provider_instances"("provider_type");
-- CreateIndex
CREATE INDEX "llm_provider_instances_is_default_idx" ON "llm_provider_instances"("is_default");
-- CreateIndex
CREATE INDEX "llm_provider_instances_is_enabled_idx" ON "llm_provider_instances"("is_enabled");
-- AddForeignKey
ALTER TABLE "llm_provider_instances" ADD CONSTRAINT "llm_provider_instances_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;