feat(backend): migrate freelancer and portal runtimes

This commit is contained in:
poyrazavsever
2026-07-17 00:16:38 +03:00
parent 561af11b70
commit 678c0236db
41 changed files with 5293 additions and 2324 deletions
@@ -0,0 +1,10 @@
CREATE TABLE `user_ai_settings` (
`owner_user_id` text PRIMARY KEY NOT NULL,
`provider` text DEFAULT 'gemini' NOT NULL,
`model` text,
`encrypted_api_key` text,
`created_at` text DEFAULT CURRENT_TIMESTAMP NOT NULL,
`updated_at` text DEFAULT CURRENT_TIMESTAMP NOT NULL,
FOREIGN KEY (`owner_user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade,
CONSTRAINT "user_ai_settings_provider_check" CHECK("user_ai_settings"."provider" in ('gemini', 'openai', 'groq', 'ollama'))
);
File diff suppressed because it is too large Load Diff
+7
View File
@@ -36,6 +36,13 @@
"when": 1784210311370,
"tag": "0004_fancy_baron_zemo",
"breakpoints": true
},
{
"idx": 5,
"version": "6",
"when": 1784234752708,
"tag": "0005_brief_black_bolt",
"breakpoints": true
}
]
}
+1
View File
@@ -1,4 +1,5 @@
export * from "./auth";
export * from "./domain";
export * from "./runtime";
export * from "./settings";
export * from "./storage";
+25
View File
@@ -0,0 +1,25 @@
import { sql } from "drizzle-orm";
import { check, sqliteTable, text } from "drizzle-orm/sqlite-core";
import { user } from "./auth";
export type AiProvider = "gemini" | "openai" | "groq" | "ollama";
export const userAiSettings = sqliteTable(
"user_ai_settings",
{
ownerUserId: text("owner_user_id")
.primaryKey()
.references(() => user.id, { onDelete: "cascade" }),
provider: text("provider").$type<AiProvider>().default("gemini").notNull(),
model: text("model"),
encryptedApiKey: text("encrypted_api_key"),
createdAt: text("created_at").default(sql`CURRENT_TIMESTAMP`).notNull(),
updatedAt: text("updated_at").default(sql`CURRENT_TIMESTAMP`).notNull(),
},
(table) => [
check(
"user_ai_settings_provider_check",
sql`${table.provider} in ('gemini', 'openai', 'groq', 'ollama')`,
),
],
);