import { Collection, Link, Tag, User } from "@prisma/client"; type OptionalExcluding = Partial & Pick; export interface LinkIncludingCollectionAndTags extends Omit { id?: number; createdAt?: string; collectionId?: number; tags: Tag[]; collection: OptionalExcluding; } export interface Member { collectionId?: number; userId?: number; canCreate: boolean; canUpdate: boolean; canDelete: boolean; user: OptionalExcluding; } export interface CollectionIncludingMembers extends Omit { id?: number; createdAt?: string; members: Member[]; } export interface AccountSettings extends User { profilePic: string | null; oldPassword?: string; newPassword?: string; } export type SearchSettings = { query: string; filter: { name: boolean; url: boolean; title: boolean; collection: boolean; tags: boolean; }; }; export interface PublicCollectionIncludingLinks extends Omit { ownerName?: string; links: Omit[]; }