Files
portabase/src/db/schema/13_storage-policy.ts
T
e38519aec2 feat: org agent management (#259)
* feat: org agent management

* feat: org agent management

* fix: adding migrations for legacy and refactoring.

* fix: refactoring

* fix: delete agent

* fix: refactoring

---------

Co-authored-by: charles-gauthereau <charles.gauthereau@soluce-technologies.com>
2026-04-10 18:37:35 +02:00

39 lines
1.3 KiB
TypeScript

import {boolean, pgTable, uuid} from "drizzle-orm/pg-core";
import {timestamps} from "@/db/schema/00_common";
import {relations} from "drizzle-orm";
import {database} from "@/db/schema/07_database";
import {createSelectSchema} from "drizzle-zod";
import {z} from "zod";
import {StorageChannel, storageChannel} from "@/db/schema/12_storage-channel";
export const storagePolicy = pgTable('storage_policy', {
id: uuid('id').defaultRandom().primaryKey(),
storageChannelId: uuid('storage_channel_id')
.notNull()
.references(() => storageChannel.id, {onDelete: 'cascade'}),
enabled: boolean('enabled').default(true).notNull(),
databaseId: uuid('database_id')
.notNull()
.references(() => database.id, {onDelete: 'cascade'}),
...timestamps
});
export const storagePolicyRelations = relations(storagePolicy, ({one}) => ({
storageChannel: one(storageChannel, {
fields: [storagePolicy.storageChannelId],
references: [storageChannel.id],
}),
database: one(database, {
fields: [storagePolicy.databaseId],
references: [database.id],
}),
}));
export const storagePolicySchema = createSelectSchema(storagePolicy);
export type StoragePolicy = z.infer<typeof storagePolicySchema>;
export type StoragePolicyWith = StoragePolicy & {
storageChannel: StorageChannel;
};