// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 package database import ( "github.com/jackc/pgx/v5/pgtype" ) type CollectionItems struct { ID pgtype.UUID `db:"id" json:"id"` CollectionID pgtype.UUID `db:"collection_id" json:"collection_id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` AddedAt pgtype.Timestamptz `db:"added_at" json:"added_at"` AddedByUserID pgtype.UUID `db:"added_by_user_id" json:"added_by_user_id"` Excluded pgtype.Bool `db:"excluded" json:"excluded"` } type Collections struct { ID pgtype.UUID `db:"id" json:"id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` Name string `db:"name" json:"name"` Description pgtype.Text `db:"description" json:"description"` Color pgtype.Text `db:"color" json:"color"` Icon pgtype.Text `db:"icon" json:"icon"` AutoAssignRules []byte `db:"auto_assign_rules" json:"auto_assign_rules"` ViewSettings []byte `db:"view_settings" json:"view_settings"` ShowOnDashboard pgtype.Bool `db:"show_on_dashboard" json:"show_on_dashboard"` QueryType pgtype.Text `db:"query_type" json:"query_type"` Priority pgtype.Int4 `db:"priority" json:"priority"` IsSystemCollection pgtype.Bool `db:"is_system_collection" json:"is_system_collection"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` } type DeviceCatalogs struct { ID pgtype.UUID `db:"id" json:"id"` DeviceID pgtype.UUID `db:"device_id" json:"device_id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` BookhoardUuid pgtype.UUID `db:"bookhoard_uuid" json:"bookhoard_uuid"` KoboContentID string `db:"kobo_content_id" json:"kobo_content_id"` ContentIDType pgtype.Text `db:"content_id_type" json:"content_id_type"` Available pgtype.Bool `db:"available" json:"available"` DeliveryDate pgtype.Timestamptz `db:"delivery_date" json:"delivery_date"` DeliveryMethod pgtype.Text `db:"delivery_method" json:"delivery_method"` } type DeviceFileAliases struct { ID pgtype.UUID `db:"id" json:"id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` DeviceID pgtype.UUID `db:"device_id" json:"device_id"` FilePath string `db:"file_path" json:"file_path"` FileSha256 pgtype.Text `db:"file_sha256" json:"file_sha256"` ConfidenceScore pgtype.Float8 `db:"confidence_score" json:"confidence_score"` LastSeenAt pgtype.Timestamptz `db:"last_seen_at" json:"last_seen_at"` } type DeviceShelfMappings struct { ID pgtype.UUID `db:"id" json:"id"` CollectionID pgtype.UUID `db:"collection_id" json:"collection_id"` DeviceID pgtype.UUID `db:"device_id" json:"device_id"` DeviceShelfName pgtype.Text `db:"device_shelf_name" json:"device_shelf_name"` SyncDirection pgtype.Text `db:"sync_direction" json:"sync_direction"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` } type Devices struct { ID pgtype.UUID `db:"id" json:"id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` DeviceName string `db:"device_name" json:"device_name"` DeviceType string `db:"device_type" json:"device_type"` DeviceIdentifier string `db:"device_identifier" json:"device_identifier"` AuthToken string `db:"auth_token" json:"auth_token"` LastSync pgtype.Timestamptz `db:"last_sync" json:"last_sync"` LastSeen pgtype.Timestamptz `db:"last_seen" json:"last_seen"` SyncEnabled pgtype.Bool `db:"sync_enabled" json:"sync_enabled"` AutoSync pgtype.Bool `db:"auto_sync" json:"auto_sync"` SyncFrequencyMinutes pgtype.Int4 `db:"sync_frequency_minutes" json:"sync_frequency_minutes"` DeviceMetadata []byte `db:"device_metadata" json:"device_metadata"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` } type KoboEntitlements struct { ID pgtype.UUID `db:"id" json:"id"` DeviceID pgtype.UUID `db:"device_id" json:"device_id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` EntitlementID string `db:"entitlement_id" json:"entitlement_id"` ContentID string `db:"content_id" json:"content_id"` RevisionNumber pgtype.Int4 `db:"revision_number" json:"revision_number"` PurchaseDate pgtype.Timestamptz `db:"purchase_date" json:"purchase_date"` AccessionDate pgtype.Timestamptz `db:"accession_date" json:"accession_date"` BookStatus pgtype.Text `db:"book_status" json:"book_status"` SyncStatus pgtype.Text `db:"sync_status" json:"sync_status"` KoboMetadata []byte `db:"kobo_metadata" json:"kobo_metadata"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` } type KoboShelves struct { ID pgtype.UUID `db:"id" json:"id"` DeviceID pgtype.UUID `db:"device_id" json:"device_id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` ShelfName pgtype.Text `db:"shelf_name" json:"shelf_name"` ShelfPosition pgtype.Int4 `db:"shelf_position" json:"shelf_position"` AddedAt pgtype.Timestamptz `db:"added_at" json:"added_at"` LastSyncedAt pgtype.Timestamptz `db:"last_synced_at" json:"last_synced_at"` CollectionID pgtype.UUID `db:"collection_id" json:"collection_id"` PositionInCollection pgtype.Int4 `db:"position_in_collection" json:"position_in_collection"` } type Libraries struct { ID pgtype.UUID `db:"id" json:"id"` Name string `db:"name" json:"name"` Description pgtype.Text `db:"description" json:"description"` LibraryTypeID pgtype.UUID `db:"library_type_id" json:"library_type_id"` CreatedByAdminID pgtype.UUID `db:"created_by_admin_id" json:"created_by_admin_id"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` } type LibraryFolders struct { ID pgtype.UUID `db:"id" json:"id"` LibraryID pgtype.UUID `db:"library_id" json:"library_id"` FolderPath string `db:"folder_path" json:"folder_path"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` } type LibraryTypes struct { ID pgtype.UUID `db:"id" json:"id"` Name string `db:"name" json:"name"` Description pgtype.Text `db:"description" json:"description"` AllowedExtensions []string `db:"allowed_extensions" json:"allowed_extensions"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` } type LibraryVisibility struct { ID pgtype.UUID `db:"id" json:"id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` LibraryID pgtype.UUID `db:"library_id" json:"library_id"` IsVisible bool `db:"is_visible" json:"is_visible"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` } type MediaHighlights struct { ID pgtype.UUID `db:"id" json:"id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` SelectionText string `db:"selection_text" json:"selection_text"` StartPosition pgtype.Text `db:"start_position" json:"start_position"` EndPosition pgtype.Text `db:"end_position" json:"end_position"` Color pgtype.Text `db:"color" json:"color"` NoteID pgtype.UUID `db:"note_id" json:"note_id"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` PercentageStart pgtype.Float8 `db:"percentage_start" json:"percentage_start"` PercentageEnd pgtype.Float8 `db:"percentage_end" json:"percentage_end"` CharacterStart pgtype.Int4 `db:"character_start" json:"character_start"` CharacterEnd pgtype.Int4 `db:"character_end" json:"character_end"` EpubcfiStart pgtype.Text `db:"epubcfi_start" json:"epubcfi_start"` EpubcfiEnd pgtype.Text `db:"epubcfi_end" json:"epubcfi_end"` ChapterReference pgtype.Int4 `db:"chapter_reference" json:"chapter_reference"` ParagraphStart pgtype.Int4 `db:"paragraph_start" json:"paragraph_start"` ParagraphEnd pgtype.Int4 `db:"paragraph_end" json:"paragraph_end"` PanelNumber pgtype.Int4 `db:"panel_number" json:"panel_number"` DeviceSyncData []byte `db:"device_sync_data" json:"device_sync_data"` } type MediaItemFormats struct { ID pgtype.UUID `db:"id" json:"id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` FormatType string `db:"format_type" json:"format_type"` FilePath pgtype.Text `db:"file_path" json:"file_path"` FileSha256 pgtype.Text `db:"file_sha256" json:"file_sha256"` FileSizeBytes pgtype.Int8 `db:"file_size_bytes" json:"file_size_bytes"` MimeType pgtype.Text `db:"mime_type" json:"mime_type"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` ConvertedFromFormatID pgtype.UUID `db:"converted_from_format_id" json:"converted_from_format_id"` } type MediaItems struct { ID pgtype.UUID `db:"id" json:"id"` LibraryID pgtype.UUID `db:"library_id" json:"library_id"` Title string `db:"title" json:"title"` Author pgtype.Text `db:"author" json:"author"` Isbn pgtype.Text `db:"isbn" json:"isbn"` Description pgtype.Text `db:"description" json:"description"` FilePath string `db:"file_path" json:"file_path"` FileSize pgtype.Int8 `db:"file_size" json:"file_size"` MimeType pgtype.Text `db:"mime_type" json:"mime_type"` CoverImagePath pgtype.Text `db:"cover_image_path" json:"cover_image_path"` Series pgtype.Text `db:"series" json:"series"` SeriesNumber pgtype.Int4 `db:"series_number" json:"series_number"` Tags []string `db:"tags" json:"tags"` Asin pgtype.Text `db:"asin" json:"asin"` DatePublished pgtype.Date `db:"date_published" json:"date_published"` Publisher pgtype.Text `db:"publisher" json:"publisher"` Contributors []string `db:"contributors" json:"contributors"` // ISO 639-1 language code (e.g., en, es, fr) Language pgtype.Text `db:"language" json:"language"` // Edition information (e.g., "First Edition", "Revised Edition") Edition pgtype.Text `db:"edition" json:"edition"` // Total page count for progress tracking and sorting PageCount pgtype.Int4 `db:"page_count" json:"page_count"` // Genre classification for filtering and discovery Genre pgtype.Text `db:"genre" json:"genre"` // Copyright or publication year for filtering/sorting CopyrightYear pgtype.Int4 `db:"copyright_year" json:"copyright_year"` // Goodreads book identifier for integration GoodreadsID pgtype.Text `db:"goodreads_id" json:"goodreads_id"` // Open Library identifier for integration OpenlibraryID pgtype.Text `db:"openlibrary_id" json:"openlibrary_id"` // Google Books identifier for integration GoogleBooksID pgtype.Text `db:"google_books_id" json:"google_books_id"` AddedByAdminID pgtype.UUID `db:"added_by_admin_id" json:"added_by_admin_id"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` FormatGroup string `db:"format_group" json:"format_group"` FormatMimetype pgtype.Text `db:"format_mimetype" json:"format_mimetype"` IsReflowable pgtype.Bool `db:"is_reflowable" json:"is_reflowable"` HasFixedLayout pgtype.Bool `db:"has_fixed_layout" json:"has_fixed_layout"` TotalCharacters pgtype.Int8 `db:"total_characters" json:"total_characters"` ChapterCount pgtype.Int4 `db:"chapter_count" json:"chapter_count"` EntitlementID pgtype.Text `db:"entitlement_id" json:"entitlement_id"` RevisionNumber pgtype.Int4 `db:"revision_number" json:"revision_number"` KoboContentID pgtype.Text `db:"kobo_content_id" json:"kobo_content_id"` KoboMetadata []byte `db:"kobo_metadata" json:"kobo_metadata"` TagsSearch []string `db:"tags_search" json:"tags_search"` ContributorsSearch []string `db:"contributors_search" json:"contributors_search"` FileSha256 pgtype.Text `db:"file_sha256" json:"file_sha256"` OpfIdentifier pgtype.Text `db:"opf_identifier" json:"opf_identifier"` OpfUuid pgtype.Text `db:"opf_uuid" json:"opf_uuid"` HashConfidence pgtype.Text `db:"hash_confidence" json:"hash_confidence"` } type MediaNotes struct { ID pgtype.UUID `db:"id" json:"id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` Content string `db:"content" json:"content"` Position pgtype.Text `db:"position" json:"position"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` PercentageLocation pgtype.Float8 `db:"percentage_location" json:"percentage_location"` CharacterStart pgtype.Int4 `db:"character_start" json:"character_start"` CharacterEnd pgtype.Int4 `db:"character_end" json:"character_end"` EpubcfiLocation pgtype.Text `db:"epubcfi_location" json:"epubcfi_location"` ChapterReference pgtype.Int4 `db:"chapter_reference" json:"chapter_reference"` ParagraphReference pgtype.Int4 `db:"paragraph_reference" json:"paragraph_reference"` DeviceSyncData []byte `db:"device_sync_data" json:"device_sync_data"` } type MediaRatings struct { ID pgtype.UUID `db:"id" json:"id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` // Rating scale 1-10 (odd numbers = half-stars: 1,3,5,7,9 = 0.5,1.5,2.5,3.5,4.5 stars) Rating int32 `db:"rating" json:"rating"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` } type OpdsTokens struct { ID pgtype.UUID `db:"id" json:"id"` DeviceID pgtype.UUID `db:"device_id" json:"device_id"` Token string `db:"token" json:"token"` TokenType pgtype.Text `db:"token_type" json:"token_type"` ExpiresAt pgtype.Timestamptz `db:"expires_at" json:"expires_at"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` } type ReadingHistory struct { ID pgtype.UUID `db:"id" json:"id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` DeviceID pgtype.UUID `db:"device_id" json:"device_id"` ProgressPercentage pgtype.Float8 `db:"progress_percentage" json:"progress_percentage"` ReadingSessionStart pgtype.Timestamptz `db:"reading_session_start" json:"reading_session_start"` ReadingSessionEnd pgtype.Timestamptz `db:"reading_session_end" json:"reading_session_end"` PagesRead pgtype.Int4 `db:"pages_read" json:"pages_read"` TimeSpentSeconds pgtype.Int4 `db:"time_spent_seconds" json:"time_spent_seconds"` DeviceMetadata []byte `db:"device_metadata" json:"device_metadata"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` } type ReadingProgress struct { ID pgtype.UUID `db:"id" json:"id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` CurrentPage pgtype.Int4 `db:"current_page" json:"current_page"` TotalPages pgtype.Int4 `db:"total_pages" json:"total_pages"` LastReadAt pgtype.Timestamptz `db:"last_read_at" json:"last_read_at"` Percentage pgtype.Float8 `db:"percentage" json:"percentage"` CharacterOffset pgtype.Int8 `db:"character_offset" json:"character_offset"` Epubcfi pgtype.Text `db:"epubcfi" json:"epubcfi"` Chapter pgtype.Int4 `db:"chapter" json:"chapter"` ChapterProgress pgtype.Float8 `db:"chapter_progress" json:"chapter_progress"` ViewportX pgtype.Float8 `db:"viewport_x" json:"viewport_x"` ViewportY pgtype.Float8 `db:"viewport_y" json:"viewport_y"` ZoomLevel pgtype.Float8 `db:"zoom_level" json:"zoom_level"` ScrollPositionX pgtype.Float8 `db:"scroll_position_x" json:"scroll_position_x"` ScrollPositionY pgtype.Float8 `db:"scroll_position_y" json:"scroll_position_y"` PanelNumber pgtype.Int4 `db:"panel_number" json:"panel_number"` ReadingMode pgtype.Text `db:"reading_mode" json:"reading_mode"` LastSyncDevice pgtype.Text `db:"last_sync_device" json:"last_sync_device"` LastSyncSource pgtype.Text `db:"last_sync_source" json:"last_sync_source"` LastSyncTimestamp pgtype.Timestamptz `db:"last_sync_timestamp" json:"last_sync_timestamp"` ConflictDetected pgtype.Bool `db:"conflict_detected" json:"conflict_detected"` ConflictResolved pgtype.Bool `db:"conflict_resolved" json:"conflict_resolved"` } type RefreshTokens struct { ID pgtype.UUID `db:"id" json:"id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` Token pgtype.UUID `db:"token" json:"token"` ExpiresAt pgtype.Timestamptz `db:"expires_at" json:"expires_at"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` RevokedAt pgtype.Timestamptz `db:"revoked_at" json:"revoked_at"` } type SavedFilters struct { ID pgtype.UUID `db:"id" json:"id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` Name string `db:"name" json:"name"` ResourceType string `db:"resource_type" json:"resource_type"` Filters []byte `db:"filters" json:"filters"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` } type SyncConflicts struct { ID pgtype.UUID `db:"id" json:"id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` ConflictType string `db:"conflict_type" json:"conflict_type"` ConflictData []byte `db:"conflict_data" json:"conflict_data"` ResolutionStatus pgtype.Text `db:"resolution_status" json:"resolution_status"` ResolutionData []byte `db:"resolution_data" json:"resolution_data"` ResolvedBy pgtype.UUID `db:"resolved_by" json:"resolved_by"` ResolvedAt pgtype.Timestamptz `db:"resolved_at" json:"resolved_at"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` } type SyncQueue struct { ID pgtype.UUID `db:"id" json:"id"` DeviceID pgtype.UUID `db:"device_id" json:"device_id"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` SyncType string `db:"sync_type" json:"sync_type"` SyncData []byte `db:"sync_data" json:"sync_data"` Priority pgtype.Int4 `db:"priority" json:"priority"` Attempts pgtype.Int4 `db:"attempts" json:"attempts"` MaxAttempts pgtype.Int4 `db:"max_attempts" json:"max_attempts"` Status pgtype.Text `db:"status" json:"status"` ErrorMessage pgtype.Text `db:"error_message" json:"error_message"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` ProcessedAt pgtype.Timestamptz `db:"processed_at" json:"processed_at"` } type SystemConfig struct { Key string `db:"key" json:"key"` Value string `db:"value" json:"value"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` UpdatedBy pgtype.UUID `db:"updated_by" json:"updated_by"` } type SystemSettings struct { ID pgtype.UUID `db:"id" json:"id"` SettingKey string `db:"setting_key" json:"setting_key"` SettingValue string `db:"setting_value" json:"setting_value"` Description pgtype.Text `db:"description" json:"description"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` } type UnlinkedBooks struct { ID pgtype.UUID `db:"id" json:"id"` DeviceID pgtype.UUID `db:"device_id" json:"device_id"` ContentID string `db:"content_id" json:"content_id"` FilePath pgtype.Text `db:"file_path" json:"file_path"` Title pgtype.Text `db:"title" json:"title"` Author pgtype.Text `db:"author" json:"author"` ConfidenceScore pgtype.Float8 `db:"confidence_score" json:"confidence_score"` Resolved pgtype.Bool `db:"resolved" json:"resolved"` MediaItemID pgtype.UUID `db:"media_item_id" json:"media_item_id"` ResolvedAt pgtype.Timestamptz `db:"resolved_at" json:"resolved_at"` ResolutionMethod pgtype.Text `db:"resolution_method" json:"resolution_method"` LastSeenAt pgtype.Timestamptz `db:"last_seen_at" json:"last_seen_at"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` } type UserDashboardPreferences struct { ID pgtype.UUID `db:"id" json:"id"` UserID pgtype.UUID `db:"user_id" json:"user_id"` LibraryID pgtype.UUID `db:"library_id" json:"library_id"` HiddenCollections []string `db:"hidden_collections" json:"hidden_collections"` CollectionOrder []string `db:"collection_order" json:"collection_order"` ItemsPerSection pgtype.Int4 `db:"items_per_section" json:"items_per_section"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` } type Users struct { ID pgtype.UUID `db:"id" json:"id"` Email string `db:"email" json:"email"` Username string `db:"username" json:"username"` PasswordHash string `db:"password_hash" json:"password_hash"` FirstName pgtype.Text `db:"first_name" json:"first_name"` LastName pgtype.Text `db:"last_name" json:"last_name"` Role string `db:"role" json:"role"` Theme pgtype.Text `db:"theme" json:"theme"` MaxDevices pgtype.Int4 `db:"max_devices" json:"max_devices"` CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` }