Files
momentry_core/release/public_schema_v1.0.0.sql

4864 lines
134 KiB
PL/PgSQL

--
-- PostgreSQL database dump
--
\restrict hRi4nBNv2E5FXxBTf47fTk0vxfJNiXtnegSYFeraY46zaCyMMlYNanEdl70C1E7
-- Dumped from database version 18.1 (Homebrew)
-- Dumped by pg_dump version 18.1 (Homebrew)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET transaction_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: public; Type: SCHEMA; Schema: -; Owner: pg_database_owner
--
CREATE SCHEMA public;
ALTER SCHEMA public OWNER TO pg_database_owner;
--
-- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: pg_database_owner
--
COMMENT ON SCHEMA public IS 'standard public schema';
--
-- Name: auto_match_face_speaker(character varying, double precision); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.auto_match_face_speaker(p_video_uuid character varying, p_threshold double precision DEFAULT 0.5) RETURNS TABLE(face_id character varying, speaker_id character varying, confidence double precision, match_count bigint)
LANGUAGE plpgsql
AS $$
BEGIN
RETURN QUERY
-- Find face detections that overlap with ASRX segments
SELECT
fd.face_id,
seg.speaker_id,
COUNT(*)::DOUBLE PRECISION / NULLIF(COUNT(DISTINCT seg.speaker_id), 0) AS confidence,
COUNT(*) AS match_count
FROM face_detections fd
CROSS JOIN LATERAL (
SELECT
seg_data->>'speaker_id' AS speaker_id,
(seg_data->>'start')::DOUBLE PRECISION AS seg_start,
(seg_data->>'end')::DOUBLE PRECISION AS seg_end
FROM face_recognition_results frr,
jsonb_array_elements(frr.result_data->'frames') AS frame_data,
jsonb_array_elements(frame_data->'faces') AS face_data,
jsonb_array_elements(frr.result_data->'segments') AS seg_data
WHERE frr.video_uuid = p_video_uuid
AND face_data->>'face_id' = fd.face_id
) seg
WHERE fd.video_uuid = p_video_uuid
AND fd.timestamp_secs >= seg.seg_start
AND fd.timestamp_secs <= seg.seg_end
AND fd.face_id IS NOT NULL
AND seg.speaker_id IS NOT NULL
GROUP BY fd.face_id, seg.speaker_id
HAVING COUNT(*)::DOUBLE PRECISION / NULLIF(COUNT(DISTINCT seg.speaker_id), 0) >= p_threshold
ORDER BY confidence DESC;
END;
$$;
ALTER FUNCTION public.auto_match_face_speaker(p_video_uuid character varying, p_threshold double precision) OWNER TO accusys;
--
-- Name: FUNCTION auto_match_face_speaker(p_video_uuid character varying, p_threshold double precision); Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON FUNCTION public.auto_match_face_speaker(p_video_uuid character varying, p_threshold double precision) IS 'Automatically matches face detections with speaker segments';
--
-- Name: find_or_create_face_identity(character varying, character varying, public.vector, jsonb, jsonb); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.find_or_create_face_identity(p_face_id character varying, p_name character varying DEFAULT NULL::character varying, p_embedding public.vector DEFAULT NULL::public.vector, p_attributes jsonb DEFAULT NULL::jsonb, p_metadata jsonb DEFAULT '{}'::jsonb) RETURNS integer
LANGUAGE plpgsql
AS $$
DECLARE
v_id INTEGER;
BEGIN
-- Try to find existing face identity
SELECT id INTO v_id
FROM face_identities
WHERE face_id = p_face_id;
IF v_id IS NULL THEN
-- Create new face identity
INSERT INTO face_identities (face_id, name, embedding, attributes, metadata)
VALUES (p_face_id, p_name, p_embedding, p_attributes, p_metadata)
RETURNING id INTO v_id;
ELSE
-- Update existing face identity
UPDATE face_identities
SET
name = COALESCE(p_name, name),
embedding = COALESCE(p_embedding, embedding),
attributes = COALESCE(p_attributes, attributes),
metadata = COALESCE(p_metadata, metadata),
updated_at = CURRENT_TIMESTAMP
WHERE id = v_id;
END IF;
RETURN v_id;
END;
$$;
ALTER FUNCTION public.find_or_create_face_identity(p_face_id character varying, p_name character varying, p_embedding public.vector, p_attributes jsonb, p_metadata jsonb) OWNER TO accusys;
--
-- Name: FUNCTION find_or_create_face_identity(p_face_id character varying, p_name character varying, p_embedding public.vector, p_attributes jsonb, p_metadata jsonb); Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON FUNCTION public.find_or_create_face_identity(p_face_id character varying, p_name character varying, p_embedding public.vector, p_attributes jsonb, p_metadata jsonb) IS 'Finds or creates a face identity record';
--
-- Name: find_persons_at_time(character varying, double precision, double precision); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.find_persons_at_time(p_video_uuid character varying, p_time double precision, p_tolerance double precision DEFAULT 0.0) RETURNS TABLE(person_id character varying, name character varying, confidence double precision, appearance_id integer)
LANGUAGE plpgsql
AS $$
BEGIN
RETURN QUERY
SELECT
pi.person_id,
pi.name,
pa.confidence,
pa.id AS appearance_id
FROM person_appearances pa
JOIN person_identities pi ON pa.person_id = pi.person_id
WHERE pa.video_uuid = p_video_uuid
AND pa.start_time <= p_time + p_tolerance
AND pa.end_time >= p_time - p_tolerance
ORDER BY pa.confidence DESC;
END;
$$;
ALTER FUNCTION public.find_persons_at_time(p_video_uuid character varying, p_time double precision, p_tolerance double precision) OWNER TO accusys;
--
-- Name: FUNCTION find_persons_at_time(p_video_uuid character varying, p_time double precision, p_tolerance double precision); Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON FUNCTION public.find_persons_at_time(p_video_uuid character varying, p_time double precision, p_tolerance double precision) IS 'Finds persons appearing at a specific time in video';
--
-- Name: find_persons_in_range(character varying, double precision, double precision); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.find_persons_in_range(p_video_uuid character varying, p_start_time double precision, p_end_time double precision) RETURNS TABLE(person_id character varying, name character varying, overlap_duration double precision, confidence double precision)
LANGUAGE plpgsql
AS $$
BEGIN
RETURN QUERY
SELECT
pi.person_id,
pi.name,
LEAST(pa.end_time, p_end_time) - GREATEST(pa.start_time, p_start_time) AS overlap_duration,
AVG(pa.confidence) AS confidence
FROM person_appearances pa
JOIN person_identities pi ON pa.person_id = pi.person_id
WHERE pa.video_uuid = p_video_uuid
AND pa.start_time < p_end_time
AND pa.end_time > p_start_time
GROUP BY pi.person_id, pi.name, pa.end_time, pa.start_time
ORDER BY overlap_duration DESC;
END;
$$;
ALTER FUNCTION public.find_persons_in_range(p_video_uuid character varying, p_start_time double precision, p_end_time double precision) OWNER TO accusys;
--
-- Name: FUNCTION find_persons_in_range(p_video_uuid character varying, p_start_time double precision, p_end_time double precision); Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON FUNCTION public.find_persons_in_range(p_video_uuid character varying, p_start_time double precision, p_end_time double precision) IS 'Finds persons appearing in a time range with overlap calculation';
--
-- Name: find_similar_faces(public.vector, double precision, integer); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.find_similar_faces(query_embedding public.vector, similarity_threshold double precision DEFAULT 0.6, limit_count integer DEFAULT 10) RETURNS TABLE(face_id character varying, name character varying, similarity double precision, attributes jsonb, metadata jsonb)
LANGUAGE plpgsql
AS $$
BEGIN
RETURN QUERY
SELECT
fi.face_id,
fi.name,
1 - (fi.embedding <=> query_embedding) AS similarity,
fi.attributes,
fi.metadata
FROM face_identities fi
WHERE fi.is_active = TRUE
AND fi.embedding IS NOT NULL
AND 1 - (fi.embedding <=> query_embedding) >= similarity_threshold
ORDER BY fi.embedding <=> query_embedding
LIMIT limit_count;
END;
$$;
ALTER FUNCTION public.find_similar_faces(query_embedding public.vector, similarity_threshold double precision, limit_count integer) OWNER TO accusys;
--
-- Name: FUNCTION find_similar_faces(query_embedding public.vector, similarity_threshold double precision, limit_count integer); Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON FUNCTION public.find_similar_faces(query_embedding public.vector, similarity_threshold double precision, limit_count integer) IS 'Finds similar faces based on embedding similarity';
--
-- Name: merge_person_identities(character varying, character varying[]); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.merge_person_identities(p_target_person_id character varying, p_source_person_ids character varying[]) RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
-- Update all appearances to point to target person
UPDATE person_appearances
SET person_id = p_target_person_id
WHERE person_id = ANY(p_source_person_ids);
-- Delete source person identities
DELETE FROM person_identities
WHERE person_id = ANY(p_source_person_ids)
AND person_id != p_target_person_id;
-- Update target person statistics
PERFORM update_person_appearance_stats(p_target_person_id);
END;
$$;
ALTER FUNCTION public.merge_person_identities(p_target_person_id character varying, p_source_person_ids character varying[]) OWNER TO accusys;
--
-- Name: FUNCTION merge_person_identities(p_target_person_id character varying, p_source_person_ids character varying[]); Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON FUNCTION public.merge_person_identities(p_target_person_id character varying, p_source_person_ids character varying[]) IS 'Merges multiple person identities into one';
--
-- Name: trigger_update_person_stats(); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.trigger_update_person_stats() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF TG_OP = 'INSERT' THEN
PERFORM update_person_appearance_stats(NEW.person_id);
ELSIF TG_OP = 'UPDATE' THEN
PERFORM update_person_appearance_stats(NEW.person_id);
IF NEW.person_id != OLD.person_id THEN
PERFORM update_person_appearance_stats(OLD.person_id);
END IF;
ELSIF TG_OP = 'DELETE' THEN
PERFORM update_person_appearance_stats(OLD.person_id);
END IF;
RETURN NULL;
END;
$$;
ALTER FUNCTION public.trigger_update_person_stats() OWNER TO accusys;
--
-- Name: update_cluster_centroid(character varying); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.update_cluster_centroid(cluster_uuid character varying) RETURNS void
LANGUAGE plpgsql
AS $$
DECLARE
new_centroid VECTOR(512);
BEGIN
-- Calculate new centroid from all face embeddings in the cluster
SELECT AVG(embedding) INTO new_centroid
FROM face_detections
WHERE cluster_id = cluster_uuid
AND embedding IS NOT NULL;
-- Update cluster centroid
UPDATE face_clusters
SET centroid = new_centroid,
size = (SELECT COUNT(*) FROM face_detections WHERE cluster_id = cluster_uuid)
WHERE cluster_id = cluster_uuid;
END;
$$;
ALTER FUNCTION public.update_cluster_centroid(cluster_uuid character varying) OWNER TO accusys;
--
-- Name: FUNCTION update_cluster_centroid(cluster_uuid character varying); Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON FUNCTION public.update_cluster_centroid(cluster_uuid character varying) IS 'Updates cluster centroid from member embeddings';
--
-- Name: update_person_appearance_stats(character varying); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.update_person_appearance_stats(p_person_id character varying) RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
UPDATE person_identities
SET
appearance_count = (
SELECT COUNT(*)
FROM person_appearances
WHERE person_id = p_person_id
),
total_appearance_duration = (
SELECT COALESCE(SUM(duration), 0.0)
FROM person_appearances
WHERE person_id = p_person_id
),
first_appearance_time = (
SELECT MIN(start_time)
FROM person_appearances
WHERE person_id = p_person_id
),
last_appearance_time = (
SELECT MAX(end_time)
FROM person_appearances
WHERE person_id = p_person_id
),
updated_at = CURRENT_TIMESTAMP
WHERE person_id = p_person_id;
END;
$$;
ALTER FUNCTION public.update_person_appearance_stats(p_person_id character varying) OWNER TO accusys;
--
-- Name: FUNCTION update_person_appearance_stats(p_person_id character varying); Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON FUNCTION public.update_person_appearance_stats(p_person_id character varying) IS 'Updates person identity statistics from appearances';
--
-- Name: update_search_vector(); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.update_search_vector() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.search_vector := to_tsvector('english', COALESCE(NEW.text_content, ''));
RETURN NEW;
END;
$$;
ALTER FUNCTION public.update_search_vector() OWNER TO accusys;
--
-- Name: update_updated_at_column(); Type: FUNCTION; Schema: public; Owner: accusys
--
CREATE FUNCTION public.update_updated_at_column() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$;
ALTER FUNCTION public.update_updated_at_column() OWNER TO accusys;
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: api_key_anomalies; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.api_key_anomalies (
id integer NOT NULL,
key_id character varying(32) NOT NULL,
anomaly_type character varying(30) NOT NULL,
severity character varying(10) NOT NULL,
ip_address character varying(45),
request_count integer,
error_count integer,
error_rate double precision,
unique_ips integer,
details jsonb,
resolved boolean DEFAULT false,
resolved_at timestamp without time zone,
resolved_by character varying(128),
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE public.api_key_anomalies OWNER TO accusys;
--
-- Name: api_key_anomalies_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.api_key_anomalies_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.api_key_anomalies_id_seq OWNER TO accusys;
--
-- Name: api_key_anomalies_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.api_key_anomalies_id_seq OWNED BY public.api_key_anomalies.id;
--
-- Name: api_key_audit_log; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.api_key_audit_log (
id integer NOT NULL,
key_id character varying(32) NOT NULL,
action character varying(50) NOT NULL,
actor character varying(128),
ip_address character varying(45),
user_agent text,
request_path text,
response_code integer,
anomaly_type character varying(30),
details jsonb,
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE public.api_key_audit_log OWNER TO accusys;
--
-- Name: api_key_audit_log_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.api_key_audit_log_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.api_key_audit_log_id_seq OWNER TO accusys;
--
-- Name: api_key_audit_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.api_key_audit_log_id_seq OWNED BY public.api_key_audit_log.id;
--
-- Name: api_keys; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.api_keys (
id integer NOT NULL,
key_id character varying(48) NOT NULL,
key_hash character varying(64) NOT NULL,
key_prefix character varying(8) NOT NULL,
name character varying(128) NOT NULL,
key_type character varying(20) DEFAULT 'user'::character varying NOT NULL,
user_id bigint,
service_name character varying(64),
permissions jsonb DEFAULT '["read", "write"]'::jsonb,
expires_at timestamp with time zone,
last_used_at timestamp with time zone,
last_used_ip character varying(45),
usage_count bigint DEFAULT 0,
status character varying(20) DEFAULT 'active'::character varying NOT NULL,
rotation_required boolean DEFAULT false,
rotation_reason text,
grace_period_end timestamp with time zone,
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE public.api_keys OWNER TO accusys;
--
-- Name: api_keys_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.api_keys_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.api_keys_id_seq OWNER TO accusys;
--
-- Name: api_keys_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.api_keys_id_seq OWNED BY public.api_keys.id;
--
-- Name: backup_history; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.backup_history (
id integer NOT NULL,
service_name character varying(50) NOT NULL,
operation character varying(20),
backup_file character varying(500),
backup_tier character varying(20),
source_tier character varying(20),
dest_tier character varying(20),
file_count bigint,
size_bytes bigint,
duration_seconds integer,
status character varying(20),
error_message text,
executed_at timestamp without time zone DEFAULT now(),
CONSTRAINT backup_history_operation_check CHECK (((operation)::text = ANY ((ARRAY['backup'::character varying, 'restore'::character varying, 'tier_migration'::character varying, 'cleanup'::character varying, 'verify'::character varying])::text[]))),
CONSTRAINT backup_history_status_check CHECK (((status)::text = ANY ((ARRAY['success'::character varying, 'failed'::character varying, 'partial'::character varying])::text[])))
);
ALTER TABLE public.backup_history OWNER TO accusys;
--
-- Name: backup_history_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.backup_history_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.backup_history_id_seq OWNER TO accusys;
--
-- Name: backup_history_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.backup_history_id_seq OWNED BY public.backup_history.id;
--
-- Name: backup_registry; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.backup_registry (
id integer NOT NULL,
service_name character varying(50) NOT NULL,
backup_file character varying(500) NOT NULL,
backup_size_bytes bigint,
backup_type character varying(20),
status character varying(20),
created_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.backup_registry OWNER TO accusys;
--
-- Name: backup_registry_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.backup_registry_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.backup_registry_id_seq OWNER TO accusys;
--
-- Name: backup_registry_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.backup_registry_id_seq OWNED BY public.backup_registry.id;
--
-- Name: backup_storage_stats; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.backup_storage_stats (
id integer NOT NULL,
tier character varying(20),
file_count bigint,
total_size_bytes bigint,
record_time timestamp without time zone DEFAULT now(),
CONSTRAINT backup_storage_stats_tier_check CHECK (((tier)::text = ANY ((ARRAY['daily'::character varying, 'weekly'::character varying, 'monthly'::character varying, 'archive'::character varying, 'total'::character varying])::text[])))
);
ALTER TABLE public.backup_storage_stats OWNER TO accusys;
--
-- Name: backup_storage_stats_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.backup_storage_stats_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.backup_storage_stats_id_seq OWNER TO accusys;
--
-- Name: backup_storage_stats_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.backup_storage_stats_id_seq OWNED BY public.backup_storage_stats.id;
--
-- Name: castings; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.castings (
id bigint NOT NULL,
character_id bigint,
talent_id bigint,
track_type character varying(32) DEFAULT 'original'::character varying,
role_type character varying(32) DEFAULT 'both'::character varying
);
ALTER TABLE public.castings OWNER TO accusys;
--
-- Name: TABLE castings; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON TABLE public.castings IS 'Talent 與 Character 的飾演關係';
--
-- Name: castings_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.castings_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.castings_id_seq OWNER TO accusys;
--
-- Name: castings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.castings_id_seq OWNED BY public.castings.id;
--
-- Name: characters; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.characters (
id bigint NOT NULL,
video_uuid text NOT NULL,
name text NOT NULL,
language_track text DEFAULT 'original'::text,
is_voice_only boolean DEFAULT false,
metadata jsonb DEFAULT '{}'::jsonb
);
ALTER TABLE public.characters OWNER TO accusys;
--
-- Name: TABLE characters; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON TABLE public.characters IS '視頻中的劇中角色';
--
-- Name: characters_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.characters_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.characters_id_seq OWNER TO accusys;
--
-- Name: characters_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.characters_id_seq OWNED BY public.characters.id;
--
-- Name: child_chunks; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.child_chunks (
id integer NOT NULL,
parent_id integer,
uuid text NOT NULL,
start_time double precision NOT NULL,
end_time double precision NOT NULL,
raw_text text,
raw_text_vector public.vector(768),
speaker_ids text[],
tags text[],
created_at timestamp with time zone DEFAULT now(),
face_ids text[] DEFAULT '{}'::text[],
start_frame bigint,
end_frame bigint,
fps double precision DEFAULT 24.0
);
ALTER TABLE public.child_chunks OWNER TO accusys;
--
-- Name: child_chunks_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.child_chunks_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.child_chunks_id_seq OWNER TO accusys;
--
-- Name: child_chunks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.child_chunks_id_seq OWNED BY public.child_chunks.id;
--
-- Name: chunk_vectors; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.chunk_vectors (
id integer NOT NULL,
chunk_id character varying(64) NOT NULL,
uuid character varying(32) NOT NULL,
chunk_type character varying(32) NOT NULL,
start_time double precision,
end_time double precision,
embedding text,
metadata jsonb,
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
embedding_vector public.vector(768),
file_id integer
);
ALTER TABLE public.chunk_vectors OWNER TO accusys;
--
-- Name: chunk_vectors_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.chunk_vectors_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.chunk_vectors_id_seq OWNER TO accusys;
--
-- Name: chunk_vectors_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.chunk_vectors_id_seq OWNED BY public.chunk_vectors.id;
--
-- Name: chunks; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.chunks (
id integer NOT NULL,
uuid character varying(32) NOT NULL,
chunk_id character varying(64) NOT NULL,
chunk_index integer NOT NULL,
chunk_type character varying(32) NOT NULL,
start_time double precision NOT NULL,
end_time double precision NOT NULL,
content jsonb NOT NULL,
vector_id character varying(64),
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
fps double precision DEFAULT 24.0,
start_frame bigint DEFAULT 0,
end_frame bigint DEFAULT 0,
metadata jsonb,
updated_at timestamp without time zone DEFAULT now(),
file_id integer,
text_content text,
frame_count integer DEFAULT 0,
pre_chunk_ids integer[],
parent_chunk_id character varying(64),
child_chunk_ids text[],
search_vector tsvector,
speaker_ids text[] DEFAULT '{}'::text[],
face_ids text[] DEFAULT '{}'::text[],
visual_stats jsonb DEFAULT '{}'::jsonb
);
ALTER TABLE public.chunks OWNER TO accusys;
--
-- Name: chunks_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.chunks_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.chunks_id_seq OWNER TO accusys;
--
-- Name: chunks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.chunks_id_seq OWNED BY public.chunks.id;
--
-- Name: face_clusters; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.face_clusters (
id integer NOT NULL,
cluster_id character varying(255) NOT NULL,
video_uuid character varying(255) NOT NULL,
centroid public.vector(512),
size integer DEFAULT 0 NOT NULL,
representative_face_id character varying(255),
metadata jsonb DEFAULT '{}'::jsonb,
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE public.face_clusters OWNER TO accusys;
--
-- Name: TABLE face_clusters; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON TABLE public.face_clusters IS 'Stores face clusters from video analysis';
--
-- Name: face_clusters_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.face_clusters_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.face_clusters_id_seq OWNER TO accusys;
--
-- Name: face_clusters_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.face_clusters_id_seq OWNED BY public.face_clusters.id;
--
-- Name: face_detections; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.face_detections (
id integer NOT NULL,
video_uuid character varying(255) NOT NULL,
frame_number bigint NOT NULL,
timestamp_secs double precision NOT NULL,
face_id character varying(255),
x integer NOT NULL,
y integer NOT NULL,
width integer NOT NULL,
height integer NOT NULL,
confidence double precision NOT NULL,
embedding public.vector(512),
attributes jsonb,
identity_id integer,
identity_confidence double precision,
cluster_id character varying(255),
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE public.face_detections OWNER TO accusys;
--
-- Name: TABLE face_detections; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON TABLE public.face_detections IS 'Stores individual face detections from videos';
--
-- Name: face_detections_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.face_detections_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.face_detections_id_seq OWNER TO accusys;
--
-- Name: face_detections_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.face_detections_id_seq OWNED BY public.face_detections.id;
--
-- Name: face_identities; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.face_identities (
id integer NOT NULL,
face_id character varying(255) NOT NULL,
name character varying(255),
embedding public.vector(512),
attributes jsonb,
metadata jsonb DEFAULT '{}'::jsonb,
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
is_active boolean DEFAULT true
);
ALTER TABLE public.face_identities OWNER TO accusys;
--
-- Name: TABLE face_identities; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON TABLE public.face_identities IS 'Stores registered face identities with embeddings';
--
-- Name: face_identities_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.face_identities_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.face_identities_id_seq OWNER TO accusys;
--
-- Name: face_identities_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.face_identities_id_seq OWNED BY public.face_identities.id;
--
-- Name: face_recognition_results; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.face_recognition_results (
id integer NOT NULL,
video_uuid character varying(255) NOT NULL,
frame_count bigint DEFAULT 0 NOT NULL,
fps double precision DEFAULT 0.0 NOT NULL,
total_faces integer DEFAULT 0 NOT NULL,
recognized_faces integer DEFAULT 0 NOT NULL,
clusters_count integer DEFAULT 0 NOT NULL,
result_data jsonb NOT NULL,
processing_time_secs double precision,
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE public.face_recognition_results OWNER TO accusys;
--
-- Name: TABLE face_recognition_results; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON TABLE public.face_recognition_results IS 'Stores face recognition processing results';
--
-- Name: face_recognition_results_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.face_recognition_results_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.face_recognition_results_id_seq OWNER TO accusys;
--
-- Name: face_recognition_results_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.face_recognition_results_id_seq OWNED BY public.face_recognition_results.id;
--
-- Name: file_lifecycle; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.file_lifecycle (
id integer NOT NULL,
file_uuid uuid,
file_path text,
user_cluster character varying(50),
storage_tier character varying(20),
created_at timestamp without time zone,
last_accessed_at timestamp without time zone,
last_modified_at timestamp without time zone,
access_count integer DEFAULT 0,
current_status character varying(20) DEFAULT 'active'::character varying,
tier_migration_count integer DEFAULT 0,
migrated_at timestamp without time zone
);
ALTER TABLE public.file_lifecycle OWNER TO accusys;
--
-- Name: file_lifecycle_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.file_lifecycle_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.file_lifecycle_id_seq OWNER TO accusys;
--
-- Name: file_lifecycle_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.file_lifecycle_id_seq OWNED BY public.file_lifecycle.id;
--
-- Name: file_registry; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.file_registry (
file_uuid uuid DEFAULT gen_random_uuid() NOT NULL,
file_name character varying(255) NOT NULL,
file_path text NOT NULL,
file_path_hash character varying(64) NOT NULL,
file_size bigint NOT NULL,
file_hash character varying(64),
mime_type character varying(100),
user_cluster character varying(50),
owner_id character varying(100),
storage_tier character varying(20) DEFAULT 'hot'::character varying,
storage_location character varying(500),
status character varying(20) DEFAULT 'active'::character varying,
is_registered boolean DEFAULT true,
created_at timestamp without time zone DEFAULT now(),
updated_at timestamp without time zone DEFAULT now(),
last_accessed_at timestamp without time zone,
access_count integer DEFAULT 0,
archived_at timestamp without time zone,
archive_location character varying(500),
retention_until timestamp without time zone,
CONSTRAINT file_registry_status_check CHECK (((status)::text = ANY ((ARRAY['active'::character varying, 'temporary'::character varying, 'archived'::character varying, 'deleted'::character varying])::text[]))),
CONSTRAINT file_registry_storage_tier_check CHECK (((storage_tier)::text = ANY ((ARRAY['hot'::character varying, 'warm'::character varying, 'cold'::character varying])::text[]))),
CONSTRAINT file_registry_user_cluster_check CHECK (((user_cluster)::text = ANY ((ARRAY['family'::character varying, 'work'::character varying, 'wordpress'::character varying, 'shared'::character varying, 'system'::character varying])::text[])))
);
ALTER TABLE public.file_registry OWNER TO accusys;
--
-- Name: frames; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.frames (
id integer NOT NULL,
file_id integer NOT NULL,
frame_number bigint NOT NULL,
"timestamp" double precision NOT NULL,
fps double precision DEFAULT 24.0 NOT NULL,
yolo_objects jsonb,
ocr_results jsonb,
face_results jsonb,
frame_path text,
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
pose_results jsonb
);
ALTER TABLE public.frames OWNER TO accusys;
--
-- Name: frames_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.frames_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.frames_id_seq OWNER TO accusys;
--
-- Name: frames_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.frames_id_seq OWNED BY public.frames.id;
--
-- Name: gitea_tokens; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.gitea_tokens (
id integer NOT NULL,
gitea_token_id bigint NOT NULL,
gitea_user character varying(128) NOT NULL,
token_name character varying(128) NOT NULL,
token_last_eight character varying(8) NOT NULL,
scopes jsonb DEFAULT '[]'::jsonb,
api_key_id character varying(48),
last_verified timestamp without time zone,
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE public.gitea_tokens OWNER TO accusys;
--
-- Name: gitea_tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.gitea_tokens_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.gitea_tokens_id_seq OWNER TO accusys;
--
-- Name: gitea_tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.gitea_tokens_id_seq OWNED BY public.gitea_tokens.id;
--
-- Name: identities; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.identities (
id integer NOT NULL,
name character varying(255) NOT NULL,
metadata jsonb DEFAULT '{}'::jsonb,
uuid uuid DEFAULT gen_random_uuid(),
identity_type character varying(30) DEFAULT 'people'::character varying,
source character varying(20) DEFAULT 'manual'::character varying,
status character varying(20) DEFAULT 'pending'::character varying,
voice_embedding public.vector(192),
identity_embedding public.vector(768),
reference_data jsonb DEFAULT '{}'::jsonb,
created_at timestamp with time zone DEFAULT now(),
updated_at timestamp with time zone DEFAULT now(),
tmdb_id integer,
tmdb_profile text,
face_embedding public.vector(512),
CONSTRAINT identities_identity_type_check CHECK (((identity_type)::text = ANY ((ARRAY['people'::character varying, 'brand'::character varying, 'object'::character varying, 'concept'::character varying, 'logo'::character varying, 'symbol'::character varying, 'scene'::character varying, 'sound'::character varying, 'animal'::character varying, 'environmental'::character varying])::text[])))
);
ALTER TABLE public.identities OWNER TO accusys;
--
-- Name: COLUMN identities.identity_type; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.identities.identity_type IS 'Identity type: people, brand, object, concept, logo, symbol, scene, sound, animal, environmental';
--
-- Name: COLUMN identities.source; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.identities.source IS 'Identity source: manual, tmdb, agent_suggested, ai_detection';
--
-- Name: COLUMN identities.status; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.identities.status IS 'Identity status: pending, confirmed, skipped';
--
-- Name: COLUMN identities.voice_embedding; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.identities.voice_embedding IS 'ECAPA-TDNN 192-dim voice embedding';
--
-- Name: COLUMN identities.identity_embedding; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.identities.identity_embedding IS 'CLIP ViT-L/14 768-dim embedding for logo/symbol/object identity';
--
-- Name: COLUMN identities.reference_data; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.identities.reference_data IS 'JSONB: {face_embeddings[], voice_embeddings[], identity_embeddings[], sound_embeddings[], image_urls[]}';
--
-- Name: COLUMN identities.tmdb_id; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.identities.tmdb_id IS 'TMDB person ID';
--
-- Name: COLUMN identities.tmdb_profile; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.identities.tmdb_profile IS 'TMDB profile image URL';
--
-- Name: COLUMN identities.face_embedding; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.identities.face_embedding IS 'InsightFace ArcFace 512-dim embedding';
--
-- Name: identities_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.identities_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.identities_id_seq OWNER TO accusys;
--
-- Name: identities_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.identities_id_seq OWNED BY public.identities.id;
--
-- Name: identity_bindings; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.identity_bindings (
id integer NOT NULL,
identity_id integer,
uuid text NOT NULL,
binding_type character varying(32) NOT NULL,
binding_value character varying(64) NOT NULL
);
ALTER TABLE public.identity_bindings OWNER TO accusys;
--
-- Name: identity_bindings_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.identity_bindings_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.identity_bindings_id_seq OWNER TO accusys;
--
-- Name: identity_bindings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.identity_bindings_id_seq OWNED BY public.identity_bindings.id;
--
-- Name: merge_history; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.merge_history (
id integer NOT NULL,
merge_id uuid DEFAULT gen_random_uuid() NOT NULL,
target_person_id character varying(255) NOT NULL,
source_person_ids text[] NOT NULL,
original_target_stats jsonb NOT NULL,
original_source_stats jsonb NOT NULL,
merged_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
merged_by character varying(255),
is_undone boolean DEFAULT false,
undone_at timestamp with time zone,
metadata jsonb DEFAULT '{}'::jsonb
);
ALTER TABLE public.merge_history OWNER TO accusys;
--
-- Name: TABLE merge_history; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON TABLE public.merge_history IS 'Tracks person merges for undo capability';
--
-- Name: merge_history_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.merge_history_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.merge_history_id_seq OWNER TO accusys;
--
-- Name: merge_history_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.merge_history_id_seq OWNED BY public.merge_history.id;
--
-- Name: monitor_anomalies; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_anomalies (
id integer NOT NULL,
anomaly_type character varying(50),
severity character varying(20),
source_type character varying(20),
username character varying(100),
source_ip character varying(45),
description text,
details jsonb,
detected_at timestamp without time zone DEFAULT now(),
resolved boolean DEFAULT false,
resolved_at timestamp without time zone,
CONSTRAINT monitor_anomalies_anomaly_type_check CHECK (((anomaly_type)::text = ANY ((ARRAY['brute_force'::character varying, 'privilege_escalation'::character varying, 'unusual_access'::character varying, 'unusual_time'::character varying, 'excessive_queries'::character varying, 'idle_session'::character varying, 'schema_change'::character varying])::text[]))),
CONSTRAINT monitor_anomalies_severity_check CHECK (((severity)::text = ANY ((ARRAY['low'::character varying, 'medium'::character varying, 'high'::character varying, 'critical'::character varying])::text[])))
);
ALTER TABLE public.monitor_anomalies OWNER TO accusys;
--
-- Name: monitor_anomalies_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_anomalies_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_anomalies_id_seq OWNER TO accusys;
--
-- Name: monitor_anomalies_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_anomalies_id_seq OWNED BY public.monitor_anomalies.id;
--
-- Name: monitor_config; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_config (
id integer NOT NULL,
config_key character varying(50) NOT NULL,
config_value text,
description character varying(255),
updated_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.monitor_config OWNER TO accusys;
--
-- Name: monitor_config_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_config_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_config_id_seq OWNER TO accusys;
--
-- Name: monitor_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_config_id_seq OWNED BY public.monitor_config.id;
--
-- Name: monitor_databases; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_databases (
id integer NOT NULL,
db_type character varying(20) NOT NULL,
db_name character varying(50),
metric_name character varying(50) NOT NULL,
metric_value jsonb,
checked_at timestamp without time zone DEFAULT now(),
CONSTRAINT monitor_databases_db_type_check CHECK (((db_type)::text = ANY ((ARRAY['postgresql'::character varying, 'redis'::character varying, 'qdrant'::character varying, 'mariadb'::character varying, 'mongodb'::character varying])::text[])))
);
ALTER TABLE public.monitor_databases OWNER TO accusys;
--
-- Name: monitor_databases_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_databases_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_databases_id_seq OWNER TO accusys;
--
-- Name: monitor_databases_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_databases_id_seq OWNED BY public.monitor_databases.id;
--
-- Name: monitor_external; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_external (
id integer NOT NULL,
target_name character varying(50) NOT NULL,
target_type character varying(20),
target_host character varying(255),
is_reachable boolean,
response_time_ms integer,
dns_resolved_ip character varying(45),
error_message text,
checked_at timestamp without time zone DEFAULT now(),
CONSTRAINT monitor_external_target_type_check CHECK (((target_type)::text = ANY ((ARRAY['ddns'::character varying, 'gateway'::character varying, 'internet'::character varying, 'api'::character varying])::text[])))
);
ALTER TABLE public.monitor_external OWNER TO accusys;
--
-- Name: monitor_external_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_external_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_external_id_seq OWNER TO accusys;
--
-- Name: monitor_external_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_external_id_seq OWNED BY public.monitor_external.id;
--
-- Name: monitor_jobs; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_jobs (
id integer NOT NULL,
uuid character varying(16) NOT NULL,
video_path character varying(512),
status character varying(20) DEFAULT 'pending'::character varying NOT NULL,
current_processor character varying(20),
progress_total integer DEFAULT 0,
progress_current integer DEFAULT 0,
error_count integer DEFAULT 0,
last_error text,
started_at timestamp without time zone,
updated_at timestamp without time zone,
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
video_id bigint,
user_id bigint,
processors character varying(20)[] DEFAULT '{asr,cut,yolo,ocr,face,pose,asrx,caption,story}'::character varying[],
completed_processors character varying(20)[] DEFAULT '{}'::character varying[],
failed_processors character varying(20)[] DEFAULT '{}'::character varying[],
CONSTRAINT chk_monitor_jobs_status CHECK (((status)::text = ANY ((ARRAY['pending'::character varying, 'running'::character varying, 'completed'::character varying, 'failed'::character varying, 'cancelled'::character varying])::text[])))
);
ALTER TABLE public.monitor_jobs OWNER TO accusys;
--
-- Name: COLUMN monitor_jobs.video_id; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.monitor_jobs.video_id IS 'Foreign key to videos.id';
--
-- Name: COLUMN monitor_jobs.user_id; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.monitor_jobs.user_id IS 'WordPress user ID';
--
-- Name: COLUMN monitor_jobs.processors; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.monitor_jobs.processors IS 'Processors to run: asr, cut, yolo, ocr, face, pose, asrx';
--
-- Name: COLUMN monitor_jobs.completed_processors; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.monitor_jobs.completed_processors IS 'Successfully completed processors';
--
-- Name: COLUMN monitor_jobs.failed_processors; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.monitor_jobs.failed_processors IS 'Failed processors';
--
-- Name: monitor_jobs_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_jobs_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_jobs_id_seq OWNER TO accusys;
--
-- Name: monitor_jobs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_jobs_id_seq OWNED BY public.monitor_jobs.id;
--
-- Name: monitor_logins; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_logins (
id integer NOT NULL,
user_type character varying(20),
username character varying(100),
source_ip character varying(45),
user_agent text,
login_method character varying(20),
success boolean,
failure_reason character varying(200),
login_at timestamp without time zone DEFAULT now(),
CONSTRAINT monitor_logins_user_type_check CHECK (((user_type)::text = ANY ((ARRAY['system'::character varying, 'wordpress'::character varying, 'n8n'::character varying, 'gitea'::character varying, 'sftpgo'::character varying, 'database'::character varying])::text[])))
);
ALTER TABLE public.monitor_logins OWNER TO accusys;
--
-- Name: monitor_logins_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_logins_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_logins_id_seq OWNER TO accusys;
--
-- Name: monitor_logins_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_logins_id_seq OWNED BY public.monitor_logins.id;
--
-- Name: monitor_pg_schema_changes; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_pg_schema_changes (
id integer NOT NULL,
database_name character varying(50),
schema_name character varying(50),
table_name character varying(100),
change_type character varying(20),
column_name character varying(100),
old_value text,
new_value text,
detected_at timestamp without time zone DEFAULT now(),
CONSTRAINT monitor_pg_schema_changes_change_type_check CHECK (((change_type)::text = ANY ((ARRAY['table_created'::character varying, 'table_dropped'::character varying, 'column_added'::character varying, 'column_removed'::character varying, 'column_type_changed'::character varying])::text[])))
);
ALTER TABLE public.monitor_pg_schema_changes OWNER TO accusys;
--
-- Name: monitor_pg_schema_changes_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_pg_schema_changes_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_pg_schema_changes_id_seq OWNER TO accusys;
--
-- Name: monitor_pg_schema_changes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_pg_schema_changes_id_seq OWNED BY public.monitor_pg_schema_changes.id;
--
-- Name: monitor_pg_tables; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_pg_tables (
id integer NOT NULL,
database_name character varying(50),
schema_name character varying(50),
table_name character varying(100),
table_type character varying(20),
row_count bigint,
table_size_bytes bigint,
index_size_bytes bigint,
snapshot_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.monitor_pg_tables OWNER TO accusys;
--
-- Name: monitor_pg_tables_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_pg_tables_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_pg_tables_id_seq OWNER TO accusys;
--
-- Name: monitor_pg_tables_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_pg_tables_id_seq OWNED BY public.monitor_pg_tables.id;
--
-- Name: monitor_portal_pages; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_portal_pages (
id integer NOT NULL,
page_url character varying(500) NOT NULL,
page_type character varying(20),
is_accessible boolean,
response_time_ms integer,
http_status integer,
error_message text,
checked_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.monitor_portal_pages OWNER TO accusys;
--
-- Name: monitor_portal_pages_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_portal_pages_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_portal_pages_id_seq OWNER TO accusys;
--
-- Name: monitor_portal_pages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_portal_pages_id_seq OWNED BY public.monitor_portal_pages.id;
--
-- Name: monitor_portal_users; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_portal_users (
id integer NOT NULL,
user_id bigint,
username character varying(100),
email character varying(255),
role character varying(50),
is_active boolean,
last_login timestamp without time zone,
created_at timestamp without time zone,
detected_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.monitor_portal_users OWNER TO accusys;
--
-- Name: monitor_portal_users_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_portal_users_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_portal_users_id_seq OWNER TO accusys;
--
-- Name: monitor_portal_users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_portal_users_id_seq OWNED BY public.monitor_portal_users.id;
--
-- Name: monitor_qdrant_collections; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_qdrant_collections (
id integer NOT NULL,
collection_name character varying(100),
vectors_count bigint,
points_count bigint,
disk_size_bytes bigint,
status character varying(20),
snapshot_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.monitor_qdrant_collections OWNER TO accusys;
--
-- Name: monitor_qdrant_collections_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_qdrant_collections_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_qdrant_collections_id_seq OWNER TO accusys;
--
-- Name: monitor_qdrant_collections_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_qdrant_collections_id_seq OWNED BY public.monitor_qdrant_collections.id;
--
-- Name: monitor_resource_usage; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_resource_usage (
id integer NOT NULL,
user_type character varying(20),
username character varying(100),
service_name character varying(50),
cpu_percent numeric(5,2),
memory_mb integer,
disk_io_read_mb bigint,
disk_io_write_mb bigint,
network_rx_mb bigint,
network_tx_mb bigint,
recorded_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.monitor_resource_usage OWNER TO accusys;
--
-- Name: monitor_resource_usage_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_resource_usage_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_resource_usage_id_seq OWNER TO accusys;
--
-- Name: monitor_resource_usage_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_resource_usage_id_seq OWNED BY public.monitor_resource_usage.id;
--
-- Name: monitor_services; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_services (
id integer NOT NULL,
service_name character varying(50) NOT NULL,
service_type character varying(20),
port integer,
status character varying(20),
response_time_ms integer,
error_message text,
checked_at timestamp without time zone DEFAULT now(),
CONSTRAINT monitor_services_status_check CHECK (((status)::text = ANY ((ARRAY['up'::character varying, 'down'::character varying, 'degraded'::character varying, 'unknown'::character varying])::text[])))
);
ALTER TABLE public.monitor_services OWNER TO accusys;
--
-- Name: monitor_services_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_services_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_services_id_seq OWNER TO accusys;
--
-- Name: monitor_services_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_services_id_seq OWNED BY public.monitor_services.id;
--
-- Name: monitor_sessions; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_sessions (
id integer NOT NULL,
session_type character varying(20),
service_name character varying(50),
username character varying(100),
source_ip character varying(45),
source_port integer,
connected_at timestamp without time zone,
last_activity_at timestamp without time zone,
disconnected_at timestamp without time zone,
bytes_sent bigint,
bytes_received bigint,
status character varying(20),
CONSTRAINT monitor_sessions_session_type_check CHECK (((session_type)::text = ANY ((ARRAY['ssh'::character varying, 'web'::character varying, 'db'::character varying, 'sftp'::character varying, 'rdp'::character varying])::text[]))),
CONSTRAINT monitor_sessions_status_check CHECK (((status)::text = ANY ((ARRAY['active'::character varying, 'disconnected'::character varying, 'timeout'::character varying])::text[])))
);
ALTER TABLE public.monitor_sessions OWNER TO accusys;
--
-- Name: monitor_sessions_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_sessions_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_sessions_id_seq OWNER TO accusys;
--
-- Name: monitor_sessions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_sessions_id_seq OWNED BY public.monitor_sessions.id;
--
-- Name: monitor_sudo_history; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_sudo_history (
id integer NOT NULL,
username character varying(100),
command text,
run_as character varying(100),
tty character varying(50),
source_ip character varying(45),
exit_code integer,
executed_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.monitor_sudo_history OWNER TO accusys;
--
-- Name: monitor_sudo_history_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_sudo_history_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_sudo_history_id_seq OWNER TO accusys;
--
-- Name: monitor_sudo_history_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_sudo_history_id_seq OWNED BY public.monitor_sudo_history.id;
--
-- Name: monitor_workflows; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.monitor_workflows (
id integer NOT NULL,
workflow_id character varying(50) NOT NULL,
workflow_name character varying(255),
workflow_type character varying(50),
is_active boolean DEFAULT false,
last_executed_at timestamp without time zone,
execution_count integer DEFAULT 0,
success_count integer DEFAULT 0,
failure_count integer DEFAULT 0,
avg_duration_ms integer,
has_schedule boolean DEFAULT false,
has_webhook boolean DEFAULT false,
idle_days integer,
suggestion character varying(100),
checked_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.monitor_workflows OWNER TO accusys;
--
-- Name: monitor_workflows_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.monitor_workflows_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.monitor_workflows_id_seq OWNER TO accusys;
--
-- Name: monitor_workflows_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.monitor_workflows_id_seq OWNED BY public.monitor_workflows.id;
--
-- Name: n8n_api_keys; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.n8n_api_keys (
id integer NOT NULL,
n8n_key_id character varying(64) NOT NULL,
label character varying(100) NOT NULL,
api_key_last_eight character varying(8) NOT NULL,
momentry_api_key_id character varying(48),
expires_at timestamp with time zone,
last_verified timestamp with time zone,
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE public.n8n_api_keys OWNER TO accusys;
--
-- Name: n8n_api_keys_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.n8n_api_keys_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.n8n_api_keys_id_seq OWNER TO accusys;
--
-- Name: n8n_api_keys_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.n8n_api_keys_id_seq OWNED BY public.n8n_api_keys.id;
--
-- Name: node_process_tracking; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.node_process_tracking (
id integer NOT NULL,
process_name character varying(100) NOT NULL,
pid integer,
command character varying(500),
node_version character varying(20),
is_managed boolean DEFAULT false,
started_at timestamp without time zone,
checked_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.node_process_tracking OWNER TO accusys;
--
-- Name: node_process_tracking_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.node_process_tracking_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.node_process_tracking_id_seq OWNER TO accusys;
--
-- Name: node_process_tracking_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.node_process_tracking_id_seq OWNED BY public.node_process_tracking.id;
--
-- Name: node_version_baseline; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.node_version_baseline (
id integer NOT NULL,
runtime_name character varying(50) NOT NULL,
required_version character varying(20) NOT NULL,
current_version character varying(20),
process_name character varying(100),
process_path text,
is_compliant boolean,
locked_path character varying(500),
checked_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.node_version_baseline OWNER TO accusys;
--
-- Name: node_version_baseline_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.node_version_baseline_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.node_version_baseline_id_seq OWNER TO accusys;
--
-- Name: node_version_baseline_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.node_version_baseline_id_seq OWNED BY public.node_version_baseline.id;
--
-- Name: parent_chunks; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.parent_chunks (
id integer NOT NULL,
uuid text NOT NULL,
scene_order integer,
start_time double precision NOT NULL,
end_time double precision NOT NULL,
summary_text text,
summary_vector public.vector(768),
metadata jsonb,
created_at timestamp with time zone DEFAULT now(),
rule_3_markers jsonb DEFAULT '{}'::jsonb,
start_frame bigint,
end_frame bigint,
fps double precision DEFAULT 24.0
);
ALTER TABLE public.parent_chunks OWNER TO accusys;
--
-- Name: parent_chunks_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.parent_chunks_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.parent_chunks_id_seq OWNER TO accusys;
--
-- Name: parent_chunks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.parent_chunks_id_seq OWNED BY public.parent_chunks.id;
--
-- Name: parent_chunks_poc; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.parent_chunks_poc (
id integer NOT NULL,
uuid text NOT NULL,
scene_order integer,
start_time double precision NOT NULL,
end_time double precision NOT NULL,
summary_text text,
summary_vector public.vector(768),
metadata jsonb,
created_at timestamp with time zone DEFAULT now()
);
ALTER TABLE public.parent_chunks_poc OWNER TO accusys;
--
-- Name: parent_chunks_poc_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.parent_chunks_poc_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.parent_chunks_poc_id_seq OWNER TO accusys;
--
-- Name: parent_chunks_poc_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.parent_chunks_poc_id_seq OWNED BY public.parent_chunks_poc.id;
--
-- Name: person_appearances; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.person_appearances (
id integer NOT NULL,
person_id character varying(255) NOT NULL,
video_uuid character varying(255) NOT NULL,
start_time double precision NOT NULL,
end_time double precision NOT NULL,
duration double precision NOT NULL,
face_detection_id integer,
asrx_segment_start double precision,
asrx_segment_end double precision,
confidence double precision DEFAULT 0.0,
metadata jsonb DEFAULT '{}'::jsonb,
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT person_appearances_confidence_check CHECK (((confidence >= (0.0)::double precision) AND (confidence <= (1.0)::double precision))),
CONSTRAINT person_appearances_duration_check CHECK ((duration > (0)::double precision)),
CONSTRAINT person_appearances_end_time_check CHECK ((end_time >= (0)::double precision)),
CONSTRAINT person_appearances_start_time_check CHECK ((start_time >= (0)::double precision)),
CONSTRAINT valid_appearance_time CHECK ((end_time > start_time)),
CONSTRAINT valid_duration CHECK (((end_time - start_time) = duration))
);
ALTER TABLE public.person_appearances OWNER TO accusys;
--
-- Name: TABLE person_appearances; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON TABLE public.person_appearances IS 'Stores individual person appearance records with time ranges';
--
-- Name: person_appearances_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.person_appearances_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.person_appearances_id_seq OWNER TO accusys;
--
-- Name: person_appearances_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.person_appearances_id_seq OWNED BY public.person_appearances.id;
--
-- Name: person_identities; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.person_identities (
id integer NOT NULL,
person_id character varying(255) NOT NULL,
face_identity_id integer,
speaker_id character varying(64),
video_uuid character varying(255) NOT NULL,
confidence double precision DEFAULT 0.0,
name character varying(255),
metadata jsonb DEFAULT '{}'::jsonb,
first_appearance_time double precision,
last_appearance_time double precision,
total_appearance_duration double precision DEFAULT 0.0,
appearance_count integer DEFAULT 0,
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
is_confirmed boolean DEFAULT false,
aliases jsonb DEFAULT '[]'::jsonb,
original_name character varying(255),
character_name character varying(255),
age integer,
gender character varying(20),
CONSTRAINT person_identities_confidence_check CHECK (((confidence >= (0.0)::double precision) AND (confidence <= (1.0)::double precision))),
CONSTRAINT valid_time_range CHECK (((first_appearance_time IS NULL) OR (last_appearance_time IS NULL) OR (last_appearance_time >= first_appearance_time)))
);
ALTER TABLE public.person_identities OWNER TO accusys;
--
-- Name: TABLE person_identities; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON TABLE public.person_identities IS 'Stores person identity associations linking face and speaker identities';
--
-- Name: person_identities_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.person_identities_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.person_identities_id_seq OWNER TO accusys;
--
-- Name: person_identities_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.person_identities_id_seq OWNED BY public.person_identities.id;
--
-- Name: processor_results; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.processor_results (
id integer NOT NULL,
job_id integer,
video_id bigint,
processor character varying(20) NOT NULL,
status character varying(20) DEFAULT 'pending'::character varying NOT NULL,
output_path text,
started_at timestamp without time zone,
completed_at timestamp without time zone,
error_message text,
progress_total integer DEFAULT 0,
progress_current integer DEFAULT 0,
last_checkpoint jsonb,
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
output_data jsonb,
duration_secs double precision GENERATED ALWAYS AS (
CASE
WHEN ((completed_at IS NOT NULL) AND (started_at IS NOT NULL)) THEN EXTRACT(epoch FROM (completed_at - started_at))
ELSE NULL::numeric
END) STORED,
processor_version character varying(50),
model_name character varying(100),
model_version character varying(50),
contract_version character varying(20),
CONSTRAINT chk_processor_results_processor CHECK (((processor)::text = ANY ((ARRAY['asr'::character varying, 'cut'::character varying, 'yolo'::character varying, 'ocr'::character varying, 'face'::character varying, 'pose'::character varying, 'asrx'::character varying])::text[]))),
CONSTRAINT chk_processor_results_status CHECK (((status)::text = ANY ((ARRAY['pending'::character varying, 'running'::character varying, 'completed'::character varying, 'failed'::character varying, 'skipped'::character varying])::text[])))
);
ALTER TABLE public.processor_results OWNER TO accusys;
--
-- Name: TABLE processor_results; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON TABLE public.processor_results IS 'Tracks individual processor execution status';
--
-- Name: COLUMN processor_results.status; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.processor_results.status IS 'pending, running, completed, failed, skipped';
--
-- Name: COLUMN processor_results.output_data; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.processor_results.output_data IS 'JSON output from processor execution';
--
-- Name: COLUMN processor_results.duration_secs; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.processor_results.duration_secs IS 'Computed duration in seconds (completed - started) as double precision';
--
-- Name: processor_results_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.processor_results_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.processor_results_id_seq OWNER TO accusys;
--
-- Name: processor_results_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.processor_results_id_seq OWNED BY public.processor_results.id;
--
-- Name: python_script_tracking; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.python_script_tracking (
id integer NOT NULL,
script_path text NOT NULL,
shebang_version character varying(20),
actual_version character varying(20),
is_compliant boolean DEFAULT false,
last_run_at timestamp without time zone,
exit_code integer,
error_output text,
checked_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.python_script_tracking OWNER TO accusys;
--
-- Name: python_script_tracking_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.python_script_tracking_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.python_script_tracking_id_seq OWNER TO accusys;
--
-- Name: python_script_tracking_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.python_script_tracking_id_seq OWNED BY public.python_script_tracking.id;
--
-- Name: python_version_baseline; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.python_version_baseline (
id integer NOT NULL,
runtime_name character varying(50) NOT NULL,
required_version character varying(20) NOT NULL,
current_version character varying(20),
interpreter_path character varying(500),
is_compliant boolean,
checked_at timestamp without time zone DEFAULT now()
);
ALTER TABLE public.python_version_baseline OWNER TO accusys;
--
-- Name: python_version_baseline_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.python_version_baseline_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.python_version_baseline_id_seq OWNER TO accusys;
--
-- Name: python_version_baseline_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.python_version_baseline_id_seq OWNED BY public.python_version_baseline.id;
--
-- Name: storage_access_logs; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.storage_access_logs (
id integer NOT NULL,
user_cluster character varying(50),
owner_id character varying(100),
file_path text,
access_type character varying(20),
access_time timestamp without time zone DEFAULT now(),
client_ip character varying(45),
access_method character varying(20),
CONSTRAINT storage_access_logs_access_type_check CHECK (((access_type)::text = ANY ((ARRAY['read'::character varying, 'write'::character varying, 'delete'::character varying, 'download'::character varying, 'move'::character varying])::text[])))
);
ALTER TABLE public.storage_access_logs OWNER TO accusys;
--
-- Name: storage_access_logs_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.storage_access_logs_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.storage_access_logs_id_seq OWNER TO accusys;
--
-- Name: storage_access_logs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.storage_access_logs_id_seq OWNED BY public.storage_access_logs.id;
--
-- Name: storage_usage_stats; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.storage_usage_stats (
id integer NOT NULL,
user_cluster character varying(50),
storage_tier character varying(20),
file_count bigint,
total_size_bytes bigint,
record_time timestamp without time zone DEFAULT now()
);
ALTER TABLE public.storage_usage_stats OWNER TO accusys;
--
-- Name: storage_usage_stats_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.storage_usage_stats_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.storage_usage_stats_id_seq OWNER TO accusys;
--
-- Name: storage_usage_stats_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.storage_usage_stats_id_seq OWNED BY public.storage_usage_stats.id;
--
-- Name: v_idle_workflows; Type: VIEW; Schema: public; Owner: accusys
--
CREATE VIEW public.v_idle_workflows AS
SELECT workflow_name,
idle_days,
suggestion,
last_executed_at
FROM public.monitor_workflows
WHERE ((idle_days > 30) AND (is_active = true))
ORDER BY idle_days DESC;
ALTER VIEW public.v_idle_workflows OWNER TO accusys;
--
-- Name: v_recent_anomalies; Type: VIEW; Schema: public; Owner: accusys
--
CREATE VIEW public.v_recent_anomalies AS
SELECT anomaly_type,
severity,
username,
source_ip,
description,
detected_at
FROM public.monitor_anomalies
WHERE (detected_at > (now() - '24:00:00'::interval))
ORDER BY detected_at DESC;
ALTER VIEW public.v_recent_anomalies OWNER TO accusys;
--
-- Name: v_service_health; Type: VIEW; Schema: public; Owner: accusys
--
CREATE VIEW public.v_service_health AS
SELECT service_name,
status,
count(*) AS check_count,
count(*) FILTER (WHERE ((status)::text = 'up'::text)) AS up_count,
count(*) FILTER (WHERE ((status)::text = 'down'::text)) AS down_count,
avg(response_time_ms) AS avg_response_time,
max(checked_at) AS last_check
FROM public.monitor_services
WHERE (checked_at > (now() - '24:00:00'::interval))
GROUP BY service_name, status;
ALTER VIEW public.v_service_health OWNER TO accusys;
--
-- Name: v_storage_overview; Type: VIEW; Schema: public; Owner: accusys
--
CREATE VIEW public.v_storage_overview AS
SELECT user_cluster,
storage_tier,
count(*) AS file_count,
sum(file_size) AS total_size
FROM public.file_registry
WHERE ((status)::text = 'active'::text)
GROUP BY user_cluster, storage_tier;
ALTER VIEW public.v_storage_overview OWNER TO accusys;
--
-- Name: video_events; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.video_events (
id integer NOT NULL,
uuid text NOT NULL,
start_time double precision NOT NULL,
end_time double precision NOT NULL,
event_type text NOT NULL,
confidence double precision DEFAULT 0.0,
metadata jsonb,
created_at timestamp with time zone DEFAULT now()
);
ALTER TABLE public.video_events OWNER TO accusys;
--
-- Name: video_events_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.video_events_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.video_events_id_seq OWNER TO accusys;
--
-- Name: video_events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.video_events_id_seq OWNED BY public.video_events.id;
--
-- Name: video_identities; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.video_identities (
id integer NOT NULL,
uuid text NOT NULL,
name text NOT NULL,
metadata jsonb DEFAULT '{}'::jsonb,
created_at timestamp with time zone DEFAULT now()
);
ALTER TABLE public.video_identities OWNER TO accusys;
--
-- Name: video_identities_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.video_identities_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.video_identities_id_seq OWNER TO accusys;
--
-- Name: video_identities_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.video_identities_id_seq OWNED BY public.video_identities.id;
--
-- Name: videos; Type: TABLE; Schema: public; Owner: accusys
--
CREATE TABLE public.videos (
id integer NOT NULL,
file_uuid character varying(32) CONSTRAINT videos_uuid_not_null NOT NULL,
file_path text NOT NULL,
file_name text NOT NULL,
duration double precision,
width integer,
height integer,
fps double precision,
probe_json jsonb,
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
fs_video boolean DEFAULT false,
fs_json boolean DEFAULT false,
psql_chunk boolean DEFAULT false,
pobject_chunk boolean DEFAULT false,
mobject_chunk boolean DEFAULT false,
pvector_chunk boolean DEFAULT false,
qvector_chunk boolean DEFAULT false,
status character varying(20) DEFAULT 'pending'::character varying,
user_id bigint,
job_id integer,
registered_at timestamp without time zone,
registration_time timestamp with time zone,
total_frames bigint DEFAULT 0,
processing_status jsonb DEFAULT '{}'::jsonb,
file_type character varying(20),
birth_registration jsonb DEFAULT '{}'::jsonb,
CONSTRAINT chk_videos_status CHECK (((status)::text = ANY ((ARRAY['pending'::character varying, 'processing'::character varying, 'completed'::character varying, 'failed'::character varying])::text[])))
);
ALTER TABLE public.videos OWNER TO accusys;
--
-- Name: COLUMN videos.status; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.videos.status IS 'Video processing status: pending, processing, completed, failed';
--
-- Name: COLUMN videos.user_id; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.videos.user_id IS 'WordPress user ID (for user association tracking)';
--
-- Name: COLUMN videos.job_id; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.videos.job_id IS 'Associated monitor_jobs ID';
--
-- Name: COLUMN videos.processing_status; Type: COMMENT; Schema: public; Owner: accusys
--
COMMENT ON COLUMN public.videos.processing_status IS 'Processing progress JSON: {"active_processors": [...], "progress": {...}}';
--
-- Name: videos_id_seq; Type: SEQUENCE; Schema: public; Owner: accusys
--
CREATE SEQUENCE public.videos_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.videos_id_seq OWNER TO accusys;
--
-- Name: videos_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: accusys
--
ALTER SEQUENCE public.videos_id_seq OWNED BY public.videos.id;
--
-- Name: api_key_anomalies id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.api_key_anomalies ALTER COLUMN id SET DEFAULT nextval('public.api_key_anomalies_id_seq'::regclass);
--
-- Name: api_key_audit_log id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.api_key_audit_log ALTER COLUMN id SET DEFAULT nextval('public.api_key_audit_log_id_seq'::regclass);
--
-- Name: api_keys id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.api_keys ALTER COLUMN id SET DEFAULT nextval('public.api_keys_id_seq'::regclass);
--
-- Name: backup_history id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.backup_history ALTER COLUMN id SET DEFAULT nextval('public.backup_history_id_seq'::regclass);
--
-- Name: backup_registry id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.backup_registry ALTER COLUMN id SET DEFAULT nextval('public.backup_registry_id_seq'::regclass);
--
-- Name: backup_storage_stats id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.backup_storage_stats ALTER COLUMN id SET DEFAULT nextval('public.backup_storage_stats_id_seq'::regclass);
--
-- Name: castings id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.castings ALTER COLUMN id SET DEFAULT nextval('public.castings_id_seq'::regclass);
--
-- Name: characters id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.characters ALTER COLUMN id SET DEFAULT nextval('public.characters_id_seq'::regclass);
--
-- Name: child_chunks id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.child_chunks ALTER COLUMN id SET DEFAULT nextval('public.child_chunks_id_seq'::regclass);
--
-- Name: chunk_vectors id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.chunk_vectors ALTER COLUMN id SET DEFAULT nextval('public.chunk_vectors_id_seq'::regclass);
--
-- Name: chunks id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.chunks ALTER COLUMN id SET DEFAULT nextval('public.chunks_id_seq'::regclass);
--
-- Name: face_clusters id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_clusters ALTER COLUMN id SET DEFAULT nextval('public.face_clusters_id_seq'::regclass);
--
-- Name: face_detections id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_detections ALTER COLUMN id SET DEFAULT nextval('public.face_detections_id_seq'::regclass);
--
-- Name: face_identities id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_identities ALTER COLUMN id SET DEFAULT nextval('public.face_identities_id_seq'::regclass);
--
-- Name: face_recognition_results id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_recognition_results ALTER COLUMN id SET DEFAULT nextval('public.face_recognition_results_id_seq'::regclass);
--
-- Name: file_lifecycle id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.file_lifecycle ALTER COLUMN id SET DEFAULT nextval('public.file_lifecycle_id_seq'::regclass);
--
-- Name: frames id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.frames ALTER COLUMN id SET DEFAULT nextval('public.frames_id_seq'::regclass);
--
-- Name: gitea_tokens id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.gitea_tokens ALTER COLUMN id SET DEFAULT nextval('public.gitea_tokens_id_seq'::regclass);
--
-- Name: identities id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.identities ALTER COLUMN id SET DEFAULT nextval('public.identities_id_seq'::regclass);
--
-- Name: identity_bindings id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.identity_bindings ALTER COLUMN id SET DEFAULT nextval('public.identity_bindings_id_seq'::regclass);
--
-- Name: merge_history id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.merge_history ALTER COLUMN id SET DEFAULT nextval('public.merge_history_id_seq'::regclass);
--
-- Name: monitor_anomalies id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_anomalies ALTER COLUMN id SET DEFAULT nextval('public.monitor_anomalies_id_seq'::regclass);
--
-- Name: monitor_config id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_config ALTER COLUMN id SET DEFAULT nextval('public.monitor_config_id_seq'::regclass);
--
-- Name: monitor_databases id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_databases ALTER COLUMN id SET DEFAULT nextval('public.monitor_databases_id_seq'::regclass);
--
-- Name: monitor_external id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_external ALTER COLUMN id SET DEFAULT nextval('public.monitor_external_id_seq'::regclass);
--
-- Name: monitor_jobs id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_jobs ALTER COLUMN id SET DEFAULT nextval('public.monitor_jobs_id_seq'::regclass);
--
-- Name: monitor_logins id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_logins ALTER COLUMN id SET DEFAULT nextval('public.monitor_logins_id_seq'::regclass);
--
-- Name: monitor_pg_schema_changes id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_pg_schema_changes ALTER COLUMN id SET DEFAULT nextval('public.monitor_pg_schema_changes_id_seq'::regclass);
--
-- Name: monitor_pg_tables id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_pg_tables ALTER COLUMN id SET DEFAULT nextval('public.monitor_pg_tables_id_seq'::regclass);
--
-- Name: monitor_portal_pages id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_portal_pages ALTER COLUMN id SET DEFAULT nextval('public.monitor_portal_pages_id_seq'::regclass);
--
-- Name: monitor_portal_users id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_portal_users ALTER COLUMN id SET DEFAULT nextval('public.monitor_portal_users_id_seq'::regclass);
--
-- Name: monitor_qdrant_collections id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_qdrant_collections ALTER COLUMN id SET DEFAULT nextval('public.monitor_qdrant_collections_id_seq'::regclass);
--
-- Name: monitor_resource_usage id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_resource_usage ALTER COLUMN id SET DEFAULT nextval('public.monitor_resource_usage_id_seq'::regclass);
--
-- Name: monitor_services id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_services ALTER COLUMN id SET DEFAULT nextval('public.monitor_services_id_seq'::regclass);
--
-- Name: monitor_sessions id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_sessions ALTER COLUMN id SET DEFAULT nextval('public.monitor_sessions_id_seq'::regclass);
--
-- Name: monitor_sudo_history id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_sudo_history ALTER COLUMN id SET DEFAULT nextval('public.monitor_sudo_history_id_seq'::regclass);
--
-- Name: monitor_workflows id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_workflows ALTER COLUMN id SET DEFAULT nextval('public.monitor_workflows_id_seq'::regclass);
--
-- Name: n8n_api_keys id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.n8n_api_keys ALTER COLUMN id SET DEFAULT nextval('public.n8n_api_keys_id_seq'::regclass);
--
-- Name: node_process_tracking id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.node_process_tracking ALTER COLUMN id SET DEFAULT nextval('public.node_process_tracking_id_seq'::regclass);
--
-- Name: node_version_baseline id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.node_version_baseline ALTER COLUMN id SET DEFAULT nextval('public.node_version_baseline_id_seq'::regclass);
--
-- Name: parent_chunks id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.parent_chunks ALTER COLUMN id SET DEFAULT nextval('public.parent_chunks_id_seq'::regclass);
--
-- Name: parent_chunks_poc id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.parent_chunks_poc ALTER COLUMN id SET DEFAULT nextval('public.parent_chunks_poc_id_seq'::regclass);
--
-- Name: person_appearances id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.person_appearances ALTER COLUMN id SET DEFAULT nextval('public.person_appearances_id_seq'::regclass);
--
-- Name: person_identities id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.person_identities ALTER COLUMN id SET DEFAULT nextval('public.person_identities_id_seq'::regclass);
--
-- Name: processor_results id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.processor_results ALTER COLUMN id SET DEFAULT nextval('public.processor_results_id_seq'::regclass);
--
-- Name: python_script_tracking id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.python_script_tracking ALTER COLUMN id SET DEFAULT nextval('public.python_script_tracking_id_seq'::regclass);
--
-- Name: python_version_baseline id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.python_version_baseline ALTER COLUMN id SET DEFAULT nextval('public.python_version_baseline_id_seq'::regclass);
--
-- Name: storage_access_logs id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.storage_access_logs ALTER COLUMN id SET DEFAULT nextval('public.storage_access_logs_id_seq'::regclass);
--
-- Name: storage_usage_stats id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.storage_usage_stats ALTER COLUMN id SET DEFAULT nextval('public.storage_usage_stats_id_seq'::regclass);
--
-- Name: video_events id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.video_events ALTER COLUMN id SET DEFAULT nextval('public.video_events_id_seq'::regclass);
--
-- Name: video_identities id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.video_identities ALTER COLUMN id SET DEFAULT nextval('public.video_identities_id_seq'::regclass);
--
-- Name: videos id; Type: DEFAULT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.videos ALTER COLUMN id SET DEFAULT nextval('public.videos_id_seq'::regclass);
--
-- Name: api_key_anomalies api_key_anomalies_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.api_key_anomalies
ADD CONSTRAINT api_key_anomalies_pkey PRIMARY KEY (id);
--
-- Name: api_key_audit_log api_key_audit_log_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.api_key_audit_log
ADD CONSTRAINT api_key_audit_log_pkey PRIMARY KEY (id);
--
-- Name: api_keys api_keys_key_id_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.api_keys
ADD CONSTRAINT api_keys_key_id_key UNIQUE (key_id);
--
-- Name: api_keys api_keys_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.api_keys
ADD CONSTRAINT api_keys_pkey PRIMARY KEY (id);
--
-- Name: backup_history backup_history_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.backup_history
ADD CONSTRAINT backup_history_pkey PRIMARY KEY (id);
--
-- Name: backup_registry backup_registry_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.backup_registry
ADD CONSTRAINT backup_registry_pkey PRIMARY KEY (id);
--
-- Name: backup_storage_stats backup_storage_stats_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.backup_storage_stats
ADD CONSTRAINT backup_storage_stats_pkey PRIMARY KEY (id);
--
-- Name: castings castings_character_id_talent_id_track_type_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.castings
ADD CONSTRAINT castings_character_id_talent_id_track_type_key UNIQUE (character_id, talent_id, track_type);
--
-- Name: castings castings_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.castings
ADD CONSTRAINT castings_pkey PRIMARY KEY (id);
--
-- Name: characters characters_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.characters
ADD CONSTRAINT characters_pkey PRIMARY KEY (id);
--
-- Name: characters characters_video_uuid_name_language_track_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.characters
ADD CONSTRAINT characters_video_uuid_name_language_track_key UNIQUE (video_uuid, name, language_track);
--
-- Name: child_chunks child_chunks_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.child_chunks
ADD CONSTRAINT child_chunks_pkey PRIMARY KEY (id);
--
-- Name: chunk_vectors chunk_vectors_chunk_id_uuid_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.chunk_vectors
ADD CONSTRAINT chunk_vectors_chunk_id_uuid_key UNIQUE (chunk_id, uuid);
--
-- Name: chunk_vectors chunk_vectors_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.chunk_vectors
ADD CONSTRAINT chunk_vectors_pkey PRIMARY KEY (id);
--
-- Name: chunks chunks_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.chunks
ADD CONSTRAINT chunks_pkey PRIMARY KEY (id);
--
-- Name: chunks chunks_uuid_chunk_id_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.chunks
ADD CONSTRAINT chunks_uuid_chunk_id_key UNIQUE (uuid, chunk_id);
--
-- Name: face_clusters face_clusters_cluster_id_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_clusters
ADD CONSTRAINT face_clusters_cluster_id_key UNIQUE (cluster_id);
--
-- Name: face_clusters face_clusters_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_clusters
ADD CONSTRAINT face_clusters_pkey PRIMARY KEY (id);
--
-- Name: face_detections face_detections_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_detections
ADD CONSTRAINT face_detections_pkey PRIMARY KEY (id);
--
-- Name: face_identities face_identities_face_id_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_identities
ADD CONSTRAINT face_identities_face_id_key UNIQUE (face_id);
--
-- Name: face_identities face_identities_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_identities
ADD CONSTRAINT face_identities_pkey PRIMARY KEY (id);
--
-- Name: face_recognition_results face_recognition_results_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_recognition_results
ADD CONSTRAINT face_recognition_results_pkey PRIMARY KEY (id);
--
-- Name: face_recognition_results face_recognition_results_video_uuid_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_recognition_results
ADD CONSTRAINT face_recognition_results_video_uuid_key UNIQUE (video_uuid);
--
-- Name: file_lifecycle file_lifecycle_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.file_lifecycle
ADD CONSTRAINT file_lifecycle_pkey PRIMARY KEY (id);
--
-- Name: file_registry file_registry_file_path_hash_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.file_registry
ADD CONSTRAINT file_registry_file_path_hash_key UNIQUE (file_path_hash);
--
-- Name: file_registry file_registry_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.file_registry
ADD CONSTRAINT file_registry_pkey PRIMARY KEY (file_uuid);
--
-- Name: frames frames_file_id_frame_number_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.frames
ADD CONSTRAINT frames_file_id_frame_number_key UNIQUE (file_id, frame_number);
--
-- Name: frames frames_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.frames
ADD CONSTRAINT frames_pkey PRIMARY KEY (id);
--
-- Name: gitea_tokens gitea_tokens_gitea_user_token_name_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.gitea_tokens
ADD CONSTRAINT gitea_tokens_gitea_user_token_name_key UNIQUE (gitea_user, token_name);
--
-- Name: gitea_tokens gitea_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.gitea_tokens
ADD CONSTRAINT gitea_tokens_pkey PRIMARY KEY (id);
--
-- Name: identities identities_name_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.identities
ADD CONSTRAINT identities_name_key UNIQUE (name);
--
-- Name: identities identities_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.identities
ADD CONSTRAINT identities_pkey PRIMARY KEY (id);
--
-- Name: identity_bindings identity_bindings_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.identity_bindings
ADD CONSTRAINT identity_bindings_pkey PRIMARY KEY (id);
--
-- Name: identity_bindings identity_bindings_uuid_binding_type_binding_value_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.identity_bindings
ADD CONSTRAINT identity_bindings_uuid_binding_type_binding_value_key UNIQUE (uuid, binding_type, binding_value);
--
-- Name: merge_history merge_history_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.merge_history
ADD CONSTRAINT merge_history_pkey PRIMARY KEY (id);
--
-- Name: monitor_anomalies monitor_anomalies_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_anomalies
ADD CONSTRAINT monitor_anomalies_pkey PRIMARY KEY (id);
--
-- Name: monitor_config monitor_config_config_key_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_config
ADD CONSTRAINT monitor_config_config_key_key UNIQUE (config_key);
--
-- Name: monitor_config monitor_config_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_config
ADD CONSTRAINT monitor_config_pkey PRIMARY KEY (id);
--
-- Name: monitor_databases monitor_databases_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_databases
ADD CONSTRAINT monitor_databases_pkey PRIMARY KEY (id);
--
-- Name: monitor_external monitor_external_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_external
ADD CONSTRAINT monitor_external_pkey PRIMARY KEY (id);
--
-- Name: monitor_jobs monitor_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_jobs
ADD CONSTRAINT monitor_jobs_pkey PRIMARY KEY (id);
--
-- Name: monitor_logins monitor_logins_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_logins
ADD CONSTRAINT monitor_logins_pkey PRIMARY KEY (id);
--
-- Name: monitor_pg_schema_changes monitor_pg_schema_changes_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_pg_schema_changes
ADD CONSTRAINT monitor_pg_schema_changes_pkey PRIMARY KEY (id);
--
-- Name: monitor_pg_tables monitor_pg_tables_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_pg_tables
ADD CONSTRAINT monitor_pg_tables_pkey PRIMARY KEY (id);
--
-- Name: monitor_portal_pages monitor_portal_pages_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_portal_pages
ADD CONSTRAINT monitor_portal_pages_pkey PRIMARY KEY (id);
--
-- Name: monitor_portal_users monitor_portal_users_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_portal_users
ADD CONSTRAINT monitor_portal_users_pkey PRIMARY KEY (id);
--
-- Name: monitor_qdrant_collections monitor_qdrant_collections_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_qdrant_collections
ADD CONSTRAINT monitor_qdrant_collections_pkey PRIMARY KEY (id);
--
-- Name: monitor_resource_usage monitor_resource_usage_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_resource_usage
ADD CONSTRAINT monitor_resource_usage_pkey PRIMARY KEY (id);
--
-- Name: monitor_services monitor_services_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_services
ADD CONSTRAINT monitor_services_pkey PRIMARY KEY (id);
--
-- Name: monitor_sessions monitor_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_sessions
ADD CONSTRAINT monitor_sessions_pkey PRIMARY KEY (id);
--
-- Name: monitor_sudo_history monitor_sudo_history_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_sudo_history
ADD CONSTRAINT monitor_sudo_history_pkey PRIMARY KEY (id);
--
-- Name: monitor_workflows monitor_workflows_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_workflows
ADD CONSTRAINT monitor_workflows_pkey PRIMARY KEY (id);
--
-- Name: n8n_api_keys n8n_api_keys_n8n_key_id_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.n8n_api_keys
ADD CONSTRAINT n8n_api_keys_n8n_key_id_key UNIQUE (n8n_key_id);
--
-- Name: n8n_api_keys n8n_api_keys_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.n8n_api_keys
ADD CONSTRAINT n8n_api_keys_pkey PRIMARY KEY (id);
--
-- Name: node_process_tracking node_process_tracking_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.node_process_tracking
ADD CONSTRAINT node_process_tracking_pkey PRIMARY KEY (id);
--
-- Name: node_version_baseline node_version_baseline_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.node_version_baseline
ADD CONSTRAINT node_version_baseline_pkey PRIMARY KEY (id);
--
-- Name: parent_chunks parent_chunks_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.parent_chunks
ADD CONSTRAINT parent_chunks_pkey PRIMARY KEY (id);
--
-- Name: parent_chunks_poc parent_chunks_poc_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.parent_chunks_poc
ADD CONSTRAINT parent_chunks_poc_pkey PRIMARY KEY (id);
--
-- Name: person_appearances person_appearances_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.person_appearances
ADD CONSTRAINT person_appearances_pkey PRIMARY KEY (id);
--
-- Name: person_identities person_identities_person_id_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.person_identities
ADD CONSTRAINT person_identities_person_id_key UNIQUE (person_id);
--
-- Name: person_identities person_identities_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.person_identities
ADD CONSTRAINT person_identities_pkey PRIMARY KEY (id);
--
-- Name: processor_results processor_results_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.processor_results
ADD CONSTRAINT processor_results_pkey PRIMARY KEY (id);
--
-- Name: python_script_tracking python_script_tracking_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.python_script_tracking
ADD CONSTRAINT python_script_tracking_pkey PRIMARY KEY (id);
--
-- Name: python_version_baseline python_version_baseline_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.python_version_baseline
ADD CONSTRAINT python_version_baseline_pkey PRIMARY KEY (id);
--
-- Name: storage_access_logs storage_access_logs_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.storage_access_logs
ADD CONSTRAINT storage_access_logs_pkey PRIMARY KEY (id);
--
-- Name: storage_usage_stats storage_usage_stats_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.storage_usage_stats
ADD CONSTRAINT storage_usage_stats_pkey PRIMARY KEY (id);
--
-- Name: face_detections unique_detection_per_frame; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_detections
ADD CONSTRAINT unique_detection_per_frame UNIQUE (video_uuid, frame_number, x, y, width, height);
--
-- Name: processor_results unique_job_processor; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.processor_results
ADD CONSTRAINT unique_job_processor UNIQUE (job_id, processor);
--
-- Name: person_identities unique_person_identity; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.person_identities
ADD CONSTRAINT unique_person_identity UNIQUE (video_uuid, face_identity_id, speaker_id);
--
-- Name: video_events video_events_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.video_events
ADD CONSTRAINT video_events_pkey PRIMARY KEY (id);
--
-- Name: video_identities video_identities_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.video_identities
ADD CONSTRAINT video_identities_pkey PRIMARY KEY (id);
--
-- Name: videos videos_pkey; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.videos
ADD CONSTRAINT videos_pkey PRIMARY KEY (id);
--
-- Name: videos videos_uuid_key; Type: CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.videos
ADD CONSTRAINT videos_uuid_key UNIQUE (file_uuid);
--
-- Name: idx_anomalies_key_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_anomalies_key_id ON public.api_key_anomalies USING btree (key_id);
--
-- Name: idx_anomalies_resolved; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_anomalies_resolved ON public.api_key_anomalies USING btree (resolved);
--
-- Name: idx_api_keys_hash; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_api_keys_hash ON public.api_keys USING btree (key_hash);
--
-- Name: idx_api_keys_key_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_api_keys_key_id ON public.api_keys USING btree (key_id);
--
-- Name: idx_api_keys_status; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_api_keys_status ON public.api_keys USING btree (status);
--
-- Name: idx_api_keys_type; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_api_keys_type ON public.api_keys USING btree (key_type);
--
-- Name: idx_audit_action; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_audit_action ON public.api_key_audit_log USING btree (action);
--
-- Name: idx_audit_created_at; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_audit_created_at ON public.api_key_audit_log USING btree (created_at);
--
-- Name: idx_audit_key_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_audit_key_id ON public.api_key_audit_log USING btree (key_id);
--
-- Name: idx_backup_history_service; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_backup_history_service ON public.backup_history USING btree (service_name);
--
-- Name: idx_backup_history_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_backup_history_time ON public.backup_history USING btree (executed_at);
--
-- Name: idx_backup_registry_service; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_backup_registry_service ON public.backup_registry USING btree (service_name);
--
-- Name: idx_backup_registry_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_backup_registry_time ON public.backup_registry USING btree (created_at);
--
-- Name: idx_backup_storage_stats_tier; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_backup_storage_stats_tier ON public.backup_storage_stats USING btree (tier);
--
-- Name: idx_backup_storage_stats_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_backup_storage_stats_time ON public.backup_storage_stats USING btree (record_time);
--
-- Name: idx_bindings_identity; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_bindings_identity ON public.identity_bindings USING btree (identity_id);
--
-- Name: idx_bindings_lookup; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_bindings_lookup ON public.identity_bindings USING btree (uuid, binding_type, binding_value);
--
-- Name: idx_child_parent; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_child_parent ON public.child_chunks USING btree (parent_id);
--
-- Name: idx_chunk_vectors_chunk_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunk_vectors_chunk_id ON public.chunk_vectors USING btree (chunk_id);
--
-- Name: idx_chunk_vectors_embedding_hnsw; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunk_vectors_embedding_hnsw ON public.chunk_vectors USING hnsw (embedding_vector public.vector_cosine_ops);
--
-- Name: idx_chunk_vectors_file_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunk_vectors_file_id ON public.chunk_vectors USING btree (file_id);
--
-- Name: idx_chunk_vectors_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunk_vectors_uuid ON public.chunk_vectors USING btree (uuid);
--
-- Name: idx_chunks_content_gin; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunks_content_gin ON public.chunks USING gin (content);
--
-- Name: idx_chunks_file_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunks_file_id ON public.chunks USING btree (file_id);
--
-- Name: idx_chunks_search_vector; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunks_search_vector ON public.chunks USING gin (search_vector);
--
-- Name: idx_chunks_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunks_time ON public.chunks USING btree (start_time, end_time);
--
-- Name: idx_chunks_type; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunks_type ON public.chunks USING btree (chunk_type);
--
-- Name: idx_chunks_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunks_uuid ON public.chunks USING btree (uuid);
--
-- Name: idx_chunks_uuid_type; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_chunks_uuid_type ON public.chunks USING btree (uuid, chunk_type);
--
-- Name: idx_face_clusters_video_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_face_clusters_video_uuid ON public.face_clusters USING btree (video_uuid);
--
-- Name: idx_face_detections_cluster; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_face_detections_cluster ON public.face_detections USING btree (cluster_id);
--
-- Name: idx_face_detections_embedding; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_face_detections_embedding ON public.face_detections USING ivfflat (embedding public.vector_cosine_ops) WITH (lists='100');
--
-- Name: idx_face_detections_face_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_face_detections_face_id ON public.face_detections USING btree (face_id);
--
-- Name: idx_face_detections_frame; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_face_detections_frame ON public.face_detections USING btree (video_uuid, frame_number);
--
-- Name: idx_face_detections_identity; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_face_detections_identity ON public.face_detections USING btree (identity_id);
--
-- Name: idx_face_detections_video_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_face_detections_video_uuid ON public.face_detections USING btree (video_uuid);
--
-- Name: idx_face_identities_embedding; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_face_identities_embedding ON public.face_identities USING ivfflat (embedding public.vector_cosine_ops) WITH (lists='100');
--
-- Name: idx_face_recognition_results_created_at; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_face_recognition_results_created_at ON public.face_recognition_results USING btree (created_at);
--
-- Name: idx_file_registry_cluster; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_file_registry_cluster ON public.file_registry USING btree (user_cluster);
--
-- Name: idx_file_registry_status; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_file_registry_status ON public.file_registry USING btree (status);
--
-- Name: idx_file_registry_tier; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_file_registry_tier ON public.file_registry USING btree (storage_tier);
--
-- Name: idx_frames_face_gin; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_frames_face_gin ON public.frames USING gin (face_results);
--
-- Name: idx_frames_file_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_frames_file_id ON public.frames USING btree (file_id);
--
-- Name: idx_frames_frame; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_frames_frame ON public.frames USING btree (file_id, frame_number);
--
-- Name: idx_frames_ocr_gin; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_frames_ocr_gin ON public.frames USING gin (ocr_results);
--
-- Name: idx_frames_pose_gin; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_frames_pose_gin ON public.frames USING gin (pose_results);
--
-- Name: idx_frames_timestamp; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_frames_timestamp ON public.frames USING btree (file_id, "timestamp");
--
-- Name: idx_frames_yolo_gin; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_frames_yolo_gin ON public.frames USING gin (yolo_objects);
--
-- Name: idx_gitea_tokens_key_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_gitea_tokens_key_id ON public.gitea_tokens USING btree (api_key_id);
--
-- Name: idx_gitea_tokens_user; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_gitea_tokens_user ON public.gitea_tokens USING btree (gitea_user);
--
-- Name: idx_identities_face_embedding; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_identities_face_embedding ON public.identities USING ivfflat (face_embedding public.vector_cosine_ops) WITH (lists='100');
--
-- Name: idx_identities_identity_embedding; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_identities_identity_embedding ON public.identities USING ivfflat (identity_embedding public.vector_cosine_ops) WITH (lists='100');
--
-- Name: idx_identities_reference_data; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_identities_reference_data ON public.identities USING gin (reference_data);
--
-- Name: idx_identities_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_identities_uuid ON public.identities USING btree (uuid);
--
-- Name: idx_identities_voice_embedding; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_identities_voice_embedding ON public.identities USING ivfflat (voice_embedding public.vector_cosine_ops) WITH (lists='50');
--
-- Name: idx_monitor_anomalies_severity; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_anomalies_severity ON public.monitor_anomalies USING btree (severity);
--
-- Name: idx_monitor_anomalies_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_anomalies_time ON public.monitor_anomalies USING btree (detected_at);
--
-- Name: idx_monitor_anomalies_type; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_anomalies_type ON public.monitor_anomalies USING btree (anomaly_type);
--
-- Name: idx_monitor_databases_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_databases_time ON public.monitor_databases USING btree (checked_at);
--
-- Name: idx_monitor_databases_type; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_databases_type ON public.monitor_databases USING btree (db_type);
--
-- Name: idx_monitor_external_name; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_external_name ON public.monitor_external USING btree (target_name);
--
-- Name: idx_monitor_external_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_external_time ON public.monitor_external USING btree (checked_at);
--
-- Name: idx_monitor_jobs_created_at; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_jobs_created_at ON public.monitor_jobs USING btree (created_at);
--
-- Name: idx_monitor_jobs_processors; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_jobs_processors ON public.monitor_jobs USING gin (processors);
--
-- Name: idx_monitor_jobs_status; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_jobs_status ON public.monitor_jobs USING btree (status);
--
-- Name: idx_monitor_jobs_status_created; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_jobs_status_created ON public.monitor_jobs USING btree (status, created_at);
--
-- Name: idx_monitor_jobs_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_jobs_uuid ON public.monitor_jobs USING btree (uuid);
--
-- Name: idx_monitor_jobs_video_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_jobs_video_id ON public.monitor_jobs USING btree (video_id);
--
-- Name: idx_monitor_logins_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_logins_time ON public.monitor_logins USING btree (login_at);
--
-- Name: idx_monitor_logins_type; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_logins_type ON public.monitor_logins USING btree (user_type);
--
-- Name: idx_monitor_portal_pages_url; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_portal_pages_url ON public.monitor_portal_pages USING btree (page_url);
--
-- Name: idx_monitor_portal_users_username; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_portal_users_username ON public.monitor_portal_users USING btree (username);
--
-- Name: idx_monitor_services_name; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_services_name ON public.monitor_services USING btree (service_name);
--
-- Name: idx_monitor_services_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_services_time ON public.monitor_services USING btree (checked_at);
--
-- Name: idx_monitor_sessions_type; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_sessions_type ON public.monitor_sessions USING btree (session_type);
--
-- Name: idx_monitor_sessions_username; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_sessions_username ON public.monitor_sessions USING btree (username);
--
-- Name: idx_monitor_workflows_active; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_workflows_active ON public.monitor_workflows USING btree (is_active);
--
-- Name: idx_monitor_workflows_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_workflows_id ON public.monitor_workflows USING btree (workflow_id);
--
-- Name: idx_monitor_workflows_idle; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_monitor_workflows_idle ON public.monitor_workflows USING btree (idle_days);
--
-- Name: idx_n8n_api_keys_key_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_n8n_api_keys_key_id ON public.n8n_api_keys USING btree (momentry_api_key_id);
--
-- Name: idx_n8n_api_keys_label; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_n8n_api_keys_label ON public.n8n_api_keys USING btree (label);
--
-- Name: idx_node_process_name; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_node_process_name ON public.node_process_tracking USING btree (process_name);
--
-- Name: idx_node_version_name; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_node_version_name ON public.node_version_baseline USING btree (runtime_name);
--
-- Name: idx_person_appearances_face; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_person_appearances_face ON public.person_appearances USING btree (face_detection_id) WHERE (face_detection_id IS NOT NULL);
--
-- Name: idx_person_appearances_person; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_person_appearances_person ON public.person_appearances USING btree (person_id);
--
-- Name: idx_person_appearances_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_person_appearances_time ON public.person_appearances USING btree (video_uuid, start_time, end_time);
--
-- Name: idx_person_appearances_video; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_person_appearances_video ON public.person_appearances USING btree (video_uuid);
--
-- Name: idx_person_identities_confirmed; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_person_identities_confirmed ON public.person_identities USING btree (is_confirmed) WHERE (is_confirmed = true);
--
-- Name: idx_person_identities_face; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_person_identities_face ON public.person_identities USING btree (face_identity_id) WHERE (face_identity_id IS NOT NULL);
--
-- Name: idx_person_identities_name; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_person_identities_name ON public.person_identities USING btree (name) WHERE (name IS NOT NULL);
--
-- Name: idx_person_identities_speaker; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_person_identities_speaker ON public.person_identities USING btree (speaker_id) WHERE (speaker_id IS NOT NULL);
--
-- Name: idx_person_identities_video_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_person_identities_video_uuid ON public.person_identities USING btree (video_uuid);
--
-- Name: idx_processor_results_job; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_processor_results_job ON public.processor_results USING btree (job_id);
--
-- Name: idx_processor_results_output_data; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_processor_results_output_data ON public.processor_results USING gin (output_data);
--
-- Name: idx_processor_results_status; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_processor_results_status ON public.processor_results USING btree (status);
--
-- Name: idx_processor_results_video; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_processor_results_video ON public.processor_results USING btree (video_id);
--
-- Name: idx_python_script_path; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_python_script_path ON public.python_script_tracking USING btree (script_path);
--
-- Name: idx_python_version_name; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_python_version_name ON public.python_version_baseline USING btree (runtime_name);
--
-- Name: idx_storage_usage_cluster; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_storage_usage_cluster ON public.storage_usage_stats USING btree (user_cluster);
--
-- Name: idx_storage_usage_time; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_storage_usage_time ON public.storage_usage_stats USING btree (record_time);
--
-- Name: idx_video_events_type; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_video_events_type ON public.video_events USING btree (event_type);
--
-- Name: idx_video_events_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_video_events_uuid ON public.video_events USING btree (uuid);
--
-- Name: idx_video_identities_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_video_identities_uuid ON public.video_identities USING btree (uuid);
--
-- Name: idx_videos_file_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_videos_file_uuid ON public.videos USING btree (file_uuid);
--
-- Name: idx_videos_job_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_videos_job_id ON public.videos USING btree (job_id);
--
-- Name: idx_videos_status; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_videos_status ON public.videos USING btree (status);
--
-- Name: idx_videos_user_id; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_videos_user_id ON public.videos USING btree (user_id);
--
-- Name: idx_videos_uuid; Type: INDEX; Schema: public; Owner: accusys
--
CREATE INDEX idx_videos_uuid ON public.videos USING btree (file_uuid);
--
-- Name: chunks chunks_search_vector_trigger; Type: TRIGGER; Schema: public; Owner: accusys
--
CREATE TRIGGER chunks_search_vector_trigger BEFORE INSERT OR UPDATE ON public.chunks FOR EACH ROW EXECUTE FUNCTION public.update_search_vector();
--
-- Name: person_appearances trigger_update_person_appearance_stats; Type: TRIGGER; Schema: public; Owner: accusys
--
CREATE TRIGGER trigger_update_person_appearance_stats AFTER INSERT OR DELETE OR UPDATE ON public.person_appearances FOR EACH ROW EXECUTE FUNCTION public.trigger_update_person_stats();
--
-- Name: face_identities update_face_identities_updated_at; Type: TRIGGER; Schema: public; Owner: accusys
--
CREATE TRIGGER update_face_identities_updated_at BEFORE UPDATE ON public.face_identities FOR EACH ROW EXECUTE FUNCTION public.update_updated_at_column();
--
-- Name: face_recognition_results update_face_recognition_results_updated_at; Type: TRIGGER; Schema: public; Owner: accusys
--
CREATE TRIGGER update_face_recognition_results_updated_at BEFORE UPDATE ON public.face_recognition_results FOR EACH ROW EXECUTE FUNCTION public.update_updated_at_column();
--
-- Name: monitor_jobs update_monitor_jobs_updated_at; Type: TRIGGER; Schema: public; Owner: accusys
--
CREATE TRIGGER update_monitor_jobs_updated_at BEFORE UPDATE ON public.monitor_jobs FOR EACH ROW EXECUTE FUNCTION public.update_updated_at_column();
--
-- Name: person_identities update_person_identities_updated_at; Type: TRIGGER; Schema: public; Owner: accusys
--
CREATE TRIGGER update_person_identities_updated_at BEFORE UPDATE ON public.person_identities FOR EACH ROW EXECUTE FUNCTION public.update_updated_at_column();
--
-- Name: processor_results update_processor_results_updated_at; Type: TRIGGER; Schema: public; Owner: accusys
--
CREATE TRIGGER update_processor_results_updated_at BEFORE UPDATE ON public.processor_results FOR EACH ROW EXECUTE FUNCTION public.update_updated_at_column();
--
-- Name: videos update_videos_updated_at; Type: TRIGGER; Schema: public; Owner: accusys
--
CREATE TRIGGER update_videos_updated_at BEFORE UPDATE ON public.videos FOR EACH ROW EXECUTE FUNCTION public.update_updated_at_column();
--
-- Name: castings castings_character_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.castings
ADD CONSTRAINT castings_character_id_fkey FOREIGN KEY (character_id) REFERENCES public.characters(id) ON DELETE CASCADE;
--
-- Name: child_chunks child_chunks_parent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.child_chunks
ADD CONSTRAINT child_chunks_parent_id_fkey FOREIGN KEY (parent_id) REFERENCES public.parent_chunks(id) ON DELETE CASCADE;
--
-- Name: chunk_vectors chunk_vectors_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.chunk_vectors
ADD CONSTRAINT chunk_vectors_file_id_fkey FOREIGN KEY (file_id) REFERENCES public.videos(id);
--
-- Name: chunks chunks_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.chunks
ADD CONSTRAINT chunks_file_id_fkey FOREIGN KEY (file_id) REFERENCES public.videos(id);
--
-- Name: face_detections face_detections_identity_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.face_detections
ADD CONSTRAINT face_detections_identity_id_fkey FOREIGN KEY (identity_id) REFERENCES public.face_identities(id) ON DELETE SET NULL;
--
-- Name: file_lifecycle file_lifecycle_file_uuid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.file_lifecycle
ADD CONSTRAINT file_lifecycle_file_uuid_fkey FOREIGN KEY (file_uuid) REFERENCES public.file_registry(file_uuid);
--
-- Name: monitor_jobs fk_monitor_jobs_video_id; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.monitor_jobs
ADD CONSTRAINT fk_monitor_jobs_video_id FOREIGN KEY (video_id) REFERENCES public.videos(id) ON DELETE CASCADE;
--
-- Name: videos fk_videos_job_id; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.videos
ADD CONSTRAINT fk_videos_job_id FOREIGN KEY (job_id) REFERENCES public.monitor_jobs(id) ON DELETE SET NULL;
--
-- Name: frames frames_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.frames
ADD CONSTRAINT frames_file_id_fkey FOREIGN KEY (file_id) REFERENCES public.videos(id);
--
-- Name: identity_bindings identity_bindings_identity_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.identity_bindings
ADD CONSTRAINT identity_bindings_identity_id_fkey FOREIGN KEY (identity_id) REFERENCES public.video_identities(id) ON DELETE CASCADE;
--
-- Name: person_appearances person_appearances_face_detection_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.person_appearances
ADD CONSTRAINT person_appearances_face_detection_id_fkey FOREIGN KEY (face_detection_id) REFERENCES public.face_detections(id) ON DELETE SET NULL;
--
-- Name: person_appearances person_appearances_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.person_appearances
ADD CONSTRAINT person_appearances_person_id_fkey FOREIGN KEY (person_id) REFERENCES public.person_identities(person_id) ON DELETE CASCADE;
--
-- Name: person_identities person_identities_face_identity_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.person_identities
ADD CONSTRAINT person_identities_face_identity_id_fkey FOREIGN KEY (face_identity_id) REFERENCES public.face_identities(id) ON DELETE SET NULL;
--
-- Name: processor_results processor_results_job_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.processor_results
ADD CONSTRAINT processor_results_job_id_fkey FOREIGN KEY (job_id) REFERENCES public.monitor_jobs(id) ON DELETE CASCADE;
--
-- Name: processor_results processor_results_video_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: accusys
--
ALTER TABLE ONLY public.processor_results
ADD CONSTRAINT processor_results_video_id_fkey FOREIGN KEY (video_id) REFERENCES public.videos(id) ON DELETE CASCADE;
--
-- PostgreSQL database dump complete
--
\unrestrict hRi4nBNv2E5FXxBTf47fTk0vxfJNiXtnegSYFeraY46zaCyMMlYNanEdl70C1E7