feat(core): add movie domain types #47
Reference in New Issue
Block a user
Delete Branch "issue/7-core-types"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds the movie-side domain model from DESIGN.md §4, including typed IDs, policy data, release and file evidence, grabs, blacklist entries, and owners.
Portuguese variants are distinct, Dolby Vision retains its profile, and every waived or rejected verdict carries its deciding rule. Movie intent is represented only by
wanted.Closes #7
Verification
just cicargo tree -p arr-core(no dependencies)@@ -2,3 +1,1 @@//!//! This crate must never depend on `axum`, `sqlx` or `reqwest`. It holds the//! logic that is tested constantly and it has to stay fast to compile.//! Pure domain types shared by the arr crates.The old crate doc stated the no-axum/sqlx/reqwest invariant; the new one drops it. Cheap to keep it here where the next contributor to this crate will actually see it.
@@ -5,0 +66,4 @@Hdr10,Hdr10Plus,Hlg,DolbyVision { profile: u8 },profile: u8cannot carry the DV compatibility id. §5.3's accept row is 8.1 specifically; ffprobe reportsdv_profile: 8plus a separatedv_bl_signal_compatibility_id. With only a u8,rejected_dolby_vision_profilescannot accept 8.1 while rejecting 8.2 (SDR base layer). Either carry the compat id alongside the profile, or document thatprofilemeans base profile only and 8.x distinctions are out of scope.@@ -5,0 +180,4 @@pub struct ParsedRelease {pub resolution: Option<Resolution>,pub source: Option<Source>,pub hdr: Vec<HdrFormat>,ParsedRelease.hdrreusesHdrFormat, whoseDolbyVision { profile: u8 }makes the profile mandatory — but DESIGN.md §5.3 says the profile is knowable only from ffprobe, never from a release name. As typed, the parser must invent a profile for any name that claims DV. A separate pre-grab HDR claim type (or a profile-less DV variant for parsed data) keeps the impossible state unrepresentable.Addressed all three findings in
f764402:HdrClaimnow represents profile-less release-name claims separately from probedHdrFormat.DolbyVisionProfilecarries both the base profile and optional compatibility ID, including the 8.1/8.2 distinction.just cipasses andcargo tree -p arr-coreremains dependency-free.Reviewed
f764402. No findings — all three addressed.