diff --git a/apps/storage/packages/shared/src/index.ts b/apps/storage/packages/shared/src/index.ts new file mode 100644 index 000000000..fcb073fef --- /dev/null +++ b/apps/storage/packages/shared/src/index.ts @@ -0,0 +1 @@ +export * from './types'; diff --git a/apps/storage/packages/shared/src/types/index.ts b/apps/storage/packages/shared/src/types/index.ts new file mode 100644 index 000000000..37f6d587d --- /dev/null +++ b/apps/storage/packages/shared/src/types/index.ts @@ -0,0 +1,72 @@ +export interface StorageFile { + id: string; + userId: string; + name: string; + originalName: string; + mimeType: string; + size: number; + storagePath: string; + storageKey: string; + parentFolderId: string | null; + currentVersion: number; + isFavorite: boolean; + isDeleted: boolean; + deletedAt: Date | null; + createdAt: Date; + updatedAt: Date; +} + +export interface StorageFolder { + id: string; + userId: string; + name: string; + description: string | null; + parentFolderId: string | null; + path: string; + depth: number; + isFavorite: boolean; + isDeleted: boolean; + deletedAt: Date | null; + createdAt: Date; + updatedAt: Date; +} + +export interface FileVersion { + id: string; + fileId: string; + versionNumber: number; + storagePath: string; + storageKey: string; + size: number; + comment: string | null; + createdBy: string; + createdAt: Date; +} + +export interface Share { + id: string; + userId: string; + fileId: string | null; + folderId: string | null; + shareType: 'file' | 'folder'; + shareToken: string; + accessLevel: 'view' | 'edit' | 'download'; + password: string | null; + maxDownloads: number | null; + downloadCount: number; + expiresAt: Date | null; + createdAt: Date; +} + +export interface Tag { + id: string; + userId: string; + name: string; + color: string; + createdAt: Date; +} + +export interface FileTag { + fileId: string; + tagId: string; +} diff --git a/apps/storage/packages/shared/tsconfig.json b/apps/storage/packages/shared/tsconfig.json new file mode 100644 index 000000000..8c8de8cfe --- /dev/null +++ b/apps/storage/packages/shared/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "bundler", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "declaration": true, + "declarationMap": true, + "noEmit": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules"] +}