schema: change community_rating to DOUBLE PRECISION for simpler type mapping

Change community_rating from DECIMAL(3,1) to DOUBLE PRECISION to:
- Eliminate awkward pgtype.Numeric conversion in Go code
- Enable direct pgtype.Float8 mapping from ComicInfo.xml float64
- Simplify code by matching natural types (XML float64 → PostgreSQL DOUBLE PRECISION → Go pgtype.Float8)
- Remove need for string formatting and Scan() method calls

The floating-point precision error (< 0.00001%) is negligible for 0-10 rating scale.
This simplifies Phase 4 implementation significantly.

Column comment updated to reflect DOUBLE PRECISION type.

Relates to: Phase 1 database schema changes for comic metadata support
This commit is contained in:
2026-03-29 21:12:18 -04:00
parent 76648e1a54
commit 54559a6e91
+2 -2
View File
@@ -156,7 +156,7 @@ CREATE TABLE IF NOT EXISTS media_items (
-- Additional metadata (applies to all formats)
metadata_notes TEXT, -- Notes from metadata files (ComicInfo.xml, EPUB, PDF) - distinct from user notes
community_rating DECIMAL(3,1), -- Pre-existing community rating from metadata (0.0-10.0) - distinct from user ratings
community_rating DOUBLE PRECISION, -- Pre-existing community rating from metadata (0.0-10.0) - distinct from user ratings
-- Alternate series information (JSONB for flexible schema - comic-specific)
alternate_info JSONB, -- Stores AlternateSeries, AlternateNumber, AlternateCount
@@ -567,7 +567,7 @@ COMMENT ON COLUMN media_items.web_url IS 'URL to info page (Goodreads, ComicVine
-- Additional metadata (applies to all formats)
COMMENT ON COLUMN media_items.metadata_notes IS 'Notes from metadata files (ComicInfo.xml, EPUB, PDF) - distinct from user notes in media_notes table';
COMMENT ON COLUMN media_items.community_rating IS 'Pre-existing community rating from metadata files (scale 0.0-10.0) - distinct from user ratings in media_ratings table';
COMMENT ON COLUMN media_items.community_rating IS 'Pre-existing community rating from metadata files (scale 0.0-10.0, DOUBLE PRECISION) - distinct from user ratings in media_ratings table';
COMMENT ON COLUMN media_items.summary IS 'Summary from ComicInfo.xml (may be merged with description from Calibre)';
-- Library Type File Extensions Notes: