/** * Collections Types * Type definitions for the Collections feature */ export type CollectionContentType = 'channel' | 'movie' | 'series'; export interface DatabaseCollection { id: string; profile_id: string; user_id: string; name: string; description: string | null; accent_color: string | null; is_private: boolean; is_pinned?: boolean; sort_order: number; created_at: string; updated_at: string; } export interface DatabaseCollectionItem { id: string; collection_id: string; content_id: string; content_type: CollectionContentType; content_name: string | null; content_image_url: string | null; sort_order: number; added_at: string; } export interface DatabaseCollectionShare { id: string; collection_id: string; shared_with_profile_id: string; permission: 'view' | 'edit'; shared_at: string; accessed_at: string | null; } export interface Collection { id: string; profileId: string; userId: string; name: string; description?: string; accentColor: string; isPrivate: boolean; isPinned: boolean; sortOrder: number; createdAt: string; updatedAt: string; itemCount?: number; items?: CollectionItem[]; previewImages?: string[]; sharedWithProfiles?: string[]; } export interface CollectionItem { id: string; collectionId: string; contentId: string; contentType: CollectionContentType; contentName?: string; contentImageUrl?: string; sortOrder: number; addedAt: string; } export interface CollectionShare { id: string; collectionId: string; sharedWithProfileId: string; permission: 'view' | 'edit'; sharedAt: string; accessedAt?: string; } export interface CreateCollectionInput { profileId: string; name: string; description?: string; accentColor?: string; } export interface UpdateCollectionInput { name?: string; description?: string; accentColor?: string; sortOrder?: number; } export interface ShareCollectionInput { collectionId: string; profileId: string; permission?: 'view' | 'edit'; } export interface AddToCollectionInput { collectionId: string; contentId: string; contentType: CollectionContentType; contentName?: string; contentImageUrl?: string; } export interface ReorderCollectionItemsInput { collectionId: string; itemIds: string[]; } export interface CollectionWithItems extends Collection { items: CollectionItem[]; } /** Predefined accent color palette for collections */ export declare const COLLECTION_COLORS: readonly ["#A91B18", "#3B82F6", "#10B981", "#F59E0B", "#EC4899", "#6366F1", "#14B8A6", "#8B5CF6", "#EF4444", "#F97316", "#84CC16", "#06B6D4", "#A855F7", "#E879F9", "#78716C", "#1E293B"]; export type CollectionColor = (typeof COLLECTION_COLORS)[number]; /** Default accent color for new collections */ export declare const DEFAULT_COLLECTION_COLOR: "#A91B18"; /** Maximum collections per profile (free tier) */ export declare const MAX_COLLECTIONS_PER_PROFILE = 10; /** Maximum collections for premium users (unlimited = -1) */ export declare const MAX_COLLECTIONS_PREMIUM = -1; /** Maximum items per collection */ export declare const MAX_ITEMS_PER_COLLECTION = 500; //# sourceMappingURL=collections.d.ts.map