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[]; pinnedBy?: { id: number; }[]; 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; oldPassword?: string; newPassword?: string; } export interface PublicCollectionIncludingLinks extends Omit { ownerName?: string; links: Link[]; } export enum Sort { NameAZ, NameZA, TitleAZ, TitleZA, DateNewestFirst, DateOldestFirst, }