Authors can flag a review's comment as containing spoilers; the comment is blurred behind a reveal control for every viewer except the author, omitted from RSS, and federates as containsSpoilers plus an AP summary content warning (ADR-0011) so Mastodon-class clients also collapse it. Flag follows the general-edit path (ADR-0001) across domain, both DB backends, REST, HTML templates, SPA (shadcn), TUI fixtures, and exports.
42 lines
1005 B
Rust
42 lines
1005 B
Rust
use chrono::NaiveDateTime;
|
|
use domain::value_objects::WatchMedium;
|
|
use uuid::Uuid;
|
|
|
|
pub struct MovieInput {
|
|
pub movie_id: Option<Uuid>,
|
|
pub external_metadata_id: Option<String>,
|
|
pub manual_title: Option<String>,
|
|
pub manual_release_year: Option<u16>,
|
|
pub manual_director: Option<String>,
|
|
}
|
|
|
|
pub struct LogReviewCommand {
|
|
pub user_id: Uuid,
|
|
pub input: MovieInput,
|
|
pub rating: u8,
|
|
pub comment: Option<String>,
|
|
pub watched_at: NaiveDateTime,
|
|
pub watch_medium: Option<WatchMedium>,
|
|
pub spoilers: bool,
|
|
}
|
|
|
|
pub struct DeleteReviewCommand {
|
|
pub review_id: Uuid,
|
|
pub requesting_user_id: Uuid,
|
|
}
|
|
|
|
pub struct EditReviewCommand {
|
|
pub review_id: Uuid,
|
|
pub requesting_user_id: Uuid,
|
|
pub rating: Option<u8>,
|
|
pub comment: Option<Option<String>>,
|
|
pub watched_at: Option<NaiveDateTime>,
|
|
pub watch_medium: Option<Option<WatchMedium>>,
|
|
pub spoilers: Option<bool>,
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct SyncPosterCommand {
|
|
pub movie_id: Uuid,
|
|
}
|