A backup transfer target. config is a kind-specific JSON blob (credentials live here and are
never serialized raw — use BackupDestinationView). Not Serialize for exactly that reason.
Per-camera HikVision ISAPI configuration state, populated by the camera-config service. Mirrors
GET /ISAPI/System/deviceInfo (identity), /System/Network/Integrate (onvif_enabled), the
kernel-provisioned ONVIF user (onvif_user_created), and /System/time (time_mode/ntp_server).
Per-camera ONVIF device profile, populated by crate::services::onvif::probe. scopes is a
JSON array of ONVIF scope URIs. ptz_enabled is true when the device exposes a PTZ service and
the chosen media profile carries a PTZConfiguration.
A recurring per-camera recording window, applied when the camera’s record_mode is scheduled
or scheduled_event. days is a JSON array of weekday ints (0=Mon..6=Sun); time_start /
time_end are “HH:MM” 24h in the SERVER’s LOCAL timezone (chrono::Local). When time_start >
time_end the window wraps past midnight (its early-morning portion is attributed to the day it
started on).
A recording gap detected by the indexer (a hole > 3s between consecutive segments). The ANR loop
(services/anr.rs) tries to re-fill pending gaps from the camera’s onboard storage. fill_state is
pending | filled | failed.