import { type Video, type InsertVideo, type UpdateVideo, type User, type InsertUser, type VideoUpload, type InsertVideoUpload, type Category, type InsertCategory, type Tag, type InsertTag, videos, users, videoUploads, categories, tags, videoTags } from "@shared/schema"; import { randomUUID } from "crypto"; import { BunnyService } from "./bunny"; import { videoSyncService } from "./videoSync"; import { db } from "./db"; import { eq, desc, asc, like, or, sql, and } from "drizzle-orm"; import bcrypt from "bcryptjs"; export interface IStorage { // Video operations getVideos(limit?: number, offset?: number, search?: string): Promise; getVideo(id: string): Promise