mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-02-04 16:16:55 +00:00
FileRepo의 함수 중 디렉터리 관련된 함수들을 DirectoryRepo로 분리
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import type { Generated } from "kysely";
|
||||
import type { Ciphertext } from "./utils";
|
||||
|
||||
interface CategoryTable {
|
||||
export interface CategoryTable {
|
||||
id: Generated<number>;
|
||||
parent_id: number | null;
|
||||
user_id: number;
|
||||
@@ -11,7 +11,7 @@ interface CategoryTable {
|
||||
encrypted_name: Ciphertext;
|
||||
}
|
||||
|
||||
interface CategoryLogTable {
|
||||
export interface CategoryLogTable {
|
||||
id: Generated<number>;
|
||||
category_id: number;
|
||||
timestamp: Date;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { ColumnType, Generated } from "kysely";
|
||||
|
||||
interface ClientTable {
|
||||
export interface ClientTable {
|
||||
id: Generated<number>;
|
||||
encryption_public_key: string; // Base64
|
||||
signature_public_key: string; // Base64
|
||||
@@ -8,13 +8,13 @@ interface ClientTable {
|
||||
|
||||
export type UserClientState = "challenging" | "pending" | "active";
|
||||
|
||||
interface UserClientTable {
|
||||
export interface UserClientTable {
|
||||
user_id: number;
|
||||
client_id: number;
|
||||
state: ColumnType<UserClientState, UserClientState | undefined>;
|
||||
}
|
||||
|
||||
interface UserClientChallengeTable {
|
||||
export interface UserClientChallengeTable {
|
||||
id: Generated<number>;
|
||||
user_id: number;
|
||||
client_id: number;
|
||||
|
||||
28
src/lib/server/db/schema/directory.ts
Normal file
28
src/lib/server/db/schema/directory.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import type { ColumnType, Generated } from "kysely";
|
||||
import type { Ciphertext } from "./utils";
|
||||
|
||||
export interface DirectoryTable {
|
||||
id: Generated<number>;
|
||||
parent_id: number | null;
|
||||
user_id: number;
|
||||
master_encryption_key_version: number;
|
||||
encrypted_data_encryption_key: string; // Base64
|
||||
data_encryption_key_version: Date;
|
||||
encrypted_name: Ciphertext;
|
||||
is_favorite: Generated<boolean>;
|
||||
}
|
||||
|
||||
export interface DirectoryLogTable {
|
||||
id: Generated<number>;
|
||||
directory_id: number;
|
||||
timestamp: ColumnType<Date, Date, never>;
|
||||
action: "create" | "rename" | "add-to-favorites" | "remove-from-favorites";
|
||||
new_name: Ciphertext | null;
|
||||
}
|
||||
|
||||
declare module "./index" {
|
||||
interface Database {
|
||||
directory: DirectoryTable;
|
||||
directory_log: DirectoryLogTable;
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,7 @@
|
||||
import type { ColumnType, Generated } from "kysely";
|
||||
import type { Ciphertext } from "./utils";
|
||||
|
||||
interface DirectoryTable {
|
||||
id: Generated<number>;
|
||||
parent_id: number | null;
|
||||
user_id: number;
|
||||
master_encryption_key_version: number;
|
||||
encrypted_data_encryption_key: string; // Base64
|
||||
data_encryption_key_version: Date;
|
||||
encrypted_name: Ciphertext;
|
||||
is_favorite: Generated<boolean>;
|
||||
}
|
||||
|
||||
interface DirectoryLogTable {
|
||||
id: Generated<number>;
|
||||
directory_id: number;
|
||||
timestamp: ColumnType<Date, Date, never>;
|
||||
action: "create" | "rename" | "add-to-favorites" | "remove-from-favorites";
|
||||
new_name: Ciphertext | null;
|
||||
}
|
||||
|
||||
interface FileTable {
|
||||
export interface FileTable {
|
||||
id: Generated<number>;
|
||||
parent_id: number | null;
|
||||
user_id: number;
|
||||
@@ -39,7 +20,7 @@ interface FileTable {
|
||||
is_favorite: Generated<boolean>;
|
||||
}
|
||||
|
||||
interface FileLogTable {
|
||||
export interface FileLogTable {
|
||||
id: Generated<number>;
|
||||
file_id: number;
|
||||
timestamp: ColumnType<Date, Date, never>;
|
||||
@@ -55,15 +36,13 @@ interface FileLogTable {
|
||||
category_id: number | null;
|
||||
}
|
||||
|
||||
interface FileCategoryTable {
|
||||
export interface FileCategoryTable {
|
||||
file_id: number;
|
||||
category_id: number;
|
||||
}
|
||||
|
||||
declare module "./index" {
|
||||
interface Database {
|
||||
directory: DirectoryTable;
|
||||
directory_log: DirectoryLogTable;
|
||||
file: FileTable;
|
||||
file_log: FileLogTable;
|
||||
file_category: FileCategoryTable;
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { ColumnType, Generated } from "kysely";
|
||||
|
||||
export type HskState = "active";
|
||||
|
||||
interface HskTable {
|
||||
export interface HskTable {
|
||||
user_id: number;
|
||||
version: number;
|
||||
state: HskState;
|
||||
@@ -10,7 +10,7 @@ interface HskTable {
|
||||
encrypted_key: string; // Base64
|
||||
}
|
||||
|
||||
interface HskLogTable {
|
||||
export interface HskLogTable {
|
||||
id: Generated<number>;
|
||||
user_id: number;
|
||||
hmac_secret_key_version: number;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
export * from "./category";
|
||||
export * from "./client";
|
||||
export * from "./directory";
|
||||
export * from "./file";
|
||||
export * from "./hsk";
|
||||
export * from "./media";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Generated } from "kysely";
|
||||
|
||||
interface ThumbnailTable {
|
||||
export interface ThumbnailTable {
|
||||
id: Generated<number>;
|
||||
directory_id: number | null;
|
||||
file_id: number | null;
|
||||
|
||||
@@ -2,13 +2,13 @@ import type { ColumnType, Generated } from "kysely";
|
||||
|
||||
export type MekState = "active" | "retired" | "dead";
|
||||
|
||||
interface MekTable {
|
||||
export interface MekTable {
|
||||
user_id: number;
|
||||
version: number;
|
||||
state: MekState;
|
||||
}
|
||||
|
||||
interface MekLogTable {
|
||||
export interface MekLogTable {
|
||||
id: Generated<number>;
|
||||
user_id: number;
|
||||
master_encryption_key_version: number;
|
||||
@@ -17,7 +17,7 @@ interface MekLogTable {
|
||||
action_by: number | null;
|
||||
}
|
||||
|
||||
interface ClientMekTable {
|
||||
export interface ClientMekTable {
|
||||
user_id: number;
|
||||
client_id: number;
|
||||
version: number;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { ColumnType, Generated } from "kysely";
|
||||
|
||||
interface SessionTable {
|
||||
export interface SessionTable {
|
||||
id: string;
|
||||
user_id: number;
|
||||
client_id: number | null;
|
||||
@@ -10,7 +10,7 @@ interface SessionTable {
|
||||
last_used_by_agent: string | null;
|
||||
}
|
||||
|
||||
interface SessionUpgradeChallengeTable {
|
||||
export interface SessionUpgradeChallengeTable {
|
||||
id: Generated<number>;
|
||||
session_id: string;
|
||||
client_id: number;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { Generated } from "kysely";
|
||||
import type { Ciphertext } from "./utils";
|
||||
|
||||
interface UploadSessionTable {
|
||||
export interface UploadSessionTable {
|
||||
id: string;
|
||||
type: "file" | "thumbnail" | "migration";
|
||||
user_id: number;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Generated } from "kysely";
|
||||
|
||||
interface UserTable {
|
||||
export interface UserTable {
|
||||
id: Generated<number>;
|
||||
email: string;
|
||||
nickname: string;
|
||||
|
||||
Reference in New Issue
Block a user