Files
portabase/src/db/schema/01_setting.ts
T

34 lines
1.5 KiB
TypeScript
Raw Normal View History

import {pgTable, timestamp, uuid, varchar} from "drizzle-orm/pg-core";
import {typeStorageEnum} from "./types";
import {createSelectSchema} from "drizzle-zod";
import {z} from "zod";
import {timestamps} from "@/db/schema/00_common";
import {storageChannel} from "@/db/schema/12_storage-channel";
import {relations} from "drizzle-orm";
import {agent} from "@/db/schema/08_agent";
import {project} from "@/db/schema/06_project";
import {alertPolicy} from "@/db/schema/10_alert-policy";
import {storagePolicy} from "@/db/schema/13_storage-policy";
import {backup, database, restoration, retentionPolicy} from "@/db/schema/07_database";
2025-05-16 15:54:17 +02:00
export const setting = pgTable("settings", {
id: uuid("id").primaryKey().defaultRandom(),
name: varchar("name", {length: 255}).unique().notNull(),
smtpPassword: varchar("smtp_password", {length: 255}),
smtpFrom: varchar("smtp_from", {length: 255}),
smtpHost: varchar("smtp_host", {length: 255}),
smtpPort: varchar("smtp_port", {length: 255}),
smtpUser: varchar("smtp_user", {length: 255}),
defaultStorageChannelId: uuid('default_storage_channel_id')
.references(() => storageChannel.id, {onDelete: "set null"}),
...timestamps
2025-05-16 15:54:17 +02:00
});
export const settingRelations = relations(setting, ({one, many}) => ({
storageChannel: one(storageChannel, {fields: [setting.defaultStorageChannelId], references: [storageChannel.id]}),
}));
2025-05-16 15:54:17 +02:00
export const settingSchema = createSelectSchema(setting);
export type Setting = z.infer<typeof settingSchema>;