feat: add 'unregistered' status — all incomplete files migrated to unregistered
This commit is contained in:
@@ -1,7 +1,10 @@
|
|||||||
-- Migration: Add 'registered' status to videos status check constraint
|
-- Migration: Add 'registered' and 'unregistered' status to videos check constraint
|
||||||
-- Date: 2026-05-15
|
-- Date: 2026-05-15
|
||||||
-- Usage: psql -U accusys -d momentry -f migrate_add_registered_status.sql
|
-- Usage: psql -U accusys -d momentry -f migrate_add_registered_status.sql
|
||||||
|
|
||||||
ALTER TABLE videos DROP CONSTRAINT IF EXISTS chk_videos_status;
|
ALTER TABLE videos DROP CONSTRAINT IF EXISTS chk_videos_status;
|
||||||
ALTER TABLE videos ADD CONSTRAINT chk_videos_status
|
ALTER TABLE videos ADD CONSTRAINT chk_videos_status
|
||||||
CHECK (status::text = ANY (ARRAY['registered'::text, 'pending'::text, 'processing'::text, 'completed'::text, 'failed'::text]));
|
CHECK (status::text = ANY (ARRAY['unregistered'::text, 'registered'::text, 'pending'::text, 'processing'::text, 'completed'::text, 'failed'::text]));
|
||||||
|
|
||||||
|
-- Set all incomplete files to 'unregistered' (old 'pending' files that never finished pipeline)
|
||||||
|
UPDATE videos SET status = 'unregistered' WHERE status NOT IN ('completed', 'registered', 'unregistered');
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ pub struct StorageStatus {
|
|||||||
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq)]
|
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq)]
|
||||||
#[serde(rename_all = "snake_case")]
|
#[serde(rename_all = "snake_case")]
|
||||||
pub enum VideoStatus {
|
pub enum VideoStatus {
|
||||||
|
Unregistered,
|
||||||
Registered,
|
Registered,
|
||||||
Pending,
|
Pending,
|
||||||
Processing,
|
Processing,
|
||||||
@@ -151,6 +152,7 @@ pub enum VideoStatus {
|
|||||||
impl VideoStatus {
|
impl VideoStatus {
|
||||||
pub fn as_str(&self) -> &'static str {
|
pub fn as_str(&self) -> &'static str {
|
||||||
match self {
|
match self {
|
||||||
|
VideoStatus::Unregistered => "unregistered",
|
||||||
VideoStatus::Registered => "registered",
|
VideoStatus::Registered => "registered",
|
||||||
VideoStatus::Pending => "pending",
|
VideoStatus::Pending => "pending",
|
||||||
VideoStatus::Processing => "processing",
|
VideoStatus::Processing => "processing",
|
||||||
@@ -161,6 +163,7 @@ impl VideoStatus {
|
|||||||
|
|
||||||
pub fn from_db_str(s: &str) -> Option<Self> {
|
pub fn from_db_str(s: &str) -> Option<Self> {
|
||||||
match s {
|
match s {
|
||||||
|
"unregistered" => Some(VideoStatus::Unregistered),
|
||||||
"registered" => Some(VideoStatus::Registered),
|
"registered" => Some(VideoStatus::Registered),
|
||||||
"pending" => Some(VideoStatus::Pending),
|
"pending" => Some(VideoStatus::Pending),
|
||||||
"processing" => Some(VideoStatus::Processing),
|
"processing" => Some(VideoStatus::Processing),
|
||||||
|
|||||||
Reference in New Issue
Block a user