import { PASTE_TEXT } from '#/events/constants' import db from '@/utils/db' import { sendToMain } from '@/utils/dataSender' import { clipboard, ipc } from '@/utils/bridge' import { resolveTimestampValue } from '@/utils/common' function resolveAlbumItemTimestamp (item: ImgInfo) { return resolveTimestampValue(item.createdAt) || resolveTimestampValue(item.updatedAt) } export const albumAdapter = { async getAlbumItems () { const result = await db.get({ orderBy: 'desc' }) return result.data }, async getRecentUploads (limit = 100) { const result = await db.get({ orderBy: 'desc' }) return [...result.data] .sort((left, right) => resolveAlbumItemTimestamp(right) - resolveAlbumItemTimestamp(left)) .slice(0, limit) }, async updateImageUrl (id: string, imgUrl: string) { await db.updateById(id, { imgUrl }) }, async updateImportFlag (id: string, imported: boolean) { await db.updateById(id, { _importToPicGoCloud: imported }) }, async removeById (id: string) { const file = await db.getById(id) await db.removeById(id) if (file) { sendToMain('removeFiles', [file]) } }, async copyImageLink (item: ImgInfo) { return ipc.invoke(PASTE_TEXT, item) }, copyBatchLinks (links: string[]) { clipboard.writeText(links.join('\n')) } }