--
-- PostgreSQL database dump
--

\restrict r3N6TGQGFjg82OQMzKEaIDkXV6NW6WJUq2RgUxqvirlVBMgNcH04JLB0uwke4FU

-- Dumped from database version 17.9 (Homebrew)
-- Dumped by pg_dump version 17.9 (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: timescaledb; Type: EXTENSION; Schema: -; Owner: -
--

CREATE EXTENSION IF NOT EXISTS timescaledb WITH SCHEMA public;


--
-- Name: EXTENSION timescaledb; Type: COMMENT; Schema: -; Owner: -
--

COMMENT ON EXTENSION timescaledb IS 'Enables scalable inserts and complex queries for time-series data (Community Edition)';


--
-- Name: citext; Type: EXTENSION; Schema: -; Owner: -
--

CREATE EXTENSION IF NOT EXISTS citext WITH SCHEMA public;


--
-- Name: EXTENSION citext; Type: COMMENT; Schema: -; Owner: -
--

COMMENT ON EXTENSION citext IS 'data type for case-insensitive character strings';


--
-- Name: pg_stat_statements; Type: EXTENSION; Schema: -; Owner: -
--

CREATE EXTENSION IF NOT EXISTS pg_stat_statements WITH SCHEMA public;


--
-- Name: EXTENSION pg_stat_statements; Type: COMMENT; Schema: -; Owner: -
--

COMMENT ON EXTENSION pg_stat_statements IS 'track planning and execution statistics of all SQL statements executed';


--
-- Name: sslinfo; Type: EXTENSION; Schema: -; Owner: -
--

CREATE EXTENSION IF NOT EXISTS sslinfo WITH SCHEMA public;


--
-- Name: EXTENSION sslinfo; Type: COMMENT; Schema: -; Owner: -
--

COMMENT ON EXTENSION sslinfo IS 'information about SSL certificates';


--
-- Name: oban_job_state; Type: TYPE; Schema: public; Owner: -
--

CREATE TYPE public.oban_job_state AS ENUM (
    'available',
    'scheduled',
    'executing',
    'retryable',
    'completed',
    'discarded',
    'cancelled'
);


--
-- Name: oban_state_to_bit(public.oban_job_state); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION public.oban_state_to_bit(state public.oban_job_state) RETURNS jsonb
    LANGUAGE sql IMMUTABLE STRICT
    AS $$
SELECT CASE
       WHEN state = 'scheduled' THEN '0'::jsonb
       WHEN state = 'available' THEN '1'::jsonb
       WHEN state = 'executing' THEN '2'::jsonb
       WHEN state = 'retryable' THEN '3'::jsonb
       WHEN state = 'completed' THEN '4'::jsonb
       WHEN state = 'cancelled' THEN '5'::jsonb
       WHEN state = 'discarded' THEN '6'::jsonb
       END;
$$;


SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- Name: agent_assignments; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.agent_assignments (
    id uuid NOT NULL,
    enabled boolean DEFAULT true NOT NULL,
    agent_token_id uuid NOT NULL,
    device_id uuid NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: agent_tokens; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.agent_tokens (
    id uuid NOT NULL,
    name character varying(255) NOT NULL,
    last_seen_at timestamp(0) without time zone,
    last_ip character varying(255),
    enabled boolean DEFAULT true NOT NULL,
    metadata jsonb DEFAULT '{}'::jsonb NOT NULL,
    organization_id uuid,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    token text NOT NULL,
    is_cloud_poller boolean DEFAULT false NOT NULL,
    allow_remote_debug boolean DEFAULT false NOT NULL,
    CONSTRAINT cloud_poller_no_org CHECK ((((is_cloud_poller = false) AND (organization_id IS NOT NULL)) OR ((is_cloud_poller = true) AND (organization_id IS NULL))))
);


--
-- Name: alerts; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.alerts (
    id uuid NOT NULL,
    device_id uuid,
    alert_type character varying(255) NOT NULL,
    triggered_at timestamp(0) without time zone NOT NULL,
    acknowledged_at timestamp(0) without time zone,
    acknowledged_by_id uuid,
    resolved_at timestamp(0) without time zone,
    message text,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    email_sent_at timestamp(0) without time zone,
    check_id uuid,
    severity integer DEFAULT 2,
    notification_sent boolean DEFAULT false,
    notification_sent_at timestamp(0) without time zone,
    output text,
    gaiia_impact jsonb,
    organization_id uuid
);


--
-- Name: api_tokens; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.api_tokens (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    name character varying(255) NOT NULL,
    token_hash character varying(255) NOT NULL,
    last_used_at timestamp(0) without time zone,
    expires_at timestamp(0) without time zone,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    user_id uuid
);


--
-- Name: application_settings; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.application_settings (
    id uuid NOT NULL,
    key character varying(255) NOT NULL,
    value text,
    value_type character varying(255) DEFAULT 'string'::character varying NOT NULL,
    description text,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: audit_logs; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.audit_logs (
    id uuid NOT NULL,
    action character varying(255) NOT NULL,
    superuser_id uuid,
    target_user_id uuid,
    metadata jsonb DEFAULT '{}'::jsonb,
    ip_address character varying(255),
    inserted_at timestamp(0) without time zone NOT NULL,
    user_agent text,
    request_path character varying(255),
    data_accessed jsonb
);


--
-- Name: browser_sessions; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.browser_sessions (
    id uuid NOT NULL,
    user_id uuid,
    user_token_id uuid NOT NULL,
    device_name character varying(255),
    browser_name character varying(255),
    browser_version character varying(255),
    os_name character varying(255),
    os_version character varying(255),
    device_type character varying(255),
    ip_address character varying(255) NOT NULL,
    country_code character varying(255),
    country_name character varying(255),
    city_name character varying(255),
    subdivision_1_name character varying(255),
    last_activity_at timestamp(0) without time zone NOT NULL,
    expires_at timestamp(0) without time zone NOT NULL,
    anonymized_at timestamp(0) without time zone,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: check_results; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.check_results (
    id uuid NOT NULL,
    checked_at timestamp(0) without time zone NOT NULL,
    organization_id uuid NOT NULL,
    check_id uuid NOT NULL,
    status integer NOT NULL,
    output text,
    response_time_ms double precision,
    agent_token_id uuid,
    value double precision
);


--
-- Name: checks; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.checks (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    device_id uuid,
    name character varying(255) NOT NULL,
    check_type character varying(255) NOT NULL,
    description text,
    interval_seconds integer DEFAULT 60 NOT NULL,
    retry_interval_seconds integer DEFAULT 30 NOT NULL,
    max_check_attempts integer DEFAULT 3 NOT NULL,
    timeout_ms integer DEFAULT 5000 NOT NULL,
    enabled boolean DEFAULT true NOT NULL,
    config jsonb DEFAULT '{}'::jsonb NOT NULL,
    current_state integer DEFAULT 3 NOT NULL,
    current_state_type character varying(255) DEFAULT 'soft'::character varying NOT NULL,
    current_check_attempt integer DEFAULT 1 NOT NULL,
    last_check_at timestamp(0) without time zone,
    last_state_change_at timestamp(0) without time zone,
    last_hard_state_change_at timestamp(0) without time zone,
    enable_flapping boolean DEFAULT false NOT NULL,
    flapping_threshold_low double precision DEFAULT 25.0 NOT NULL,
    flapping_threshold_high double precision DEFAULT 30.0 NOT NULL,
    is_flapping boolean DEFAULT false NOT NULL,
    flapping_state_changes integer DEFAULT 0 NOT NULL,
    flapping_window_start_at timestamp(0) without time zone,
    enable_passive_checks boolean DEFAULT false NOT NULL,
    freshness_threshold_seconds integer,
    check_key character varying(255),
    agent_token_id uuid,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    source_type character varying(255),
    source_id uuid
);


--
-- Name: config_change_events; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.config_change_events (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    organization_id uuid NOT NULL,
    backup_before_id uuid,
    backup_after_id uuid,
    changed_at timestamp(0) without time zone NOT NULL,
    diff_summary text,
    sections_changed character varying(255)[] DEFAULT ARRAY[]::character varying[],
    change_size integer DEFAULT 0,
    inserted_at timestamp(0) without time zone NOT NULL
);


--
-- Name: device_backup_requests; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.device_backup_requests (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    job_id character varying(255) NOT NULL,
    requested_at timestamp(0) without time zone NOT NULL,
    completed_at timestamp(0) without time zone,
    status character varying(255) NOT NULL,
    error_message text,
    inserted_at timestamp(0) without time zone NOT NULL,
    source character varying(255) DEFAULT 'daily_cron'::character varying
);


--
-- Name: device_events; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.device_events (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    event_type character varying(255) NOT NULL,
    severity character varying(255) NOT NULL,
    message text NOT NULL,
    metadata jsonb DEFAULT '{}'::jsonb,
    occurred_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL
);


--
-- Name: device_firmware_history; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.device_firmware_history (
    id uuid NOT NULL,
    snmp_device_id uuid NOT NULL,
    old_version character varying(255),
    new_version character varying(255) NOT NULL,
    detected_at timestamp(0) without time zone NOT NULL,
    detection_method character varying(255),
    inserted_at timestamp(0) without time zone NOT NULL
);


--
-- Name: device_link_evidence; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.device_link_evidence (
    id uuid NOT NULL,
    device_link_id uuid NOT NULL,
    evidence_type character varying(255) NOT NULL,
    evidence_data jsonb DEFAULT '{}'::jsonb,
    observed_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: device_links; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.device_links (
    id uuid NOT NULL,
    source_device_id uuid NOT NULL,
    target_device_id uuid,
    source_interface_id uuid,
    target_interface_id uuid,
    link_type character varying(255) NOT NULL,
    confidence double precision DEFAULT 0.5 NOT NULL,
    metadata jsonb DEFAULT '{}'::jsonb,
    discovered_remote_name character varying(255),
    discovered_remote_ip character varying(255),
    discovered_remote_mac character varying(255),
    last_confirmed_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: device_mikrotik_backups; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.device_mikrotik_backups (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    config_compressed bytea NOT NULL,
    config_hash character varying(255) NOT NULL,
    config_hash_normalized character varying(255) NOT NULL,
    config_size_bytes integer,
    compressed_size_bytes integer,
    backed_up_at timestamp(0) without time zone NOT NULL,
    trigger_source character varying(255) DEFAULT 'daily_cron'::character varying,
    inserted_at timestamp(0) without time zone NOT NULL
);


--
-- Name: device_neighbors; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.device_neighbors (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    neighbor_device_id uuid,
    neighbor_name character varying(255) NOT NULL,
    local_port character varying(255) NOT NULL,
    remote_port character varying(255),
    remote_port_id character varying(255),
    management_addresses character varying(255)[] DEFAULT ARRAY[]::character varying[],
    discovered_at timestamp(0) without time zone NOT NULL,
    last_seen_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: device_profiles; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.device_profiles (
    id uuid NOT NULL,
    name character varying(255) NOT NULL,
    vendor character varying(255) NOT NULL,
    detection_pattern text,
    detection_oid text,
    priority integer DEFAULT 100,
    enabled boolean DEFAULT true,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: device_subscriber_links; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.device_subscriber_links (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    device_id uuid NOT NULL,
    gaiia_account_id uuid NOT NULL,
    gaiia_inventory_item_id uuid,
    match_method character varying(255) NOT NULL,
    confidence character varying(255) NOT NULL,
    subscriber_ip character varying(255),
    subscriber_mac character varying(255),
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: devices; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.devices (
    id uuid NOT NULL,
    site_id uuid,
    name character varying(255),
    ip_address character varying(255) NOT NULL,
    description text,
    status character varying(255) DEFAULT 'unknown'::character varying NOT NULL,
    last_checked_at timestamp(0) without time zone,
    last_status_change_at timestamp(0) without time zone,
    monitoring_enabled boolean DEFAULT true NOT NULL,
    check_interval_seconds integer DEFAULT 300 NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    snmp_enabled boolean DEFAULT true NOT NULL,
    snmp_version character varying(255),
    snmp_community character varying(255),
    snmp_port integer DEFAULT 161,
    last_discovery_at timestamp(0) without time zone,
    last_snmp_poll_at timestamp(0) without time zone,
    display_order integer,
    snmp_community_source character varying(255) DEFAULT 'device'::character varying,
    mikrotik_username character varying,
    mikrotik_password bytea,
    mikrotik_port integer,
    mikrotik_use_ssl boolean,
    mikrotik_enabled boolean,
    mikrotik_credential_source character varying(255) DEFAULT 'site'::character varying,
    mikrotik_ssh_port integer,
    snmpv3_security_level character varying(255),
    snmpv3_username character varying(255),
    snmpv3_auth_protocol character varying(255),
    snmpv3_auth_password bytea,
    snmpv3_priv_protocol character varying(255),
    snmpv3_priv_password bytea,
    snmpv3_credential_source character varying(255) DEFAULT 'site'::character varying,
    organization_id uuid NOT NULL,
    snmp_transport character varying(255) DEFAULT 'udp'::character varying NOT NULL,
    snmp_transport_source character varying(255) DEFAULT 'organization'::character varying NOT NULL,
    device_role character varying(255),
    device_role_source character varying(255) DEFAULT 'inferred'::character varying
);


--
-- Name: error_tracker_errors; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.error_tracker_errors (
    id bigint NOT NULL,
    kind character varying(255) NOT NULL,
    reason text NOT NULL,
    source_line text NOT NULL,
    source_function text NOT NULL,
    status character varying(255) NOT NULL,
    fingerprint character varying(255) NOT NULL,
    last_occurrence_at timestamp without time zone NOT NULL,
    inserted_at timestamp without time zone NOT NULL,
    updated_at timestamp without time zone NOT NULL,
    muted boolean DEFAULT false NOT NULL
);


--
-- Name: error_tracker_errors_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.error_tracker_errors_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: error_tracker_errors_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.error_tracker_errors_id_seq OWNED BY public.error_tracker_errors.id;


--
-- Name: error_tracker_meta; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.error_tracker_meta (
    key character varying(255) NOT NULL,
    value character varying(255) NOT NULL
);


--
-- Name: error_tracker_occurrences; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.error_tracker_occurrences (
    id bigint NOT NULL,
    context jsonb NOT NULL,
    reason text NOT NULL,
    stacktrace jsonb NOT NULL,
    error_id bigint NOT NULL,
    inserted_at timestamp without time zone NOT NULL,
    breadcrumbs character varying(255)[] DEFAULT ARRAY[]::character varying[] NOT NULL
);


--
-- Name: error_tracker_occurrences_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.error_tracker_occurrences_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: error_tracker_occurrences_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.error_tracker_occurrences_id_seq OWNED BY public.error_tracker_occurrences.id;


--
-- Name: firmware_releases; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.firmware_releases (
    id uuid NOT NULL,
    vendor character varying(255) NOT NULL,
    product_line character varying(255),
    version character varying(255) NOT NULL,
    release_date date,
    download_url character varying(255),
    changelog_url character varying(255),
    metadata jsonb DEFAULT '{}'::jsonb NOT NULL,
    fetched_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: gaiia_accounts; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.gaiia_accounts (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    gaiia_id character varying(255) NOT NULL,
    readable_id character varying(255),
    name character varying(255),
    status character varying(255),
    account_type character varying(255),
    address jsonb,
    subscription_count integer,
    mrr numeric,
    raw_data jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: gaiia_billing_subscriptions; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.gaiia_billing_subscriptions (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    gaiia_id character varying(255) NOT NULL,
    account_gaiia_id character varying(255),
    status character varying(255),
    product_name character varying(255),
    mrr_amount numeric,
    currency character varying(255),
    speed_download integer,
    speed_upload integer,
    raw_data jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: gaiia_inventory_items; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.gaiia_inventory_items (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    gaiia_id character varying(255) NOT NULL,
    name character varying(255),
    status character varying(255),
    serial_number character varying(255),
    mac_address character varying(255),
    ip_address character varying(255),
    model_name character varying(255),
    manufacturer_name character varying(255),
    category character varying(255),
    assigned_account_gaiia_id character varying(255),
    assigned_network_site_gaiia_id character varying(255),
    device_id uuid,
    raw_data jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: gaiia_network_sites; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.gaiia_network_sites (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    gaiia_id character varying(255) NOT NULL,
    name character varying(255),
    address jsonb,
    ip_blocks character varying(255)[] DEFAULT ARRAY[]::character varying[],
    account_count integer,
    total_mrr numeric,
    site_id uuid,
    raw_data jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: geoip_blocks; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.geoip_blocks (
    id uuid NOT NULL,
    network character varying(255),
    start_ip_int bigint NOT NULL,
    end_ip_int bigint NOT NULL,
    geoname_id integer,
    registered_country_geoname_id integer,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: geoip_locations; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.geoip_locations (
    geoname_id integer NOT NULL,
    country_code character varying(2),
    country_name character varying(255),
    city_name character varying(255),
    subdivision_1_name character varying(255),
    subdivision_2_name character varying(255),
    latitude double precision,
    longitude double precision,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: integrations; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.integrations (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    provider character varying(255) NOT NULL,
    enabled boolean DEFAULT false NOT NULL,
    credentials bytea,
    sync_interval_minutes integer DEFAULT 10,
    last_synced_at timestamp(0) without time zone,
    last_sync_status character varying(255) DEFAULT 'never'::character varying,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    last_sync_message text,
    subscriber_count integer DEFAULT 0,
    total_mrr numeric DEFAULT 0
);


--
-- Name: ip_blocks; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.ip_blocks (
    id uuid NOT NULL,
    ip_address character varying(255) NOT NULL,
    offense_count integer DEFAULT 1 NOT NULL,
    banned_until timestamp(0) without time zone,
    last_violation_at timestamp(0) without time zone NOT NULL,
    reason text,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: ip_whitelist; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.ip_whitelist (
    id uuid NOT NULL,
    ip_or_cidr character varying(255) NOT NULL,
    description text,
    added_by_id uuid,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: login_attempts; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.login_attempts (
    id uuid NOT NULL,
    user_id uuid,
    email character varying(255),
    success boolean NOT NULL,
    method character varying(255) NOT NULL,
    failure_reason character varying(255),
    ip_address character varying(255) NOT NULL,
    user_agent text,
    country_code character varying(255),
    country_name character varying(255),
    city_name character varying(255),
    subdivision_1_name character varying(255),
    anonymized_at timestamp(0) without time zone,
    inserted_at timestamp(0) without time zone NOT NULL
);


--
-- Name: maintenance_windows; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.maintenance_windows (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    site_id uuid,
    device_id uuid,
    name character varying(255) NOT NULL,
    reason character varying(255),
    starts_at timestamp(0) without time zone NOT NULL,
    ends_at timestamp(0) without time zone NOT NULL,
    created_by_id uuid NOT NULL,
    recurring boolean DEFAULT false,
    recurrence_rule character varying(255),
    suppress_alerts boolean DEFAULT true,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    CONSTRAINT ends_at_after_starts_at CHECK ((ends_at > starts_at))
);


--
-- Name: mobile_sessions; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.mobile_sessions (
    id uuid NOT NULL,
    user_id uuid NOT NULL,
    token character varying(255) NOT NULL,
    device_name character varying(255),
    device_os character varying(255),
    app_version character varying(255),
    last_used_at timestamp(0) without time zone NOT NULL,
    expires_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    alerts_enabled boolean DEFAULT true NOT NULL,
    push_token text,
    push_platform character varying(255)
);


--
-- Name: monitoring_checks; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.monitoring_checks (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    status character varying(255) NOT NULL,
    response_time_ms double precision,
    checked_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    agent_token_id uuid
);


--
-- Name: oban_crons; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.oban_crons (
    name text NOT NULL,
    expression text NOT NULL,
    worker text NOT NULL,
    opts jsonb NOT NULL,
    insertions timestamp without time zone[] DEFAULT ARRAY[]::timestamp without time zone[] NOT NULL,
    paused boolean DEFAULT false NOT NULL,
    lock_version integer DEFAULT 1,
    inserted_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    updated_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);


--
-- Name: oban_jobs; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.oban_jobs (
    id bigint NOT NULL,
    state public.oban_job_state DEFAULT 'available'::public.oban_job_state NOT NULL,
    queue text DEFAULT 'default'::text NOT NULL,
    worker text NOT NULL,
    args jsonb DEFAULT '{}'::jsonb NOT NULL,
    errors jsonb[] DEFAULT ARRAY[]::jsonb[] NOT NULL,
    attempt integer DEFAULT 0 NOT NULL,
    max_attempts integer DEFAULT 20 NOT NULL,
    inserted_at timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
    scheduled_at timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
    attempted_at timestamp without time zone,
    completed_at timestamp without time zone,
    attempted_by text[],
    discarded_at timestamp without time zone,
    priority integer DEFAULT 0 NOT NULL,
    tags text[] DEFAULT ARRAY[]::text[],
    meta jsonb DEFAULT '{}'::jsonb,
    cancelled_at timestamp without time zone,
    uniq_key text GENERATED ALWAYS AS (
CASE
    WHEN ((meta -> 'uniq_bmp'::text) @> public.oban_state_to_bit(state)) THEN (meta ->> 'uniq_key'::text)
    ELSE NULL::text
END) STORED,
    partition_key text GENERATED ALWAYS AS (
CASE
    WHEN (meta ? 'partition_key'::text) THEN (meta ->> 'partition_key'::text)
    ELSE NULL::text
END) STORED,
    CONSTRAINT attempt_range CHECK (((attempt >= 0) AND (attempt <= max_attempts))),
    CONSTRAINT positive_max_attempts CHECK ((max_attempts > 0)),
    CONSTRAINT queue_length CHECK (((char_length(queue) > 0) AND (char_length(queue) < 128))),
    CONSTRAINT worker_length CHECK (((char_length(worker) > 0) AND (char_length(worker) < 128)))
);


--
-- Name: TABLE oban_jobs; Type: COMMENT; Schema: public; Owner: -
--

COMMENT ON TABLE public.oban_jobs IS '12';


--
-- Name: oban_jobs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.oban_jobs_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: oban_jobs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.oban_jobs_id_seq OWNED BY public.oban_jobs.id;


--
-- Name: oban_peers; Type: TABLE; Schema: public; Owner: -
--

CREATE UNLOGGED TABLE public.oban_peers (
    name text NOT NULL,
    node text NOT NULL,
    started_at timestamp without time zone NOT NULL,
    expires_at timestamp without time zone NOT NULL
);


--
-- Name: oban_producers; Type: TABLE; Schema: public; Owner: -
--

CREATE UNLOGGED TABLE public.oban_producers (
    uuid uuid NOT NULL,
    name text NOT NULL,
    node text NOT NULL,
    queue text NOT NULL,
    meta jsonb DEFAULT '{}'::jsonb NOT NULL,
    started_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    updated_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);


--
-- Name: TABLE oban_producers; Type: COMMENT; Schema: public; Owner: -
--

COMMENT ON TABLE public.oban_producers IS '1.6.0-schemas,1.6.0-indexes';


--
-- Name: oban_queues; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.oban_queues (
    name text NOT NULL,
    opts jsonb DEFAULT '{}'::jsonb NOT NULL,
    "only" jsonb DEFAULT '{}'::jsonb NOT NULL,
    lock_version integer DEFAULT 1,
    inserted_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    updated_at timestamp without time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    hash text
);


--
-- Name: organization_invitations; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.organization_invitations (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    email character varying(255) NOT NULL,
    role character varying(255) NOT NULL,
    token character varying(255) NOT NULL,
    invited_by_id uuid,
    accepted_at timestamp(0) without time zone,
    accepted_by_id uuid,
    expires_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: organization_memberships; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.organization_memberships (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    user_id uuid NOT NULL,
    role character varying(255) NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    is_default boolean DEFAULT false NOT NULL
);


--
-- Name: organizations; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.organizations (
    id uuid NOT NULL,
    name character varying(255) NOT NULL,
    slug character varying(255) NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    default_agent_token_id uuid,
    snmp_version character varying(255) DEFAULT '2c'::character varying,
    snmp_community character varying(255),
    subscription_plan character varying(255) DEFAULT 'free'::character varying NOT NULL,
    mikrotik_username character varying,
    mikrotik_password bytea,
    mikrotik_port integer DEFAULT 8729,
    mikrotik_use_ssl boolean DEFAULT true,
    mikrotik_enabled boolean DEFAULT false,
    mikrotik_ssh_port integer DEFAULT 22,
    snmp_port integer DEFAULT 161 NOT NULL,
    snmpv3_security_level character varying(255),
    snmpv3_username character varying(255),
    snmpv3_auth_protocol character varying(255) DEFAULT 'SHA-256'::character varying,
    snmpv3_auth_password bytea,
    snmpv3_priv_protocol character varying(255) DEFAULT 'AES'::character varying,
    snmpv3_priv_password bytea,
    use_sites boolean DEFAULT false NOT NULL,
    snmp_transport character varying(255) DEFAULT 'udp'::character varying NOT NULL,
    onboarding_completed boolean DEFAULT false NOT NULL
);


--
-- Name: policy_versions; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.policy_versions (
    id uuid NOT NULL,
    policy_type character varying(255) NOT NULL,
    version character varying(255) NOT NULL,
    content text NOT NULL,
    effective_date timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: preseem_access_points; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.preseem_access_points (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    preseem_id character varying(255) NOT NULL,
    name character varying(255),
    mac_address character varying(255),
    ip_address character varying(255),
    model character varying(255),
    firmware character varying(255),
    capacity_score double precision,
    qoe_score double precision,
    rf_score double precision,
    busy_hours integer,
    airtime_utilization double precision,
    subscriber_count integer,
    device_id uuid,
    match_confidence character varying(255) DEFAULT 'unmatched'::character varying,
    raw_data jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: preseem_device_baselines; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.preseem_device_baselines (
    id uuid NOT NULL,
    preseem_access_point_id uuid NOT NULL,
    metric_name character varying(255) NOT NULL,
    period character varying(255) NOT NULL,
    mean double precision,
    stddev double precision,
    p5 double precision,
    p95 double precision,
    sample_count integer,
    computed_at timestamp(0) without time zone NOT NULL
);


--
-- Name: preseem_fleet_profiles; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.preseem_fleet_profiles (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    manufacturer character varying(255) NOT NULL,
    model character varying(255) NOT NULL,
    firmware_version character varying(255),
    device_count integer NOT NULL,
    avg_subscribers double precision,
    avg_qoe_score double precision,
    avg_capacity_score double precision,
    capacity_ceiling integer,
    avg_busy_hours double precision,
    performance_data jsonb,
    computed_at timestamp(0) without time zone NOT NULL
);


--
-- Name: preseem_insights; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.preseem_insights (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    preseem_access_point_id uuid,
    device_id uuid,
    type character varying(255) NOT NULL,
    urgency character varying(255) NOT NULL,
    status character varying(255) DEFAULT 'active'::character varying NOT NULL,
    channel character varying(255) NOT NULL,
    title character varying(255) NOT NULL,
    description text,
    metadata jsonb,
    dismissed_at timestamp(0) without time zone,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    source character varying(255) DEFAULT 'preseem'::character varying NOT NULL,
    site_id uuid,
    agent_token_id uuid
);


--
-- Name: preseem_subscriber_metrics; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.preseem_subscriber_metrics (
    id uuid NOT NULL,
    preseem_access_point_id uuid NOT NULL,
    avg_latency double precision,
    avg_jitter double precision,
    avg_loss double precision,
    avg_throughput double precision,
    p95_latency double precision,
    subscriber_count integer,
    recorded_at timestamp(0) without time zone NOT NULL
);


--
-- Name: preseem_sync_logs; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.preseem_sync_logs (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    integration_id uuid NOT NULL,
    status character varying(255) NOT NULL,
    records_synced integer DEFAULT 0,
    errors jsonb,
    duration_ms integer,
    inserted_at timestamp(0) without time zone NOT NULL
);


--
-- Name: profile_device_oids; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.profile_device_oids (
    id uuid NOT NULL,
    profile_id uuid NOT NULL,
    field character varying(255) NOT NULL,
    mib_name character varying(255) NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: profile_sensor_oids; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.profile_sensor_oids (
    id uuid NOT NULL,
    profile_id uuid NOT NULL,
    sensor_type character varying(255) NOT NULL,
    mib_name character varying(255) NOT NULL,
    sensor_descr character varying(255),
    sensor_unit character varying(255),
    sensor_divisor integer DEFAULT 1,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: qr_login_tokens; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.qr_login_tokens (
    id uuid NOT NULL,
    user_id uuid NOT NULL,
    token character varying(255) NOT NULL,
    expires_at timestamp(0) without time zone NOT NULL,
    completed_at timestamp(0) without time zone,
    mobile_session_id uuid,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.schema_migrations (
    version bigint NOT NULL,
    inserted_at timestamp(0) without time zone
);


--
-- Name: sites; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.sites (
    id uuid NOT NULL,
    organization_id uuid NOT NULL,
    parent_site_id uuid,
    name character varying(255) NOT NULL,
    description text,
    location character varying(255),
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    agent_token_id uuid,
    snmp_version character varying(255),
    snmp_community character varying(255),
    display_order integer,
    mikrotik_username character varying,
    mikrotik_password bytea,
    mikrotik_port integer,
    mikrotik_use_ssl boolean,
    mikrotik_enabled boolean,
    mikrotik_ssh_port integer,
    snmp_port integer,
    snmpv3_security_level character varying(255),
    snmpv3_username character varying(255),
    snmpv3_auth_protocol character varying(255),
    snmpv3_auth_password bytea,
    snmpv3_priv_protocol character varying(255),
    snmpv3_priv_password bytea,
    snmp_transport character varying(255),
    address character varying(255),
    latitude double precision,
    longitude double precision
);


--
-- Name: snmp_arp_entries; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_arp_entries (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    interface_id uuid,
    ip_address character varying(255) NOT NULL,
    mac_address character varying(255) NOT NULL,
    entry_type character varying(255),
    if_index integer,
    last_seen_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_devices; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_devices (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    sys_descr text,
    sys_object_id character varying(255),
    sys_name character varying(255),
    sys_uptime bigint,
    sys_contact character varying(255),
    sys_location character varying(255),
    manufacturer character varying(255),
    model character varying(255),
    firmware_version character varying(255),
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    serial_number character varying(255),
    raw_discovery_data jsonb,
    last_discovery_at timestamp(0) without time zone
);


--
-- Name: snmp_interface_stats; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_interface_stats (
    id uuid NOT NULL,
    interface_id uuid NOT NULL,
    if_in_octets bigint,
    if_out_octets bigint,
    if_in_errors bigint,
    if_out_errors bigint,
    if_in_discards bigint,
    if_out_discards bigint,
    checked_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_interfaces; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_interfaces (
    id uuid NOT NULL,
    snmp_device_id uuid NOT NULL,
    if_index integer NOT NULL,
    if_name character varying(255),
    if_descr character varying(255),
    if_alias character varying(255),
    if_type integer,
    if_speed bigint,
    if_phys_address character varying(255),
    if_admin_status character varying(255),
    if_oper_status character varying(255),
    monitored boolean DEFAULT true NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_ip_addresses; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_ip_addresses (
    id uuid NOT NULL,
    snmp_interface_id uuid NOT NULL,
    ip_address character varying(255) NOT NULL,
    subnet_mask character varying(255),
    prefix_length integer,
    ip_type character varying(255) DEFAULT 'ipv4'::character varying NOT NULL,
    is_primary boolean DEFAULT false,
    last_checked_at timestamp(0) without time zone,
    metadata jsonb DEFAULT '{}'::jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_mac_addresses; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_mac_addresses (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    interface_id uuid,
    mac_address character varying(255) NOT NULL,
    vlan_id integer,
    port_index integer,
    entry_status character varying(255),
    last_seen_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_memory_pools; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_memory_pools (
    id uuid NOT NULL,
    snmp_device_id uuid NOT NULL,
    pool_index character varying(255) NOT NULL,
    pool_name character varying(255),
    pool_type character varying(255) NOT NULL,
    total_bytes bigint,
    used_bytes bigint,
    last_checked_at timestamp(0) without time zone,
    metadata jsonb DEFAULT '{}'::jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_neighbors; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_neighbors (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    interface_id uuid NOT NULL,
    protocol character varying(255) NOT NULL,
    remote_chassis_id character varying(255),
    remote_system_name character varying(255),
    remote_system_description text,
    remote_platform character varying(255),
    remote_port_id character varying(255),
    remote_port_description character varying(255),
    remote_address character varying(255),
    remote_capabilities character varying(255)[] DEFAULT ARRAY[]::character varying[],
    last_discovered_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_physical_entities; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_physical_entities (
    id uuid NOT NULL,
    snmp_device_id uuid NOT NULL,
    entity_index integer NOT NULL,
    entity_class character varying(255) NOT NULL,
    description character varying(255),
    model_name character varying(255),
    serial_number character varying(255),
    firmware_revision character varying(255),
    hardware_revision character varying(255),
    manufacturer_name character varying(255),
    "position" integer,
    last_checked_at timestamp(0) without time zone,
    metadata jsonb DEFAULT '{}'::jsonb,
    parent_entity_id uuid,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_processor_readings; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_processor_readings (
    id uuid NOT NULL,
    processor_id uuid NOT NULL,
    load_percent double precision,
    status character varying(255) DEFAULT 'ok'::character varying NOT NULL,
    checked_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_processors; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_processors (
    id uuid NOT NULL,
    snmp_device_id uuid NOT NULL,
    processor_index character varying(255) NOT NULL,
    description character varying(255),
    processor_type character varying(255) NOT NULL,
    load_percent double precision,
    last_checked_at timestamp(0) without time zone,
    metadata jsonb DEFAULT '{}'::jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_sensor_readings; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_sensor_readings (
    id uuid NOT NULL,
    sensor_id uuid NOT NULL,
    value double precision,
    status character varying(255) NOT NULL,
    checked_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    state_descr character varying(255)
);


--
-- Name: snmp_sensors; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_sensors (
    id uuid NOT NULL,
    snmp_device_id uuid NOT NULL,
    sensor_type character varying(255) NOT NULL,
    sensor_index character varying(255) NOT NULL,
    sensor_oid character varying(255) NOT NULL,
    sensor_descr character varying(255),
    sensor_unit character varying(255),
    sensor_divisor integer DEFAULT 1 NOT NULL,
    monitored boolean DEFAULT true NOT NULL,
    last_value double precision,
    last_checked_at timestamp(0) without time zone,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    metadata jsonb DEFAULT '{}'::jsonb
);


--
-- Name: snmp_state_sensors; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_state_sensors (
    id uuid NOT NULL,
    snmp_device_id uuid NOT NULL,
    sensor_index character varying(255) NOT NULL,
    sensor_oid character varying(255) NOT NULL,
    sensor_descr character varying(255),
    entity_type character varying(255),
    state_value integer,
    state_descr character varying(255),
    status character varying(255) DEFAULT 'unknown'::character varying,
    last_checked_at timestamp(0) without time zone,
    metadata jsonb DEFAULT '{}'::jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_storage; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_storage (
    id uuid NOT NULL,
    snmp_device_id uuid NOT NULL,
    storage_index integer NOT NULL,
    storage_type character varying(255) NOT NULL,
    description character varying(255),
    device_name character varying(255),
    total_bytes bigint,
    used_bytes bigint,
    allocation_units integer,
    last_checked_at timestamp(0) without time zone,
    metadata jsonb DEFAULT '{}'::jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_storage_readings; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_storage_readings (
    id uuid NOT NULL,
    storage_id uuid NOT NULL,
    used_bytes bigint,
    total_bytes bigint,
    usage_percent double precision,
    checked_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL
);


--
-- Name: snmp_vlans; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.snmp_vlans (
    id uuid NOT NULL,
    snmp_device_id uuid NOT NULL,
    vlan_id integer NOT NULL,
    vlan_name character varying(255),
    vlan_type character varying(255),
    status character varying(255) DEFAULT 'active'::character varying,
    last_checked_at timestamp(0) without time zone,
    metadata jsonb DEFAULT '{}'::jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: user_consents; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.user_consents (
    id uuid NOT NULL,
    user_id uuid NOT NULL,
    consent_type character varying(255) NOT NULL,
    version character varying(255) NOT NULL,
    granted_at timestamp(0) without time zone NOT NULL,
    revoked_at timestamp(0) without time zone,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: user_recovery_codes; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.user_recovery_codes (
    id uuid NOT NULL,
    user_id uuid NOT NULL,
    code_hash character varying(255) NOT NULL,
    used_at timestamp(0) without time zone,
    created_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL
);


--
-- Name: user_totp_devices; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.user_totp_devices (
    id uuid NOT NULL,
    user_id uuid NOT NULL,
    name character varying(255) NOT NULL,
    totp_secret bytea NOT NULL,
    last_used_at timestamp(0) without time zone,
    created_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: users; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.users (
    id uuid NOT NULL,
    email public.citext NOT NULL,
    hashed_password character varying(255),
    confirmed_at timestamp(0) without time zone,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL,
    is_superuser boolean DEFAULT false NOT NULL,
    timezone character varying(255) DEFAULT 'UTC'::character varying,
    totp_secret bytea,
    last_sudo_at timestamp(0) without time zone,
    first_name character varying(255),
    last_name character varying(255),
    time_format character varying(255) DEFAULT '24h'::character varying NOT NULL,
    default_organization_id uuid,
    language character varying(255) DEFAULT 'en'::character varying NOT NULL
);


--
-- Name: users_tokens; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.users_tokens (
    id uuid NOT NULL,
    user_id uuid NOT NULL,
    token bytea NOT NULL,
    context character varying(255) NOT NULL,
    sent_to character varying(255),
    authenticated_at timestamp(0) without time zone,
    inserted_at timestamp(0) without time zone NOT NULL,
    totp_verified_at timestamp(0) without time zone
);


--
-- Name: weather_alerts; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.weather_alerts (
    id uuid NOT NULL,
    site_id uuid NOT NULL,
    event character varying(255) NOT NULL,
    sender character varying(255),
    description text,
    starts_at timestamp(0) without time zone,
    ends_at timestamp(0) without time zone,
    tags character varying(255)[] DEFAULT ARRAY[]::character varying[],
    severity character varying(255),
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: weather_observations; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.weather_observations (
    id uuid NOT NULL,
    site_id uuid NOT NULL,
    condition character varying(255),
    condition_detail character varying(255),
    icon character varying(255),
    temperature_c double precision,
    feels_like_c double precision,
    humidity integer,
    pressure_hpa integer,
    visibility_m integer,
    wind_speed_ms double precision,
    wind_gust_ms double precision,
    wind_deg integer,
    rain_1h_mm double precision,
    snow_1h_mm double precision,
    clouds_pct integer,
    raw jsonb,
    observed_at timestamp(0) without time zone NOT NULL,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: wireless_clients; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.wireless_clients (
    id uuid NOT NULL,
    device_id uuid NOT NULL,
    organization_id uuid NOT NULL,
    mac_address character varying(255) NOT NULL,
    ip_address character varying(255),
    hostname character varying(255),
    signal_strength integer,
    snr integer,
    distance integer,
    tx_rate integer,
    rx_rate integer,
    uptime_seconds integer,
    last_seen_at timestamp(0) without time zone NOT NULL,
    metadata jsonb DEFAULT '{}'::jsonb,
    inserted_at timestamp(0) without time zone NOT NULL,
    updated_at timestamp(0) without time zone NOT NULL
);


--
-- Name: error_tracker_errors id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.error_tracker_errors ALTER COLUMN id SET DEFAULT nextval('public.error_tracker_errors_id_seq'::regclass);


--
-- Name: error_tracker_occurrences id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.error_tracker_occurrences ALTER COLUMN id SET DEFAULT nextval('public.error_tracker_occurrences_id_seq'::regclass);


--
-- Name: oban_jobs id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.oban_jobs ALTER COLUMN id SET DEFAULT nextval('public.oban_jobs_id_seq'::regclass);


--
-- Name: agent_assignments agent_assignments_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.agent_assignments
    ADD CONSTRAINT agent_assignments_pkey PRIMARY KEY (id);


--
-- Name: agent_tokens agent_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.agent_tokens
    ADD CONSTRAINT agent_tokens_pkey PRIMARY KEY (id);


--
-- Name: alerts alerts_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.alerts
    ADD CONSTRAINT alerts_pkey PRIMARY KEY (id);


--
-- Name: api_tokens api_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.api_tokens
    ADD CONSTRAINT api_tokens_pkey PRIMARY KEY (id);


--
-- Name: application_settings application_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.application_settings
    ADD CONSTRAINT application_settings_pkey PRIMARY KEY (id);


--
-- Name: audit_logs audit_logs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.audit_logs
    ADD CONSTRAINT audit_logs_pkey PRIMARY KEY (id);


--
-- Name: browser_sessions browser_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.browser_sessions
    ADD CONSTRAINT browser_sessions_pkey PRIMARY KEY (id);


--
-- Name: check_results check_results_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.check_results
    ADD CONSTRAINT check_results_pkey PRIMARY KEY (id, checked_at);


--
-- Name: checks checks_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.checks
    ADD CONSTRAINT checks_pkey PRIMARY KEY (id);


--
-- Name: config_change_events config_change_events_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.config_change_events
    ADD CONSTRAINT config_change_events_pkey PRIMARY KEY (id);


--
-- Name: device_backup_requests device_backup_requests_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_backup_requests
    ADD CONSTRAINT device_backup_requests_pkey PRIMARY KEY (id);


--
-- Name: device_firmware_history device_firmware_history_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_firmware_history
    ADD CONSTRAINT device_firmware_history_pkey PRIMARY KEY (id);


--
-- Name: device_link_evidence device_link_evidence_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_link_evidence
    ADD CONSTRAINT device_link_evidence_pkey PRIMARY KEY (id);


--
-- Name: device_links device_links_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_links
    ADD CONSTRAINT device_links_pkey PRIMARY KEY (id);


--
-- Name: device_mikrotik_backups device_mikrotik_backups_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_mikrotik_backups
    ADD CONSTRAINT device_mikrotik_backups_pkey PRIMARY KEY (id);


--
-- Name: device_neighbors device_neighbors_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_neighbors
    ADD CONSTRAINT device_neighbors_pkey PRIMARY KEY (id);


--
-- Name: device_profiles device_profiles_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_profiles
    ADD CONSTRAINT device_profiles_pkey PRIMARY KEY (id);


--
-- Name: device_subscriber_links device_subscriber_links_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_subscriber_links
    ADD CONSTRAINT device_subscriber_links_pkey PRIMARY KEY (id);


--
-- Name: devices devices_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.devices
    ADD CONSTRAINT devices_pkey PRIMARY KEY (id);


--
-- Name: device_events equipment_events_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_events
    ADD CONSTRAINT equipment_events_pkey PRIMARY KEY (id);


--
-- Name: error_tracker_errors error_tracker_errors_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.error_tracker_errors
    ADD CONSTRAINT error_tracker_errors_pkey PRIMARY KEY (id);


--
-- Name: error_tracker_meta error_tracker_meta_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.error_tracker_meta
    ADD CONSTRAINT error_tracker_meta_pkey PRIMARY KEY (key);


--
-- Name: error_tracker_occurrences error_tracker_occurrences_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.error_tracker_occurrences
    ADD CONSTRAINT error_tracker_occurrences_pkey PRIMARY KEY (id);


--
-- Name: firmware_releases firmware_releases_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.firmware_releases
    ADD CONSTRAINT firmware_releases_pkey PRIMARY KEY (id);


--
-- Name: gaiia_accounts gaiia_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.gaiia_accounts
    ADD CONSTRAINT gaiia_accounts_pkey PRIMARY KEY (id);


--
-- Name: gaiia_billing_subscriptions gaiia_billing_subscriptions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.gaiia_billing_subscriptions
    ADD CONSTRAINT gaiia_billing_subscriptions_pkey PRIMARY KEY (id);


--
-- Name: gaiia_inventory_items gaiia_inventory_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.gaiia_inventory_items
    ADD CONSTRAINT gaiia_inventory_items_pkey PRIMARY KEY (id);


--
-- Name: gaiia_network_sites gaiia_network_sites_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.gaiia_network_sites
    ADD CONSTRAINT gaiia_network_sites_pkey PRIMARY KEY (id);


--
-- Name: geoip_blocks geoip_blocks_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.geoip_blocks
    ADD CONSTRAINT geoip_blocks_pkey PRIMARY KEY (id);


--
-- Name: geoip_locations geoip_locations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.geoip_locations
    ADD CONSTRAINT geoip_locations_pkey PRIMARY KEY (geoname_id);


--
-- Name: integrations integrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.integrations
    ADD CONSTRAINT integrations_pkey PRIMARY KEY (id);


--
-- Name: ip_blocks ip_blocks_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.ip_blocks
    ADD CONSTRAINT ip_blocks_pkey PRIMARY KEY (id);


--
-- Name: ip_whitelist ip_whitelist_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.ip_whitelist
    ADD CONSTRAINT ip_whitelist_pkey PRIMARY KEY (id);


--
-- Name: login_attempts login_attempts_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.login_attempts
    ADD CONSTRAINT login_attempts_pkey PRIMARY KEY (id);


--
-- Name: maintenance_windows maintenance_windows_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.maintenance_windows
    ADD CONSTRAINT maintenance_windows_pkey PRIMARY KEY (id);


--
-- Name: mobile_sessions mobile_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.mobile_sessions
    ADD CONSTRAINT mobile_sessions_pkey PRIMARY KEY (id);


--
-- Name: monitoring_checks monitoring_checks_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.monitoring_checks
    ADD CONSTRAINT monitoring_checks_pkey PRIMARY KEY (id);


--
-- Name: oban_jobs non_negative_priority; Type: CHECK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE public.oban_jobs
    ADD CONSTRAINT non_negative_priority CHECK ((priority >= 0)) NOT VALID;


--
-- Name: oban_crons oban_crons_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.oban_crons
    ADD CONSTRAINT oban_crons_pkey PRIMARY KEY (name);


--
-- Name: oban_jobs oban_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.oban_jobs
    ADD CONSTRAINT oban_jobs_pkey PRIMARY KEY (id);


--
-- Name: oban_peers oban_peers_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.oban_peers
    ADD CONSTRAINT oban_peers_pkey PRIMARY KEY (name);


--
-- Name: oban_producers oban_producers_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.oban_producers
    ADD CONSTRAINT oban_producers_pkey PRIMARY KEY (uuid);


--
-- Name: oban_queues oban_queues_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.oban_queues
    ADD CONSTRAINT oban_queues_pkey PRIMARY KEY (name);


--
-- Name: organization_invitations organization_invitations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.organization_invitations
    ADD CONSTRAINT organization_invitations_pkey PRIMARY KEY (id);


--
-- Name: organization_memberships organization_memberships_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.organization_memberships
    ADD CONSTRAINT organization_memberships_pkey PRIMARY KEY (id);


--
-- Name: organizations organizations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.organizations
    ADD CONSTRAINT organizations_pkey PRIMARY KEY (id);


--
-- Name: policy_versions policy_versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.policy_versions
    ADD CONSTRAINT policy_versions_pkey PRIMARY KEY (id);


--
-- Name: preseem_access_points preseem_access_points_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_access_points
    ADD CONSTRAINT preseem_access_points_pkey PRIMARY KEY (id);


--
-- Name: preseem_device_baselines preseem_device_baselines_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_device_baselines
    ADD CONSTRAINT preseem_device_baselines_pkey PRIMARY KEY (id);


--
-- Name: preseem_fleet_profiles preseem_fleet_profiles_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_fleet_profiles
    ADD CONSTRAINT preseem_fleet_profiles_pkey PRIMARY KEY (id);


--
-- Name: preseem_insights preseem_insights_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_insights
    ADD CONSTRAINT preseem_insights_pkey PRIMARY KEY (id);


--
-- Name: preseem_subscriber_metrics preseem_subscriber_metrics_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_subscriber_metrics
    ADD CONSTRAINT preseem_subscriber_metrics_pkey PRIMARY KEY (id);


--
-- Name: preseem_sync_logs preseem_sync_logs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_sync_logs
    ADD CONSTRAINT preseem_sync_logs_pkey PRIMARY KEY (id);


--
-- Name: profile_device_oids profile_device_oids_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.profile_device_oids
    ADD CONSTRAINT profile_device_oids_pkey PRIMARY KEY (id);


--
-- Name: profile_sensor_oids profile_sensor_oids_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.profile_sensor_oids
    ADD CONSTRAINT profile_sensor_oids_pkey PRIMARY KEY (id);


--
-- Name: qr_login_tokens qr_login_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.qr_login_tokens
    ADD CONSTRAINT qr_login_tokens_pkey PRIMARY KEY (id);


--
-- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.schema_migrations
    ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);


--
-- Name: sites sites_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.sites
    ADD CONSTRAINT sites_pkey PRIMARY KEY (id);


--
-- Name: snmp_arp_entries snmp_arp_entries_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_arp_entries
    ADD CONSTRAINT snmp_arp_entries_pkey PRIMARY KEY (id);


--
-- Name: snmp_devices snmp_devices_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_devices
    ADD CONSTRAINT snmp_devices_pkey PRIMARY KEY (id);


--
-- Name: snmp_interface_stats snmp_interface_stats_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_interface_stats
    ADD CONSTRAINT snmp_interface_stats_pkey PRIMARY KEY (id);


--
-- Name: snmp_interfaces snmp_interfaces_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_interfaces
    ADD CONSTRAINT snmp_interfaces_pkey PRIMARY KEY (id);


--
-- Name: snmp_ip_addresses snmp_ip_addresses_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_ip_addresses
    ADD CONSTRAINT snmp_ip_addresses_pkey PRIMARY KEY (id);


--
-- Name: snmp_mac_addresses snmp_mac_addresses_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_mac_addresses
    ADD CONSTRAINT snmp_mac_addresses_pkey PRIMARY KEY (id);


--
-- Name: snmp_memory_pools snmp_memory_pools_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_memory_pools
    ADD CONSTRAINT snmp_memory_pools_pkey PRIMARY KEY (id);


--
-- Name: snmp_neighbors snmp_neighbors_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_neighbors
    ADD CONSTRAINT snmp_neighbors_pkey PRIMARY KEY (id);


--
-- Name: snmp_physical_entities snmp_physical_entities_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_physical_entities
    ADD CONSTRAINT snmp_physical_entities_pkey PRIMARY KEY (id);


--
-- Name: snmp_processor_readings snmp_processor_readings_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_processor_readings
    ADD CONSTRAINT snmp_processor_readings_pkey PRIMARY KEY (id);


--
-- Name: snmp_processors snmp_processors_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_processors
    ADD CONSTRAINT snmp_processors_pkey PRIMARY KEY (id);


--
-- Name: snmp_sensor_readings snmp_sensor_readings_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_sensor_readings
    ADD CONSTRAINT snmp_sensor_readings_pkey PRIMARY KEY (id);


--
-- Name: snmp_sensors snmp_sensors_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_sensors
    ADD CONSTRAINT snmp_sensors_pkey PRIMARY KEY (id);


--
-- Name: snmp_state_sensors snmp_state_sensors_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_state_sensors
    ADD CONSTRAINT snmp_state_sensors_pkey PRIMARY KEY (id);


--
-- Name: snmp_storage snmp_storage_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_storage
    ADD CONSTRAINT snmp_storage_pkey PRIMARY KEY (id);


--
-- Name: snmp_storage_readings snmp_storage_readings_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_storage_readings
    ADD CONSTRAINT snmp_storage_readings_pkey PRIMARY KEY (id);


--
-- Name: snmp_vlans snmp_vlans_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_vlans
    ADD CONSTRAINT snmp_vlans_pkey PRIMARY KEY (id);


--
-- Name: user_consents user_consents_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.user_consents
    ADD CONSTRAINT user_consents_pkey PRIMARY KEY (id);


--
-- Name: user_recovery_codes user_recovery_codes_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.user_recovery_codes
    ADD CONSTRAINT user_recovery_codes_pkey PRIMARY KEY (id);


--
-- Name: user_totp_devices user_totp_devices_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.user_totp_devices
    ADD CONSTRAINT user_totp_devices_pkey PRIMARY KEY (id);


--
-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.users
    ADD CONSTRAINT users_pkey PRIMARY KEY (id);


--
-- Name: users_tokens users_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.users_tokens
    ADD CONSTRAINT users_tokens_pkey PRIMARY KEY (id);


--
-- Name: weather_alerts weather_alerts_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.weather_alerts
    ADD CONSTRAINT weather_alerts_pkey PRIMARY KEY (id);


--
-- Name: weather_observations weather_observations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.weather_observations
    ADD CONSTRAINT weather_observations_pkey PRIMARY KEY (id);


--
-- Name: wireless_clients wireless_clients_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.wireless_clients
    ADD CONSTRAINT wireless_clients_pkey PRIMARY KEY (id);


--
-- Name: agent_assignments_agent_token_id_enabled_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX agent_assignments_agent_token_id_enabled_index ON public.agent_assignments USING btree (agent_token_id, enabled);


--
-- Name: agent_assignments_agent_token_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX agent_assignments_agent_token_id_index ON public.agent_assignments USING btree (agent_token_id);


--
-- Name: agent_assignments_device_id_enabled_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX agent_assignments_device_id_enabled_index ON public.agent_assignments USING btree (device_id, enabled);


--
-- Name: agent_assignments_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX agent_assignments_device_id_index ON public.agent_assignments USING btree (device_id);


--
-- Name: agent_assignments_enabled_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX agent_assignments_enabled_index ON public.agent_assignments USING btree (enabled);


--
-- Name: agent_tokens_allow_remote_debug_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX agent_tokens_allow_remote_debug_index ON public.agent_tokens USING btree (allow_remote_debug);


--
-- Name: agent_tokens_is_cloud_poller_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX agent_tokens_is_cloud_poller_index ON public.agent_tokens USING btree (is_cloud_poller);


--
-- Name: agent_tokens_last_seen_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX agent_tokens_last_seen_at_index ON public.agent_tokens USING btree (last_seen_at);


--
-- Name: agent_tokens_organization_id_enabled_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX agent_tokens_organization_id_enabled_index ON public.agent_tokens USING btree (organization_id, enabled);


--
-- Name: agent_tokens_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX agent_tokens_organization_id_index ON public.agent_tokens USING btree (organization_id);


--
-- Name: agent_tokens_organization_id_last_seen_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX agent_tokens_organization_id_last_seen_at_index ON public.agent_tokens USING btree (organization_id, last_seen_at);


--
-- Name: alerts_acknowledged_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX alerts_acknowledged_at_index ON public.alerts USING btree (acknowledged_at);


--
-- Name: alerts_active_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX alerts_active_idx ON public.alerts USING btree (resolved_at) WHERE (resolved_at IS NULL);


--
-- Name: alerts_alert_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX alerts_alert_type_index ON public.alerts USING btree (alert_type);


--
-- Name: alerts_check_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX alerts_check_id_index ON public.alerts USING btree (check_id);


--
-- Name: alerts_email_sent_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX alerts_email_sent_at_index ON public.alerts USING btree (email_sent_at);


--
-- Name: alerts_equipment_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX alerts_equipment_id_index ON public.alerts USING btree (device_id);


--
-- Name: alerts_notification_sent_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX alerts_notification_sent_index ON public.alerts USING btree (notification_sent);


--
-- Name: alerts_resolved_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX alerts_resolved_at_index ON public.alerts USING btree (resolved_at);


--
-- Name: alerts_severity_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX alerts_severity_index ON public.alerts USING btree (severity);


--
-- Name: alerts_triggered_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX alerts_triggered_at_index ON public.alerts USING btree (triggered_at);


--
-- Name: [REDACTED] Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX [REDACTED]ON public.api_tokens USING btree (organization_id);


--
-- Name: [REDACTED] Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX [REDACTED]ON public.api_tokens USING btree (token_hash);


--
-- Name: [REDACTED] Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX [REDACTED]ON public.api_tokens USING btree (user_id);


--
-- Name: application_settings_key_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX application_settings_key_index ON public.application_settings USING btree (key);


--
-- Name: audit_logs_action_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX audit_logs_action_index ON public.audit_logs USING btree (action);


--
-- Name: audit_logs_inserted_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX audit_logs_inserted_at_index ON public.audit_logs USING btree (inserted_at);


--
-- Name: audit_logs_request_path_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX audit_logs_request_path_index ON public.audit_logs USING btree (request_path);


--
-- Name: audit_logs_superuser_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX audit_logs_superuser_id_index ON public.audit_logs USING btree (superuser_id);


--
-- Name: audit_logs_target_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX audit_logs_target_user_id_index ON public.audit_logs USING btree (target_user_id);


--
-- Name: browser_sessions_anonymized_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX browser_sessions_anonymized_at_index ON public.browser_sessions USING btree (anonymized_at);


--
-- Name: browser_sessions_expires_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX browser_sessions_expires_at_index ON public.browser_sessions USING btree (expires_at);


--
-- Name: browser_sessions_last_activity_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX browser_sessions_last_activity_at_index ON public.browser_sessions USING btree (last_activity_at);


--
-- Name: browser_sessions_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX browser_sessions_user_id_index ON public.browser_sessions USING btree (user_id);


--
-- Name: browser_sessions_user_token_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX browser_sessions_user_token_id_index ON public.browser_sessions USING btree (user_token_id);


--
-- Name: check_results_check_id_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX check_results_check_id_checked_at_index ON public.check_results USING btree (check_id, checked_at);


--
-- Name: check_results_organization_id_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX check_results_organization_id_checked_at_index ON public.check_results USING btree (organization_id, checked_at);


--
-- Name: check_results_organization_id_status_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX check_results_organization_id_status_index ON public.check_results USING btree (organization_id, status);


--
-- Name: check_results_value_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX check_results_value_index ON public.check_results USING btree (value);


--
-- Name: checks_agent_token_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX checks_agent_token_id_index ON public.checks USING btree (agent_token_id);


--
-- Name: checks_check_key_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX checks_check_key_index ON public.checks USING btree (check_key) WHERE (check_key IS NOT NULL);


--
-- Name: checks_check_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX checks_check_type_index ON public.checks USING btree (check_type);


--
-- Name: checks_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX checks_device_id_index ON public.checks USING btree (device_id);


--
-- Name: checks_enabled_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX checks_enabled_index ON public.checks USING btree (enabled);


--
-- Name: checks_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX checks_organization_id_index ON public.checks USING btree (organization_id);


--
-- Name: checks_source_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX checks_source_id_index ON public.checks USING btree (source_id);


--
-- Name: checks_source_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX checks_source_type_index ON public.checks USING btree (source_type);


--
-- Name: checks_source_type_source_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX checks_source_type_source_id_index ON public.checks USING btree (source_type, source_id);


--
-- Name: config_change_events_changed_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX config_change_events_changed_at_index ON public.config_change_events USING btree (changed_at);


--
-- Name: config_change_events_device_id_changed_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX config_change_events_device_id_changed_at_index ON public.config_change_events USING btree (device_id, changed_at);


--
-- Name: config_change_events_organization_id_changed_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX config_change_events_organization_id_changed_at_index ON public.config_change_events USING btree (organization_id, changed_at);


--
-- Name: device_backup_requests_device_id_status_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_backup_requests_device_id_status_index ON public.device_backup_requests USING btree (device_id, status);


--
-- Name: device_backup_requests_job_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX device_backup_requests_job_id_index ON public.device_backup_requests USING btree (job_id);


--
-- Name: device_backup_requests_requested_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_backup_requests_requested_at_index ON public.device_backup_requests USING btree (requested_at);


--
-- Name: device_firmware_history_detected_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_firmware_history_detected_at_index ON public.device_firmware_history USING btree (detected_at);


--
-- Name: device_firmware_history_snmp_device_id_detected_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_firmware_history_snmp_device_id_detected_at_index ON public.device_firmware_history USING btree (snmp_device_id, detected_at);


--
-- Name: device_link_evidence_device_link_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_link_evidence_device_link_id_index ON public.device_link_evidence USING btree (device_link_id);


--
-- Name: device_link_evidence_observed_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_link_evidence_observed_at_index ON public.device_link_evidence USING btree (observed_at);


--
-- Name: device_links_source_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_links_source_device_id_index ON public.device_links USING btree (source_device_id);


--
-- Name: device_links_src_iface_remote_mac; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX device_links_src_iface_remote_mac ON public.device_links USING btree (source_device_id, source_interface_id, discovered_remote_mac);


--
-- Name: device_links_target_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_links_target_device_id_index ON public.device_links USING btree (target_device_id);


--
-- Name: device_mikrotik_backups_device_id_backed_up_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_mikrotik_backups_device_id_backed_up_at_index ON public.device_mikrotik_backups USING btree (device_id, backed_up_at);


--
-- Name: device_neighbors_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_neighbors_device_id_index ON public.device_neighbors USING btree (device_id);


--
-- Name: device_neighbors_last_seen_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_neighbors_last_seen_at_index ON public.device_neighbors USING btree (last_seen_at);


--
-- Name: device_neighbors_neighbor_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_neighbors_neighbor_device_id_index ON public.device_neighbors USING btree (neighbor_device_id);


--
-- Name: device_neighbors_unique_link; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX device_neighbors_unique_link ON public.device_neighbors USING btree (device_id, local_port, neighbor_name);


--
-- Name: device_profiles_enabled_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_profiles_enabled_index ON public.device_profiles USING btree (enabled);


--
-- Name: device_profiles_name_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX device_profiles_name_index ON public.device_profiles USING btree (name);


--
-- Name: device_profiles_priority_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_profiles_priority_index ON public.device_profiles USING btree (priority);


--
-- Name: device_subscriber_links_device_id_gaiia_account_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX device_subscriber_links_device_id_gaiia_account_id_index ON public.device_subscriber_links USING btree (device_id, gaiia_account_id);


--
-- Name: device_subscriber_links_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_subscriber_links_device_id_index ON public.device_subscriber_links USING btree (device_id);


--
-- Name: device_subscriber_links_gaiia_account_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_subscriber_links_gaiia_account_id_index ON public.device_subscriber_links USING btree (gaiia_account_id);


--
-- Name: device_subscriber_links_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX device_subscriber_links_organization_id_index ON public.device_subscriber_links USING btree (organization_id);


--
-- Name: devices_monitoring_enabled_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX devices_monitoring_enabled_index ON public.devices USING btree (monitoring_enabled);


--
-- Name: devices_organization_id_display_order_name_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX devices_organization_id_display_order_name_index ON public.devices USING btree (organization_id, display_order, name);


--
-- Name: devices_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX devices_organization_id_index ON public.devices USING btree (organization_id);


--
-- Name: devices_organization_id_status_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX devices_organization_id_status_idx ON public.devices USING btree (organization_id, status);


--
-- Name: devices_site_id_display_order_name_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX devices_site_id_display_order_name_index ON public.devices USING btree (site_id, display_order, name);


--
-- Name: devices_site_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX devices_site_id_index ON public.devices USING btree (site_id);


--
-- Name: devices_snmp_community_source_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX devices_snmp_community_source_index ON public.devices USING btree (snmp_community_source);


--
-- Name: equipment_events_equipment_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX equipment_events_equipment_id_index ON public.device_events USING btree (device_id);


--
-- Name: equipment_events_equipment_id_occurred_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX equipment_events_equipment_id_occurred_at_index ON public.device_events USING btree (device_id, occurred_at);


--
-- Name: equipment_events_event_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX equipment_events_event_type_index ON public.device_events USING btree (event_type);


--
-- Name: equipment_events_occurred_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX equipment_events_occurred_at_index ON public.device_events USING btree (occurred_at);


--
-- Name: equipment_last_snmp_poll_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX equipment_last_snmp_poll_at_index ON public.devices USING btree (last_snmp_poll_at);


--
-- Name: equipment_status_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX equipment_status_index ON public.devices USING btree (status);


--
-- Name: error_tracker_errors_fingerprint_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX error_tracker_errors_fingerprint_index ON public.error_tracker_errors USING btree (fingerprint);


--
-- Name: error_tracker_errors_last_occurrence_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX error_tracker_errors_last_occurrence_at_index ON public.error_tracker_errors USING btree (last_occurrence_at);


--
-- Name: error_tracker_occurrences_error_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX error_tracker_occurrences_error_id_index ON public.error_tracker_occurrences USING btree (error_id);


--
-- Name: firmware_releases_vendor_product_line_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX firmware_releases_vendor_product_line_index ON public.firmware_releases USING btree (vendor, product_line);


--
-- Name: gaiia_accounts_organization_id_gaiia_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX gaiia_accounts_organization_id_gaiia_id_index ON public.gaiia_accounts USING btree (organization_id, gaiia_id);


--
-- Name: gaiia_accounts_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX gaiia_accounts_organization_id_index ON public.gaiia_accounts USING btree (organization_id);


--
-- Name: gaiia_billing_subscriptions_account_gaiia_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX gaiia_billing_subscriptions_account_gaiia_id_index ON public.gaiia_billing_subscriptions USING btree (account_gaiia_id);


--
-- Name: gaiia_billing_subscriptions_organization_id_gaiia_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX gaiia_billing_subscriptions_organization_id_gaiia_id_index ON public.gaiia_billing_subscriptions USING btree (organization_id, gaiia_id);


--
-- Name: gaiia_billing_subscriptions_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX gaiia_billing_subscriptions_organization_id_index ON public.gaiia_billing_subscriptions USING btree (organization_id);


--
-- Name: gaiia_inventory_items_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX gaiia_inventory_items_device_id_index ON public.gaiia_inventory_items USING btree (device_id);


--
-- Name: gaiia_inventory_items_organization_id_gaiia_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX gaiia_inventory_items_organization_id_gaiia_id_index ON public.gaiia_inventory_items USING btree (organization_id, gaiia_id);


--
-- Name: gaiia_inventory_items_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX gaiia_inventory_items_organization_id_index ON public.gaiia_inventory_items USING btree (organization_id);


--
-- Name: gaiia_network_sites_organization_id_gaiia_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX gaiia_network_sites_organization_id_gaiia_id_index ON public.gaiia_network_sites USING btree (organization_id, gaiia_id);


--
-- Name: gaiia_network_sites_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX gaiia_network_sites_organization_id_index ON public.gaiia_network_sites USING btree (organization_id);


--
-- Name: gaiia_network_sites_site_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX gaiia_network_sites_site_id_index ON public.gaiia_network_sites USING btree (site_id);


--
-- Name: geoip_blocks_geoname_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX geoip_blocks_geoname_id_index ON public.geoip_blocks USING btree (geoname_id);


--
-- Name: geoip_blocks_network_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX geoip_blocks_network_index ON public.geoip_blocks USING btree (network);


--
-- Name: geoip_blocks_start_ip_int_end_ip_int_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX geoip_blocks_start_ip_int_end_ip_int_index ON public.geoip_blocks USING btree (start_ip_int, end_ip_int);


--
-- Name: idx_alerts_device_type_unresolved; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX idx_alerts_device_type_unresolved ON public.alerts USING btree (device_id, alert_type, resolved_at) WHERE (resolved_at IS NULL);


--
-- Name: idx_alerts_org_triggered; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX idx_alerts_org_triggered ON public.alerts USING btree (organization_id, triggered_at);


--
-- Name: idx_alerts_org_type_unresolved; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX idx_alerts_org_type_unresolved ON public.alerts USING btree (organization_id, alert_type, resolved_at) WHERE (resolved_at IS NULL);


--
-- Name: idx_devices_snmp_monitoring_site; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX idx_devices_snmp_monitoring_site ON public.devices USING btree (snmp_enabled, monitoring_enabled, site_id) WHERE ((snmp_enabled = true) AND (monitoring_enabled = true));


--
-- Name: idx_devices_snmp_poll; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX idx_devices_snmp_poll ON public.devices USING btree (snmp_enabled, last_snmp_poll_at) WHERE (snmp_enabled = true);


--
-- Name: integrations_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX integrations_organization_id_index ON public.integrations USING btree (organization_id);


--
-- Name: integrations_organization_id_provider_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX integrations_organization_id_provider_index ON public.integrations USING btree (organization_id, provider);


--
-- Name: ip_blocks_banned_until_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX ip_blocks_banned_until_index ON public.ip_blocks USING btree (banned_until);


--
-- Name: ip_blocks_ip_address_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX ip_blocks_ip_address_index ON public.ip_blocks USING btree (ip_address);


--
-- Name: ip_blocks_last_violation_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX ip_blocks_last_violation_at_index ON public.ip_blocks USING btree (last_violation_at);


--
-- Name: ip_whitelist_added_by_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX ip_whitelist_added_by_id_index ON public.ip_whitelist USING btree (added_by_id);


--
-- Name: ip_whitelist_ip_or_cidr_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX ip_whitelist_ip_or_cidr_index ON public.ip_whitelist USING btree (ip_or_cidr);


--
-- Name: login_attempts_anonymized_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX login_attempts_anonymized_at_index ON public.login_attempts USING btree (anonymized_at);


--
-- Name: login_attempts_email_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX login_attempts_email_index ON public.login_attempts USING btree (email);


--
-- Name: login_attempts_inserted_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX login_attempts_inserted_at_index ON public.login_attempts USING btree (inserted_at);


--
-- Name: login_attempts_ip_address_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX login_attempts_ip_address_index ON public.login_attempts USING btree (ip_address);


--
-- Name: login_attempts_success_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX login_attempts_success_index ON public.login_attempts USING btree (success);


--
-- Name: login_attempts_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX login_attempts_user_id_index ON public.login_attempts USING btree (user_id);


--
-- Name: login_attempts_user_id_inserted_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX login_attempts_user_id_inserted_at_index ON public.login_attempts USING btree (user_id, inserted_at);


--
-- Name: maintenance_windows_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX maintenance_windows_device_id_index ON public.maintenance_windows USING btree (device_id);


--
-- Name: maintenance_windows_ends_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX maintenance_windows_ends_at_index ON public.maintenance_windows USING btree (ends_at);


--
-- Name: maintenance_windows_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX maintenance_windows_organization_id_index ON public.maintenance_windows USING btree (organization_id);


--
-- Name: maintenance_windows_site_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX maintenance_windows_site_id_index ON public.maintenance_windows USING btree (site_id);


--
-- Name: maintenance_windows_starts_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX maintenance_windows_starts_at_index ON public.maintenance_windows USING btree (starts_at);


--
-- Name: mobile_sessions_expires_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX mobile_sessions_expires_at_index ON public.mobile_sessions USING btree (expires_at);


--
-- Name: mobile_sessions_token_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX mobile_sessions_token_index ON public.mobile_sessions USING btree (token);


--
-- Name: mobile_sessions_user_id_alerts_enabled_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX mobile_sessions_user_id_alerts_enabled_index ON public.mobile_sessions USING btree (user_id, alerts_enabled);


--
-- Name: mobile_sessions_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX mobile_sessions_user_id_index ON public.mobile_sessions USING btree (user_id);


--
-- Name: monitoring_checks_agent_token_id_device_id_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX monitoring_checks_agent_token_id_device_id_checked_at_index ON public.monitoring_checks USING btree (agent_token_id, device_id, checked_at);


--
-- Name: monitoring_checks_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX monitoring_checks_checked_at_index ON public.monitoring_checks USING btree (checked_at);


--
-- Name: monitoring_checks_device_id_agent_token_id_status_checked_at_in; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX monitoring_checks_device_id_agent_token_id_status_checked_at_in ON public.monitoring_checks USING btree (device_id, agent_token_id, status, checked_at);


--
-- Name: monitoring_checks_equipment_id_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX monitoring_checks_equipment_id_checked_at_index ON public.monitoring_checks USING btree (device_id, checked_at);


--
-- Name: monitoring_checks_equipment_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX monitoring_checks_equipment_id_index ON public.monitoring_checks USING btree (device_id);


--
-- Name: oban_jobs_args_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX oban_jobs_args_index ON public.oban_jobs USING gin (args);


--
-- Name: oban_jobs_batch_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX oban_jobs_batch_index ON public.oban_jobs USING btree (state, ((meta ->> 'batch_id'::text)), ((meta ->> 'callback'::text))) WHERE (meta ? 'batch_id'::text);


--
-- Name: oban_jobs_chain_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX oban_jobs_chain_index ON public.oban_jobs USING btree (state, ((meta ->> 'chain_id'::text)), ((meta ->> 'on_hold'::text))) WHERE (meta ? 'chain_id'::text);


--
-- Name: oban_jobs_meta_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX oban_jobs_meta_index ON public.oban_jobs USING gin (meta);


--
-- Name: oban_jobs_partition_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX oban_jobs_partition_index ON public.oban_jobs USING btree (partition_key, queue, priority, scheduled_at, id) WHERE ((state = 'available'::public.oban_job_state) AND (partition_key IS NOT NULL));


--
-- Name: oban_jobs_state_queue_priority_scheduled_at_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX oban_jobs_state_queue_priority_scheduled_at_id_index ON public.oban_jobs USING btree (state, queue, priority, scheduled_at, id);


--
-- Name: oban_jobs_sup_workflow_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX oban_jobs_sup_workflow_index ON public.oban_jobs USING btree (((meta ->> 'sup_workflow_id'::text)), state, ((meta ->> 'on_hold'::text))) WHERE (meta ? 'sup_workflow_id'::text);


--
-- Name: oban_jobs_unique_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX oban_jobs_unique_index ON public.oban_jobs USING btree (uniq_key) WHERE (uniq_key IS NOT NULL);


--
-- Name: oban_jobs_workflow_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX oban_jobs_workflow_index ON public.oban_jobs USING btree (((meta ->> 'workflow_id'::text)), state, ((meta ->> 'on_hold'::text)), ((meta ->> 'name'::text))) WHERE (meta ? 'workflow_id'::text);


--
-- Name: organization_invitations_email_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX organization_invitations_email_index ON public.organization_invitations USING btree (email);


--
-- Name: organization_invitations_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX organization_invitations_organization_id_index ON public.organization_invitations USING btree (organization_id);


--
-- Name: organization_invitations_token_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX organization_invitations_token_index ON public.organization_invitations USING btree (token);


--
-- Name: organization_memberships_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX organization_memberships_organization_id_index ON public.organization_memberships USING btree (organization_id);


--
-- Name: organization_memberships_organization_id_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX organization_memberships_organization_id_user_id_index ON public.organization_memberships USING btree (organization_id, user_id);


--
-- Name: organization_memberships_user_id_default_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX organization_memberships_user_id_default_index ON public.organization_memberships USING btree (user_id, is_default) WHERE (is_default = true);


--
-- Name: organization_memberships_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX organization_memberships_user_id_index ON public.organization_memberships USING btree (user_id);


--
-- Name: organizations_default_agent_token_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX organizations_default_agent_token_id_index ON public.organizations USING btree (default_agent_token_id);


--
-- Name: organizations_slug_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX organizations_slug_index ON public.organizations USING btree (slug);


--
-- Name: organizations_subscription_plan_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX organizations_subscription_plan_index ON public.organizations USING btree (subscription_plan);


--
-- Name: policy_versions_effective_date_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX policy_versions_effective_date_index ON public.policy_versions USING btree (effective_date);


--
-- Name: policy_versions_policy_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX policy_versions_policy_type_index ON public.policy_versions USING btree (policy_type);


--
-- Name: policy_versions_policy_type_version_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX policy_versions_policy_type_version_index ON public.policy_versions USING btree (policy_type, version);


--
-- Name: preseem_access_points_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_access_points_device_id_index ON public.preseem_access_points USING btree (device_id);


--
-- Name: preseem_access_points_match_confidence_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_access_points_match_confidence_index ON public.preseem_access_points USING btree (match_confidence);


--
-- Name: preseem_access_points_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_access_points_organization_id_index ON public.preseem_access_points USING btree (organization_id);


--
-- Name: preseem_access_points_organization_id_preseem_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX preseem_access_points_organization_id_preseem_id_index ON public.preseem_access_points USING btree (organization_id, preseem_id);


--
-- Name: preseem_device_baselines_ap_metric_period_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX preseem_device_baselines_ap_metric_period_idx ON public.preseem_device_baselines USING btree (preseem_access_point_id, metric_name, period);


--
-- Name: preseem_device_baselines_preseem_access_point_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_device_baselines_preseem_access_point_id_index ON public.preseem_device_baselines USING btree (preseem_access_point_id);


--
-- Name: preseem_fleet_profiles_org_model_fw_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX preseem_fleet_profiles_org_model_fw_idx ON public.preseem_fleet_profiles USING btree (organization_id, manufacturer, model, firmware_version);


--
-- Name: preseem_fleet_profiles_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_fleet_profiles_organization_id_index ON public.preseem_fleet_profiles USING btree (organization_id);


--
-- Name: preseem_insights_agent_token_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_insights_agent_token_id_index ON public.preseem_insights USING btree (agent_token_id);


--
-- Name: preseem_insights_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_insights_device_id_index ON public.preseem_insights USING btree (device_id);


--
-- Name: preseem_insights_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_insights_organization_id_index ON public.preseem_insights USING btree (organization_id);


--
-- Name: preseem_insights_organization_id_source_status_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_insights_organization_id_source_status_index ON public.preseem_insights USING btree (organization_id, source, status);


--
-- Name: preseem_insights_organization_id_status_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_insights_organization_id_status_index ON public.preseem_insights USING btree (organization_id, status);


--
-- Name: preseem_insights_preseem_access_point_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_insights_preseem_access_point_id_index ON public.preseem_insights USING btree (preseem_access_point_id);


--
-- Name: preseem_insights_site_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_insights_site_id_index ON public.preseem_insights USING btree (site_id);


--
-- Name: preseem_subscriber_metrics_preseem_access_point_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_subscriber_metrics_preseem_access_point_id_index ON public.preseem_subscriber_metrics USING btree (preseem_access_point_id);


--
-- Name: preseem_subscriber_metrics_recorded_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_subscriber_metrics_recorded_at_index ON public.preseem_subscriber_metrics USING btree (recorded_at);


--
-- Name: preseem_sync_logs_inserted_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_sync_logs_inserted_at_index ON public.preseem_sync_logs USING btree (inserted_at);


--
-- Name: preseem_sync_logs_integration_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_sync_logs_integration_id_index ON public.preseem_sync_logs USING btree (integration_id);


--
-- Name: preseem_sync_logs_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX preseem_sync_logs_organization_id_index ON public.preseem_sync_logs USING btree (organization_id);


--
-- Name: profile_device_oids_profile_id_field_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX profile_device_oids_profile_id_field_index ON public.profile_device_oids USING btree (profile_id, field);


--
-- Name: profile_device_oids_profile_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX profile_device_oids_profile_id_index ON public.profile_device_oids USING btree (profile_id);


--
-- Name: profile_sensor_oids_profile_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX profile_sensor_oids_profile_id_index ON public.profile_sensor_oids USING btree (profile_id);


--
-- Name: profile_sensor_oids_sensor_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX profile_sensor_oids_sensor_type_index ON public.profile_sensor_oids USING btree (sensor_type);


--
-- Name: qr_login_tokens_expires_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX qr_login_tokens_expires_at_index ON public.qr_login_tokens USING btree (expires_at);


--
-- Name: qr_login_tokens_token_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX qr_login_tokens_token_index ON public.qr_login_tokens USING btree (token);


--
-- Name: qr_login_tokens_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX qr_login_tokens_user_id_index ON public.qr_login_tokens USING btree (user_id);


--
-- Name: sites_agent_token_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX sites_agent_token_id_index ON public.sites USING btree (agent_token_id);


--
-- Name: sites_organization_id_display_order_name_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX sites_organization_id_display_order_name_index ON public.sites USING btree (organization_id, display_order, name);


--
-- Name: sites_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX sites_organization_id_index ON public.sites USING btree (organization_id);


--
-- Name: sites_organization_id_latitude_longitude_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX sites_organization_id_latitude_longitude_index ON public.sites USING btree (organization_id, latitude, longitude);


--
-- Name: sites_organization_id_name_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX sites_organization_id_name_index ON public.sites USING btree (organization_id, name);


--
-- Name: sites_parent_site_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX sites_parent_site_id_index ON public.sites USING btree (parent_site_id);


--
-- Name: snmp_arp_entries_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_arp_entries_device_id_index ON public.snmp_arp_entries USING btree (device_id);


--
-- Name: snmp_arp_entries_device_id_ip_address_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_arp_entries_device_id_ip_address_index ON public.snmp_arp_entries USING btree (device_id, ip_address);


--
-- Name: snmp_arp_entries_device_id_ip_address_mac_address_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_arp_entries_device_id_ip_address_mac_address_index ON public.snmp_arp_entries USING btree (device_id, ip_address, mac_address);


--
-- Name: snmp_arp_entries_mac_address_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_arp_entries_mac_address_index ON public.snmp_arp_entries USING btree (mac_address);


--
-- Name: snmp_devices_equipment_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_devices_equipment_id_index ON public.snmp_devices USING btree (device_id);


--
-- Name: snmp_interface_stats_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_interface_stats_checked_at_index ON public.snmp_interface_stats USING btree (checked_at);


--
-- Name: snmp_interface_stats_interface_id_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_interface_stats_interface_id_checked_at_index ON public.snmp_interface_stats USING btree (interface_id, checked_at);


--
-- Name: snmp_interface_stats_interface_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_interface_stats_interface_id_index ON public.snmp_interface_stats USING btree (interface_id);


--
-- Name: snmp_interfaces_monitored_true_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_interfaces_monitored_true_idx ON public.snmp_interfaces USING btree (monitored) WHERE (monitored = true);


--
-- Name: snmp_interfaces_snmp_device_id_if_index_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_interfaces_snmp_device_id_if_index_index ON public.snmp_interfaces USING btree (snmp_device_id, if_index);


--
-- Name: snmp_interfaces_snmp_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_interfaces_snmp_device_id_index ON public.snmp_interfaces USING btree (snmp_device_id);


--
-- Name: snmp_ip_addresses_ip_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_ip_addresses_ip_type_index ON public.snmp_ip_addresses USING btree (ip_type);


--
-- Name: snmp_ip_addresses_is_primary_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_ip_addresses_is_primary_index ON public.snmp_ip_addresses USING btree (is_primary);


--
-- Name: snmp_ip_addresses_snmp_interface_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_ip_addresses_snmp_interface_id_index ON public.snmp_ip_addresses USING btree (snmp_interface_id);


--
-- Name: snmp_ip_addresses_snmp_interface_id_ip_address_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_ip_addresses_snmp_interface_id_ip_address_index ON public.snmp_ip_addresses USING btree (snmp_interface_id, ip_address);


--
-- Name: snmp_mac_addresses_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_mac_addresses_device_id_index ON public.snmp_mac_addresses USING btree (device_id);


--
-- Name: snmp_mac_addresses_device_id_mac_address_vlan_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_mac_addresses_device_id_mac_address_vlan_id_index ON public.snmp_mac_addresses USING btree (device_id, mac_address, vlan_id) NULLS NOT DISTINCT;


--
-- Name: snmp_mac_addresses_interface_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_mac_addresses_interface_id_index ON public.snmp_mac_addresses USING btree (interface_id);


--
-- Name: snmp_mac_addresses_mac_address_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_mac_addresses_mac_address_index ON public.snmp_mac_addresses USING btree (mac_address);


--
-- Name: snmp_memory_pools_pool_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_memory_pools_pool_type_index ON public.snmp_memory_pools USING btree (pool_type);


--
-- Name: snmp_memory_pools_snmp_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_memory_pools_snmp_device_id_index ON public.snmp_memory_pools USING btree (snmp_device_id);


--
-- Name: snmp_memory_pools_snmp_device_id_pool_index_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_memory_pools_snmp_device_id_pool_index_index ON public.snmp_memory_pools USING btree (snmp_device_id, pool_index);


--
-- Name: snmp_neighbors_equipment_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_neighbors_equipment_id_index ON public.snmp_neighbors USING btree (device_id);


--
-- Name: snmp_neighbors_interface_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_neighbors_interface_id_index ON public.snmp_neighbors USING btree (interface_id);


--
-- Name: snmp_neighbors_interface_id_remote_chassis_id_protocol_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_neighbors_interface_id_remote_chassis_id_protocol_index ON public.snmp_neighbors USING btree (interface_id, remote_chassis_id, protocol) NULLS NOT DISTINCT;


--
-- Name: snmp_neighbors_last_discovered_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_neighbors_last_discovered_at_index ON public.snmp_neighbors USING btree (last_discovered_at);


--
-- Name: snmp_neighbors_protocol_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_neighbors_protocol_index ON public.snmp_neighbors USING btree (protocol);


--
-- Name: snmp_physical_entities_entity_class_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_physical_entities_entity_class_index ON public.snmp_physical_entities USING btree (entity_class);


--
-- Name: snmp_physical_entities_parent_entity_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_physical_entities_parent_entity_id_index ON public.snmp_physical_entities USING btree (parent_entity_id);


--
-- Name: snmp_physical_entities_serial_number_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_physical_entities_serial_number_index ON public.snmp_physical_entities USING btree (serial_number);


--
-- Name: snmp_physical_entities_snmp_device_id_entity_index_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_physical_entities_snmp_device_id_entity_index_index ON public.snmp_physical_entities USING btree (snmp_device_id, entity_index);


--
-- Name: snmp_physical_entities_snmp_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_physical_entities_snmp_device_id_index ON public.snmp_physical_entities USING btree (snmp_device_id);


--
-- Name: snmp_processor_readings_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_processor_readings_checked_at_index ON public.snmp_processor_readings USING btree (checked_at);


--
-- Name: snmp_processor_readings_processor_id_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_processor_readings_processor_id_checked_at_index ON public.snmp_processor_readings USING btree (processor_id, checked_at);


--
-- Name: snmp_processor_readings_processor_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_processor_readings_processor_id_index ON public.snmp_processor_readings USING btree (processor_id);


--
-- Name: snmp_processors_snmp_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_processors_snmp_device_id_index ON public.snmp_processors USING btree (snmp_device_id);


--
-- Name: snmp_processors_snmp_device_id_processor_index_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_processors_snmp_device_id_processor_index_index ON public.snmp_processors USING btree (snmp_device_id, processor_index);


--
-- Name: snmp_sensor_readings_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_sensor_readings_checked_at_index ON public.snmp_sensor_readings USING btree (checked_at);


--
-- Name: snmp_sensor_readings_sensor_id_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_sensor_readings_sensor_id_checked_at_index ON public.snmp_sensor_readings USING btree (sensor_id, checked_at);


--
-- Name: snmp_sensor_readings_sensor_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_sensor_readings_sensor_id_index ON public.snmp_sensor_readings USING btree (sensor_id);


--
-- Name: snmp_sensor_readings_status_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_sensor_readings_status_index ON public.snmp_sensor_readings USING btree (status);


--
-- Name: snmp_sensors_monitored_true_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_sensors_monitored_true_idx ON public.snmp_sensors USING btree (monitored) WHERE (monitored = true);


--
-- Name: snmp_sensors_sensor_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_sensors_sensor_type_index ON public.snmp_sensors USING btree (sensor_type);


--
-- Name: snmp_sensors_snmp_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_sensors_snmp_device_id_index ON public.snmp_sensors USING btree (snmp_device_id);


--
-- Name: snmp_sensors_snmp_device_id_sensor_index_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_sensors_snmp_device_id_sensor_index_index ON public.snmp_sensors USING btree (snmp_device_id, sensor_index);


--
-- Name: snmp_state_sensors_entity_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_state_sensors_entity_type_index ON public.snmp_state_sensors USING btree (entity_type);


--
-- Name: snmp_state_sensors_snmp_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_state_sensors_snmp_device_id_index ON public.snmp_state_sensors USING btree (snmp_device_id);


--
-- Name: snmp_state_sensors_snmp_device_id_sensor_index_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_state_sensors_snmp_device_id_sensor_index_index ON public.snmp_state_sensors USING btree (snmp_device_id, sensor_index);


--
-- Name: snmp_state_sensors_status_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_state_sensors_status_index ON public.snmp_state_sensors USING btree (status);


--
-- Name: snmp_storage_readings_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_storage_readings_checked_at_index ON public.snmp_storage_readings USING btree (checked_at);


--
-- Name: snmp_storage_readings_storage_id_checked_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_storage_readings_storage_id_checked_at_index ON public.snmp_storage_readings USING btree (storage_id, checked_at);


--
-- Name: snmp_storage_readings_storage_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_storage_readings_storage_id_index ON public.snmp_storage_readings USING btree (storage_id);


--
-- Name: snmp_storage_snmp_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_storage_snmp_device_id_index ON public.snmp_storage USING btree (snmp_device_id);


--
-- Name: snmp_storage_snmp_device_id_storage_index_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_storage_snmp_device_id_storage_index_index ON public.snmp_storage USING btree (snmp_device_id, storage_index);


--
-- Name: snmp_storage_storage_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_storage_storage_type_index ON public.snmp_storage USING btree (storage_type);


--
-- Name: snmp_vlans_snmp_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_vlans_snmp_device_id_index ON public.snmp_vlans USING btree (snmp_device_id);


--
-- Name: snmp_vlans_snmp_device_id_vlan_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX snmp_vlans_snmp_device_id_vlan_id_index ON public.snmp_vlans USING btree (snmp_device_id, vlan_id);


--
-- Name: snmp_vlans_status_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX snmp_vlans_status_index ON public.snmp_vlans USING btree (status);


--
-- Name: user_consents_consent_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX user_consents_consent_type_index ON public.user_consents USING btree (consent_type);


--
-- Name: user_consents_user_id_consent_type_version_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX user_consents_user_id_consent_type_version_index ON public.user_consents USING btree (user_id, consent_type, version);


--
-- Name: user_consents_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX user_consents_user_id_index ON public.user_consents USING btree (user_id);


--
-- Name: user_recovery_codes_code_hash_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX user_recovery_codes_code_hash_index ON public.user_recovery_codes USING btree (code_hash);


--
-- Name: user_recovery_codes_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX user_recovery_codes_user_id_index ON public.user_recovery_codes USING btree (user_id);


--
-- Name: user_recovery_codes_user_id_used_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX user_recovery_codes_user_id_used_at_index ON public.user_recovery_codes USING btree (user_id, used_at);


--
-- Name: user_totp_devices_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX user_totp_devices_user_id_index ON public.user_totp_devices USING btree (user_id);


--
-- Name: user_totp_devices_user_id_last_used_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX user_totp_devices_user_id_last_used_at_index ON public.user_totp_devices USING btree (user_id, last_used_at);


--
-- Name: users_default_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX users_default_organization_id_index ON public.users USING btree (default_organization_id);


--
-- Name: users_email_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX users_email_index ON public.users USING btree (email);


--
-- Name: users_is_superuser_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX users_is_superuser_index ON public.users USING btree (is_superuser);


--
-- Name: users_tokens_context_token_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX users_tokens_context_token_index ON public.users_tokens USING btree (context, token);


--
-- Name: users_tokens_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX users_tokens_user_id_index ON public.users_tokens USING btree (user_id);


--
-- Name: weather_alerts_site_id_ends_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX weather_alerts_site_id_ends_at_index ON public.weather_alerts USING btree (site_id, ends_at);


--
-- Name: weather_alerts_site_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX weather_alerts_site_id_index ON public.weather_alerts USING btree (site_id);


--
-- Name: weather_observations_observed_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX weather_observations_observed_at_index ON public.weather_observations USING btree (observed_at);


--
-- Name: weather_observations_site_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX weather_observations_site_id_index ON public.weather_observations USING btree (site_id);


--
-- Name: weather_observations_site_id_observed_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX weather_observations_site_id_observed_at_index ON public.weather_observations USING btree (site_id, observed_at);


--
-- Name: wireless_clients_device_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX wireless_clients_device_id_index ON public.wireless_clients USING btree (device_id);


--
-- Name: wireless_clients_device_id_mac_address_index; Type: INDEX; Schema: public; Owner: -
--

CREATE UNIQUE INDEX wireless_clients_device_id_mac_address_index ON public.wireless_clients USING btree (device_id, mac_address);


--
-- Name: wireless_clients_mac_address_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX wireless_clients_mac_address_index ON public.wireless_clients USING btree (mac_address);


--
-- Name: wireless_clients_organization_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX wireless_clients_organization_id_index ON public.wireless_clients USING btree (organization_id);


--
-- Name: agent_assignments agent_assignments_agent_token_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.agent_assignments
    ADD CONSTRAINT agent_assignments_agent_token_id_fkey FOREIGN KEY (agent_token_id) REFERENCES public.agent_tokens(id) ON DELETE RESTRICT;


--
-- Name: agent_assignments agent_assignments_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.agent_assignments
    ADD CONSTRAINT agent_assignments_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: agent_tokens agent_tokens_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.agent_tokens
    ADD CONSTRAINT agent_tokens_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE RESTRICT;


--
-- Name: alerts alerts_acknowledged_by_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.alerts
    ADD CONSTRAINT alerts_acknowledged_by_id_fkey FOREIGN KEY (acknowledged_by_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: alerts alerts_check_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.alerts
    ADD CONSTRAINT alerts_check_id_fkey FOREIGN KEY (check_id) REFERENCES public.checks(id) ON DELETE CASCADE;


--
-- Name: alerts alerts_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.alerts
    ADD CONSTRAINT alerts_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: alerts alerts_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.alerts
    ADD CONSTRAINT alerts_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: api_tokens [REDACTED] Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.api_tokens
    ADD CONSTRAINT [REDACTED]FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: api_tokens [REDACTED] Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.api_tokens
    ADD CONSTRAINT [REDACTED]FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: audit_logs audit_logs_superuser_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.audit_logs
    ADD CONSTRAINT audit_logs_superuser_id_fkey FOREIGN KEY (superuser_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: audit_logs audit_logs_target_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.audit_logs
    ADD CONSTRAINT audit_logs_target_user_id_fkey FOREIGN KEY (target_user_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: browser_sessions browser_sessions_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.browser_sessions
    ADD CONSTRAINT browser_sessions_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: browser_sessions browser_sessions_user_token_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.browser_sessions
    ADD CONSTRAINT browser_sessions_user_token_id_fkey FOREIGN KEY (user_token_id) REFERENCES public.users_tokens(id) ON DELETE CASCADE;


--
-- Name: check_results check_results_agent_token_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.check_results
    ADD CONSTRAINT check_results_agent_token_id_fkey FOREIGN KEY (agent_token_id) REFERENCES public.agent_tokens(id) ON DELETE SET NULL;


--
-- Name: check_results check_results_check_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.check_results
    ADD CONSTRAINT check_results_check_id_fkey FOREIGN KEY (check_id) REFERENCES public.checks(id) ON DELETE CASCADE;


--
-- Name: check_results check_results_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.check_results
    ADD CONSTRAINT check_results_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: checks checks_agent_token_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.checks
    ADD CONSTRAINT checks_agent_token_id_fkey FOREIGN KEY (agent_token_id) REFERENCES public.agent_tokens(id) ON DELETE SET NULL;


--
-- Name: checks checks_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.checks
    ADD CONSTRAINT checks_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: checks checks_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.checks
    ADD CONSTRAINT checks_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: config_change_events config_change_events_backup_after_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.config_change_events
    ADD CONSTRAINT config_change_events_backup_after_id_fkey FOREIGN KEY (backup_after_id) REFERENCES public.device_mikrotik_backups(id) ON DELETE SET NULL;


--
-- Name: config_change_events config_change_events_backup_before_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.config_change_events
    ADD CONSTRAINT config_change_events_backup_before_id_fkey FOREIGN KEY (backup_before_id) REFERENCES public.device_mikrotik_backups(id) ON DELETE SET NULL;


--
-- Name: config_change_events config_change_events_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.config_change_events
    ADD CONSTRAINT config_change_events_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: config_change_events config_change_events_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.config_change_events
    ADD CONSTRAINT config_change_events_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: device_backup_requests device_backup_requests_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_backup_requests
    ADD CONSTRAINT device_backup_requests_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: device_events device_events_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_events
    ADD CONSTRAINT device_events_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: device_firmware_history device_firmware_history_snmp_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_firmware_history
    ADD CONSTRAINT device_firmware_history_snmp_device_id_fkey FOREIGN KEY (snmp_device_id) REFERENCES public.snmp_devices(id) ON DELETE CASCADE;


--
-- Name: device_link_evidence device_link_evidence_device_link_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_link_evidence
    ADD CONSTRAINT device_link_evidence_device_link_id_fkey FOREIGN KEY (device_link_id) REFERENCES public.device_links(id) ON DELETE CASCADE;


--
-- Name: device_links device_links_source_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_links
    ADD CONSTRAINT device_links_source_device_id_fkey FOREIGN KEY (source_device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: device_links device_links_source_interface_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_links
    ADD CONSTRAINT device_links_source_interface_id_fkey FOREIGN KEY (source_interface_id) REFERENCES public.snmp_interfaces(id) ON DELETE SET NULL;


--
-- Name: device_links device_links_target_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_links
    ADD CONSTRAINT device_links_target_device_id_fkey FOREIGN KEY (target_device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: device_links device_links_target_interface_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_links
    ADD CONSTRAINT device_links_target_interface_id_fkey FOREIGN KEY (target_interface_id) REFERENCES public.snmp_interfaces(id) ON DELETE SET NULL;


--
-- Name: device_mikrotik_backups device_mikrotik_backups_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_mikrotik_backups
    ADD CONSTRAINT device_mikrotik_backups_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: device_neighbors device_neighbors_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_neighbors
    ADD CONSTRAINT device_neighbors_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: device_neighbors device_neighbors_neighbor_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_neighbors
    ADD CONSTRAINT device_neighbors_neighbor_device_id_fkey FOREIGN KEY (neighbor_device_id) REFERENCES public.devices(id) ON DELETE SET NULL;


--
-- Name: device_subscriber_links device_subscriber_links_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_subscriber_links
    ADD CONSTRAINT device_subscriber_links_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: device_subscriber_links device_subscriber_links_gaiia_account_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_subscriber_links
    ADD CONSTRAINT device_subscriber_links_gaiia_account_id_fkey FOREIGN KEY (gaiia_account_id) REFERENCES public.gaiia_accounts(id) ON DELETE CASCADE;


--
-- Name: device_subscriber_links device_subscriber_links_gaiia_inventory_item_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_subscriber_links
    ADD CONSTRAINT device_subscriber_links_gaiia_inventory_item_id_fkey FOREIGN KEY (gaiia_inventory_item_id) REFERENCES public.gaiia_inventory_items(id) ON DELETE SET NULL;


--
-- Name: device_subscriber_links device_subscriber_links_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.device_subscriber_links
    ADD CONSTRAINT device_subscriber_links_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: devices devices_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.devices
    ADD CONSTRAINT devices_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: devices equipment_site_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.devices
    ADD CONSTRAINT equipment_site_id_fkey FOREIGN KEY (site_id) REFERENCES public.sites(id) ON DELETE CASCADE;


--
-- Name: error_tracker_occurrences error_tracker_occurrences_error_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.error_tracker_occurrences
    ADD CONSTRAINT error_tracker_occurrences_error_id_fkey FOREIGN KEY (error_id) REFERENCES public.error_tracker_errors(id) ON DELETE CASCADE;


--
-- Name: gaiia_accounts gaiia_accounts_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.gaiia_accounts
    ADD CONSTRAINT gaiia_accounts_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: gaiia_billing_subscriptions gaiia_billing_subscriptions_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.gaiia_billing_subscriptions
    ADD CONSTRAINT gaiia_billing_subscriptions_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: gaiia_inventory_items gaiia_inventory_items_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.gaiia_inventory_items
    ADD CONSTRAINT gaiia_inventory_items_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE SET NULL;


--
-- Name: gaiia_inventory_items gaiia_inventory_items_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.gaiia_inventory_items
    ADD CONSTRAINT gaiia_inventory_items_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: gaiia_network_sites gaiia_network_sites_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.gaiia_network_sites
    ADD CONSTRAINT gaiia_network_sites_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: gaiia_network_sites gaiia_network_sites_site_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.gaiia_network_sites
    ADD CONSTRAINT gaiia_network_sites_site_id_fkey FOREIGN KEY (site_id) REFERENCES public.sites(id) ON DELETE SET NULL;


--
-- Name: geoip_blocks geoip_blocks_geoname_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.geoip_blocks
    ADD CONSTRAINT geoip_blocks_geoname_id_fkey FOREIGN KEY (geoname_id) REFERENCES public.geoip_locations(geoname_id);


--
-- Name: integrations integrations_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.integrations
    ADD CONSTRAINT integrations_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: ip_whitelist ip_whitelist_added_by_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.ip_whitelist
    ADD CONSTRAINT ip_whitelist_added_by_id_fkey FOREIGN KEY (added_by_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: login_attempts login_attempts_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.login_attempts
    ADD CONSTRAINT login_attempts_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: maintenance_windows maintenance_windows_created_by_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.maintenance_windows
    ADD CONSTRAINT maintenance_windows_created_by_id_fkey FOREIGN KEY (created_by_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: maintenance_windows maintenance_windows_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.maintenance_windows
    ADD CONSTRAINT maintenance_windows_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: maintenance_windows maintenance_windows_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.maintenance_windows
    ADD CONSTRAINT maintenance_windows_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: maintenance_windows maintenance_windows_site_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.maintenance_windows
    ADD CONSTRAINT maintenance_windows_site_id_fkey FOREIGN KEY (site_id) REFERENCES public.sites(id) ON DELETE CASCADE;


--
-- Name: mobile_sessions mobile_sessions_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.mobile_sessions
    ADD CONSTRAINT mobile_sessions_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: monitoring_checks monitoring_checks_agent_token_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.monitoring_checks
    ADD CONSTRAINT monitoring_checks_agent_token_id_fkey FOREIGN KEY (agent_token_id) REFERENCES public.agent_tokens(id) ON DELETE SET NULL;


--
-- Name: monitoring_checks monitoring_checks_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.monitoring_checks
    ADD CONSTRAINT monitoring_checks_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: organization_invitations organization_invitations_accepted_by_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.organization_invitations
    ADD CONSTRAINT organization_invitations_accepted_by_id_fkey FOREIGN KEY (accepted_by_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: organization_invitations organization_invitations_invited_by_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.organization_invitations
    ADD CONSTRAINT organization_invitations_invited_by_id_fkey FOREIGN KEY (invited_by_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: organization_invitations organization_invitations_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.organization_invitations
    ADD CONSTRAINT organization_invitations_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: organization_memberships organization_memberships_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.organization_memberships
    ADD CONSTRAINT organization_memberships_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: organization_memberships organization_memberships_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.organization_memberships
    ADD CONSTRAINT organization_memberships_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: organizations organizations_default_agent_token_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.organizations
    ADD CONSTRAINT organizations_default_agent_token_id_fkey FOREIGN KEY (default_agent_token_id) REFERENCES public.agent_tokens(id) ON DELETE SET NULL;


--
-- Name: preseem_access_points preseem_access_points_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_access_points
    ADD CONSTRAINT preseem_access_points_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE SET NULL;


--
-- Name: preseem_access_points preseem_access_points_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_access_points
    ADD CONSTRAINT preseem_access_points_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: preseem_device_baselines preseem_device_baselines_preseem_access_point_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_device_baselines
    ADD CONSTRAINT preseem_device_baselines_preseem_access_point_id_fkey FOREIGN KEY (preseem_access_point_id) REFERENCES public.preseem_access_points(id) ON DELETE CASCADE;


--
-- Name: preseem_fleet_profiles preseem_fleet_profiles_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_fleet_profiles
    ADD CONSTRAINT preseem_fleet_profiles_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: preseem_insights preseem_insights_agent_token_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_insights
    ADD CONSTRAINT preseem_insights_agent_token_id_fkey FOREIGN KEY (agent_token_id) REFERENCES public.agent_tokens(id) ON DELETE SET NULL;


--
-- Name: preseem_insights preseem_insights_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_insights
    ADD CONSTRAINT preseem_insights_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE SET NULL;


--
-- Name: preseem_insights preseem_insights_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_insights
    ADD CONSTRAINT preseem_insights_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: preseem_insights preseem_insights_preseem_access_point_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_insights
    ADD CONSTRAINT preseem_insights_preseem_access_point_id_fkey FOREIGN KEY (preseem_access_point_id) REFERENCES public.preseem_access_points(id) ON DELETE CASCADE;


--
-- Name: preseem_insights preseem_insights_site_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_insights
    ADD CONSTRAINT preseem_insights_site_id_fkey FOREIGN KEY (site_id) REFERENCES public.sites(id) ON DELETE SET NULL;


--
-- Name: preseem_subscriber_metrics preseem_subscriber_metrics_preseem_access_point_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_subscriber_metrics
    ADD CONSTRAINT preseem_subscriber_metrics_preseem_access_point_id_fkey FOREIGN KEY (preseem_access_point_id) REFERENCES public.preseem_access_points(id) ON DELETE CASCADE;


--
-- Name: preseem_sync_logs preseem_sync_logs_integration_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_sync_logs
    ADD CONSTRAINT preseem_sync_logs_integration_id_fkey FOREIGN KEY (integration_id) REFERENCES public.integrations(id) ON DELETE CASCADE;


--
-- Name: preseem_sync_logs preseem_sync_logs_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.preseem_sync_logs
    ADD CONSTRAINT preseem_sync_logs_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: profile_device_oids profile_device_oids_profile_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.profile_device_oids
    ADD CONSTRAINT profile_device_oids_profile_id_fkey FOREIGN KEY (profile_id) REFERENCES public.device_profiles(id) ON DELETE CASCADE;


--
-- Name: profile_sensor_oids profile_sensor_oids_profile_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.profile_sensor_oids
    ADD CONSTRAINT profile_sensor_oids_profile_id_fkey FOREIGN KEY (profile_id) REFERENCES public.device_profiles(id) ON DELETE CASCADE;


--
-- Name: qr_login_tokens qr_login_tokens_mobile_session_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.qr_login_tokens
    ADD CONSTRAINT qr_login_tokens_mobile_session_id_fkey FOREIGN KEY (mobile_session_id) REFERENCES public.mobile_sessions(id) ON DELETE SET NULL;


--
-- Name: qr_login_tokens qr_login_tokens_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.qr_login_tokens
    ADD CONSTRAINT qr_login_tokens_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: sites sites_agent_token_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.sites
    ADD CONSTRAINT sites_agent_token_id_fkey FOREIGN KEY (agent_token_id) REFERENCES public.agent_tokens(id) ON DELETE SET NULL;


--
-- Name: sites sites_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.sites
    ADD CONSTRAINT sites_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- Name: sites sites_parent_site_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.sites
    ADD CONSTRAINT sites_parent_site_id_fkey FOREIGN KEY (parent_site_id) REFERENCES public.sites(id) ON DELETE CASCADE;


--
-- Name: snmp_arp_entries snmp_arp_entries_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_arp_entries
    ADD CONSTRAINT snmp_arp_entries_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: snmp_arp_entries snmp_arp_entries_interface_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_arp_entries
    ADD CONSTRAINT snmp_arp_entries_interface_id_fkey FOREIGN KEY (interface_id) REFERENCES public.snmp_interfaces(id) ON DELETE CASCADE;


--
-- Name: snmp_devices snmp_devices_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_devices
    ADD CONSTRAINT snmp_devices_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: snmp_interface_stats snmp_interface_stats_interface_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_interface_stats
    ADD CONSTRAINT snmp_interface_stats_interface_id_fkey FOREIGN KEY (interface_id) REFERENCES public.snmp_interfaces(id) ON DELETE CASCADE;


--
-- Name: snmp_interfaces snmp_interfaces_snmp_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_interfaces
    ADD CONSTRAINT snmp_interfaces_snmp_device_id_fkey FOREIGN KEY (snmp_device_id) REFERENCES public.snmp_devices(id) ON DELETE CASCADE;


--
-- Name: snmp_ip_addresses snmp_ip_addresses_snmp_interface_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_ip_addresses
    ADD CONSTRAINT snmp_ip_addresses_snmp_interface_id_fkey FOREIGN KEY (snmp_interface_id) REFERENCES public.snmp_interfaces(id) ON DELETE CASCADE;


--
-- Name: snmp_mac_addresses snmp_mac_addresses_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_mac_addresses
    ADD CONSTRAINT snmp_mac_addresses_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: snmp_mac_addresses snmp_mac_addresses_interface_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_mac_addresses
    ADD CONSTRAINT snmp_mac_addresses_interface_id_fkey FOREIGN KEY (interface_id) REFERENCES public.snmp_interfaces(id) ON DELETE CASCADE;


--
-- Name: snmp_memory_pools snmp_memory_pools_snmp_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_memory_pools
    ADD CONSTRAINT snmp_memory_pools_snmp_device_id_fkey FOREIGN KEY (snmp_device_id) REFERENCES public.snmp_devices(id) ON DELETE CASCADE;


--
-- Name: snmp_neighbors snmp_neighbors_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_neighbors
    ADD CONSTRAINT snmp_neighbors_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: snmp_neighbors snmp_neighbors_interface_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_neighbors
    ADD CONSTRAINT snmp_neighbors_interface_id_fkey FOREIGN KEY (interface_id) REFERENCES public.snmp_interfaces(id) ON DELETE CASCADE;


--
-- Name: snmp_physical_entities snmp_physical_entities_parent_entity_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_physical_entities
    ADD CONSTRAINT snmp_physical_entities_parent_entity_id_fkey FOREIGN KEY (parent_entity_id) REFERENCES public.snmp_physical_entities(id) ON DELETE SET NULL;


--
-- Name: snmp_physical_entities snmp_physical_entities_snmp_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_physical_entities
    ADD CONSTRAINT snmp_physical_entities_snmp_device_id_fkey FOREIGN KEY (snmp_device_id) REFERENCES public.snmp_devices(id) ON DELETE CASCADE;


--
-- Name: snmp_processor_readings snmp_processor_readings_processor_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_processor_readings
    ADD CONSTRAINT snmp_processor_readings_processor_id_fkey FOREIGN KEY (processor_id) REFERENCES public.snmp_processors(id) ON DELETE CASCADE;


--
-- Name: snmp_processors snmp_processors_snmp_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_processors
    ADD CONSTRAINT snmp_processors_snmp_device_id_fkey FOREIGN KEY (snmp_device_id) REFERENCES public.snmp_devices(id) ON DELETE CASCADE;


--
-- Name: snmp_sensor_readings snmp_sensor_readings_sensor_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_sensor_readings
    ADD CONSTRAINT snmp_sensor_readings_sensor_id_fkey FOREIGN KEY (sensor_id) REFERENCES public.snmp_sensors(id) ON DELETE CASCADE;


--
-- Name: snmp_sensors snmp_sensors_snmp_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_sensors
    ADD CONSTRAINT snmp_sensors_snmp_device_id_fkey FOREIGN KEY (snmp_device_id) REFERENCES public.snmp_devices(id) ON DELETE CASCADE;


--
-- Name: snmp_state_sensors snmp_state_sensors_snmp_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_state_sensors
    ADD CONSTRAINT snmp_state_sensors_snmp_device_id_fkey FOREIGN KEY (snmp_device_id) REFERENCES public.snmp_devices(id) ON DELETE CASCADE;


--
-- Name: snmp_storage_readings snmp_storage_readings_storage_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_storage_readings
    ADD CONSTRAINT snmp_storage_readings_storage_id_fkey FOREIGN KEY (storage_id) REFERENCES public.snmp_storage(id) ON DELETE CASCADE;


--
-- Name: snmp_storage snmp_storage_snmp_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_storage
    ADD CONSTRAINT snmp_storage_snmp_device_id_fkey FOREIGN KEY (snmp_device_id) REFERENCES public.snmp_devices(id) ON DELETE CASCADE;


--
-- Name: snmp_vlans snmp_vlans_snmp_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.snmp_vlans
    ADD CONSTRAINT snmp_vlans_snmp_device_id_fkey FOREIGN KEY (snmp_device_id) REFERENCES public.snmp_devices(id) ON DELETE CASCADE;


--
-- Name: user_consents user_consents_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.user_consents
    ADD CONSTRAINT user_consents_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: user_recovery_codes user_recovery_codes_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.user_recovery_codes
    ADD CONSTRAINT user_recovery_codes_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: user_totp_devices user_totp_devices_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.user_totp_devices
    ADD CONSTRAINT user_totp_devices_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: users users_default_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.users
    ADD CONSTRAINT users_default_organization_id_fkey FOREIGN KEY (default_organization_id) REFERENCES public.organizations(id) ON DELETE SET NULL;


--
-- Name: users_tokens users_tokens_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.users_tokens
    ADD CONSTRAINT users_tokens_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: weather_alerts weather_alerts_site_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.weather_alerts
    ADD CONSTRAINT weather_alerts_site_id_fkey FOREIGN KEY (site_id) REFERENCES public.sites(id) ON DELETE CASCADE;


--
-- Name: weather_observations weather_observations_site_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.weather_observations
    ADD CONSTRAINT weather_observations_site_id_fkey FOREIGN KEY (site_id) REFERENCES public.sites(id) ON DELETE CASCADE;


--
-- Name: wireless_clients wireless_clients_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.wireless_clients
    ADD CONSTRAINT wireless_clients_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.devices(id) ON DELETE CASCADE;


--
-- Name: wireless_clients wireless_clients_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.wireless_clients
    ADD CONSTRAINT wireless_clients_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;


--
-- PostgreSQL database dump complete
--

\unrestrict r3N6TGQGFjg82OQMzKEaIDkXV6NW6WJUq2RgUxqvirlVBMgNcH04JLB0uwke4FU

--
-- Data for Name: application_settings; Type: TABLE DATA; Schema: public; Owner: -
--

INSERT INTO public.application_settings (id, key, value, value_type, description, inserted_at, updated_at) VALUES ('00000000-0000-0000-0000-000000000001', 'global_default_cloud_poller_id', NULL, 'uuid', 'Default cloud poller agent used as fallback when no organization-level agent is configured', NOW(), NOW());

INSERT INTO public."schema_migrations" (version) VALUES (20251221192340);
INSERT INTO public."schema_migrations" (version) VALUES (20251221192454);
INSERT INTO public."schema_migrations" (version) VALUES (20251221192505);
INSERT INTO public."schema_migrations" (version) VALUES (20251221192513);
INSERT INTO public."schema_migrations" (version) VALUES (20251221193428);
INSERT INTO public."schema_migrations" (version) VALUES (20251221193436);
INSERT INTO public."schema_migrations" (version) VALUES (20251221225717);
INSERT INTO public."schema_migrations" (version) VALUES (20251221231801);
INSERT INTO public."schema_migrations" (version) VALUES (20251224201530);
INSERT INTO public."schema_migrations" (version) VALUES (20251224202206);
INSERT INTO public."schema_migrations" (version) VALUES (20260103191834);
INSERT INTO public."schema_migrations" (version) VALUES (20260103191852);
INSERT INTO public."schema_migrations" (version) VALUES (20260103191853);
INSERT INTO public."schema_migrations" (version) VALUES (20260103191854);
INSERT INTO public."schema_migrations" (version) VALUES (20260103191858);
INSERT INTO public."schema_migrations" (version) VALUES (20260103191859);
INSERT INTO public."schema_migrations" (version) VALUES (20260103192153);
INSERT INTO public."schema_migrations" (version) VALUES (20260103192154);
INSERT INTO public."schema_migrations" (version) VALUES (20260104175728);
INSERT INTO public."schema_migrations" (version) VALUES (20260104190824);
INSERT INTO public."schema_migrations" (version) VALUES (20260104192555);
INSERT INTO public."schema_migrations" (version) VALUES (20260105134321);
INSERT INTO public."schema_migrations" (version) VALUES (20260105134404);
INSERT INTO public."schema_migrations" (version) VALUES (20260105142046);
INSERT INTO public."schema_migrations" (version) VALUES (20260105163301);
INSERT INTO public."schema_migrations" (version) VALUES (20260106184002);
INSERT INTO public."schema_migrations" (version) VALUES (20260106184003);
INSERT INTO public."schema_migrations" (version) VALUES (20260106184151);
INSERT INTO public."schema_migrations" (version) VALUES (20260109184838);
INSERT INTO public."schema_migrations" (version) VALUES (20260109184905);
INSERT INTO public."schema_migrations" (version) VALUES (20260109190858);
INSERT INTO public."schema_migrations" (version) VALUES (20260113192744);
INSERT INTO public."schema_migrations" (version) VALUES (20260114142010);
INSERT INTO public."schema_migrations" (version) VALUES (20260115010646);
INSERT INTO public."schema_migrations" (version) VALUES (20260115011502);
INSERT INTO public."schema_migrations" (version) VALUES (20260115194425);
INSERT INTO public."schema_migrations" (version) VALUES (20260115212928);
INSERT INTO public."schema_migrations" (version) VALUES (20260116185112);
INSERT INTO public."schema_migrations" (version) VALUES (20260116195231);
INSERT INTO public."schema_migrations" (version) VALUES (20260117174218);
INSERT INTO public."schema_migrations" (version) VALUES (20260117190134);
INSERT INTO public."schema_migrations" (version) VALUES (20260117222456);
INSERT INTO public."schema_migrations" (version) VALUES (20260117224818);
INSERT INTO public."schema_migrations" (version) VALUES (20260117231451);
INSERT INTO public."schema_migrations" (version) VALUES (20260118000250);
INSERT INTO public."schema_migrations" (version) VALUES (20260118002432);
INSERT INTO public."schema_migrations" (version) VALUES (20260118152752);
INSERT INTO public."schema_migrations" (version) VALUES (20260118162909);
INSERT INTO public."schema_migrations" (version) VALUES (20260118174155);
INSERT INTO public."schema_migrations" (version) VALUES (20260118174612);
INSERT INTO public."schema_migrations" (version) VALUES (20260118185149);
INSERT INTO public."schema_migrations" (version) VALUES (20260118193856);
INSERT INTO public."schema_migrations" (version) VALUES (20260118220947);
INSERT INTO public."schema_migrations" (version) VALUES (20260118223410);
INSERT INTO public."schema_migrations" (version) VALUES (20260118223700);
INSERT INTO public."schema_migrations" (version) VALUES (20260119162749);
INSERT INTO public."schema_migrations" (version) VALUES (20260119163701);
INSERT INTO public."schema_migrations" (version) VALUES (20260121161424);
INSERT INTO public."schema_migrations" (version) VALUES (20260121162517);
INSERT INTO public."schema_migrations" (version) VALUES (20260121163134);
INSERT INTO public."schema_migrations" (version) VALUES (20260121163706);
INSERT INTO public."schema_migrations" (version) VALUES (20260121164728);
INSERT INTO public."schema_migrations" (version) VALUES (20260121164729);
INSERT INTO public."schema_migrations" (version) VALUES (20260122191230);
INSERT INTO public."schema_migrations" (version) VALUES (20260122214253);
INSERT INTO public."schema_migrations" (version) VALUES (20260122223758);
INSERT INTO public."schema_migrations" (version) VALUES (20260122234739);
INSERT INTO public."schema_migrations" (version) VALUES (20260123142110);
INSERT INTO public."schema_migrations" (version) VALUES (20260123150047);
INSERT INTO public."schema_migrations" (version) VALUES (20260123234053);
INSERT INTO public."schema_migrations" (version) VALUES (20260124003501);
INSERT INTO public."schema_migrations" (version) VALUES (20260124003545);
INSERT INTO public."schema_migrations" (version) VALUES (20260124220530);
INSERT INTO public."schema_migrations" (version) VALUES (20260125180847);
INSERT INTO public."schema_migrations" (version) VALUES (20260125182836);
INSERT INTO public."schema_migrations" (version) VALUES (20260125183652);
INSERT INTO public."schema_migrations" (version) VALUES (20260125214415);
INSERT INTO public."schema_migrations" (version) VALUES (20260125214531);
INSERT INTO public."schema_migrations" (version) VALUES (20260126155907);
INSERT INTO public."schema_migrations" (version) VALUES (20260126155937);
INSERT INTO public."schema_migrations" (version) VALUES (20260126201725);
INSERT INTO public."schema_migrations" (version) VALUES (20260126201941);
INSERT INTO public."schema_migrations" (version) VALUES (20260126225422);
INSERT INTO public."schema_migrations" (version) VALUES (20260126225620);
INSERT INTO public."schema_migrations" (version) VALUES (20260127131415);
INSERT INTO public."schema_migrations" (version) VALUES (20260127194059);
INSERT INTO public."schema_migrations" (version) VALUES (20260128151151);
INSERT INTO public."schema_migrations" (version) VALUES (20260128171916);
INSERT INTO public."schema_migrations" (version) VALUES (20260128185500);
INSERT INTO public."schema_migrations" (version) VALUES (20260128193436);
INSERT INTO public."schema_migrations" (version) VALUES (20260128205714);
INSERT INTO public."schema_migrations" (version) VALUES (20260129164956);
INSERT INTO public."schema_migrations" (version) VALUES (20260129170433);
INSERT INTO public."schema_migrations" (version) VALUES (20260129194732);
INSERT INTO public."schema_migrations" (version) VALUES (20260129194802);
INSERT INTO public."schema_migrations" (version) VALUES (20260130232533);
INSERT INTO public."schema_migrations" (version) VALUES (20260131151011);
INSERT INTO public."schema_migrations" (version) VALUES (20260131154549);
INSERT INTO public."schema_migrations" (version) VALUES (20260131181404);
INSERT INTO public."schema_migrations" (version) VALUES (20260131195010);
INSERT INTO public."schema_migrations" (version) VALUES (20260131195046);
INSERT INTO public."schema_migrations" (version) VALUES (20260131220933);
INSERT INTO public."schema_migrations" (version) VALUES (20260201155525);
INSERT INTO public."schema_migrations" (version) VALUES (20260201155526);
INSERT INTO public."schema_migrations" (version) VALUES (20260201195548);
INSERT INTO public."schema_migrations" (version) VALUES (20260201204935);
INSERT INTO public."schema_migrations" (version) VALUES (20260201211908);
INSERT INTO public."schema_migrations" (version) VALUES (20260201211918);
INSERT INTO public."schema_migrations" (version) VALUES (20260201211919);
INSERT INTO public."schema_migrations" (version) VALUES (20260202000112);
INSERT INTO public."schema_migrations" (version) VALUES (20260202000113);
INSERT INTO public."schema_migrations" (version) VALUES (20260202144931);
INSERT INTO public."schema_migrations" (version) VALUES (20260202164115);
INSERT INTO public."schema_migrations" (version) VALUES (20260202215155);
INSERT INTO public."schema_migrations" (version) VALUES (20260202221637);
INSERT INTO public."schema_migrations" (version) VALUES (20260202225627);
INSERT INTO public."schema_migrations" (version) VALUES (20260202230847);
INSERT INTO public."schema_migrations" (version) VALUES (20260203144612);
INSERT INTO public."schema_migrations" (version) VALUES (20260203184229);
INSERT INTO public."schema_migrations" (version) VALUES (20260203214942);
INSERT INTO public."schema_migrations" (version) VALUES (20260203215025);
INSERT INTO public."schema_migrations" (version) VALUES (20260203215100);
INSERT INTO public."schema_migrations" (version) VALUES (20260204182005);
INSERT INTO public."schema_migrations" (version) VALUES (20260204182038);
INSERT INTO public."schema_migrations" (version) VALUES (20260204182109);
INSERT INTO public."schema_migrations" (version) VALUES (20260204183342);
INSERT INTO public."schema_migrations" (version) VALUES (20260204193548);
INSERT INTO public."schema_migrations" (version) VALUES (20260204220500);
INSERT INTO public."schema_migrations" (version) VALUES (20260204230342);
INSERT INTO public."schema_migrations" (version) VALUES (20260208221636);
INSERT INTO public."schema_migrations" (version) VALUES (20260209152641);
INSERT INTO public."schema_migrations" (version) VALUES (20260210214543);
INSERT INTO public."schema_migrations" (version) VALUES (20260210214544);
INSERT INTO public."schema_migrations" (version) VALUES (20260212155105);
INSERT INTO public."schema_migrations" (version) VALUES (20260212184424);
INSERT INTO public."schema_migrations" (version) VALUES (20260212184428);
INSERT INTO public."schema_migrations" (version) VALUES (20260212184432);
INSERT INTO public."schema_migrations" (version) VALUES (20260212185422);
INSERT INTO public."schema_migrations" (version) VALUES (20260212185433);
INSERT INTO public."schema_migrations" (version) VALUES (20260212185506);
INSERT INTO public."schema_migrations" (version) VALUES (20260212213808);
INSERT INTO public."schema_migrations" (version) VALUES (20260212213840);
INSERT INTO public."schema_migrations" (version) VALUES (20260212225249);
INSERT INTO public."schema_migrations" (version) VALUES (20260212231026);
INSERT INTO public."schema_migrations" (version) VALUES (20260212231052);
INSERT INTO public."schema_migrations" (version) VALUES (20260212231109);
INSERT INTO public."schema_migrations" (version) VALUES (20260213001542);
INSERT INTO public."schema_migrations" (version) VALUES (20260213001547);
INSERT INTO public."schema_migrations" (version) VALUES (20260213144412);
INSERT INTO public."schema_migrations" (version) VALUES (20260213160011);
INSERT INTO public."schema_migrations" (version) VALUES (20260213170408);
INSERT INTO public."schema_migrations" (version) VALUES (20260213201303);
INSERT INTO public."schema_migrations" (version) VALUES (20260213235031);
INSERT INTO public."schema_migrations" (version) VALUES (20260214185554);
INSERT INTO public."schema_migrations" (version) VALUES (20260214200600);
INSERT INTO public."schema_migrations" (version) VALUES (20260214204400);
INSERT INTO public."schema_migrations" (version) VALUES (20260214204700);
INSERT INTO public."schema_migrations" (version) VALUES (20260215222949);
INSERT INTO public."schema_migrations" (version) VALUES (20260215233513);
INSERT INTO public."schema_migrations" (version) VALUES (20260216155500);
INSERT INTO public."schema_migrations" (version) VALUES (20260216155538);
INSERT INTO public."schema_migrations" (version) VALUES (20260216160000);
INSERT INTO public."schema_migrations" (version) VALUES (20260216170000);
INSERT INTO public."schema_migrations" (version) VALUES (20260216180000);
INSERT INTO public."schema_migrations" (version) VALUES (20260217140215);
INSERT INTO public."schema_migrations" (version) VALUES (20260304234205);
INSERT INTO public."schema_migrations" (version) VALUES (20260305144327);
INSERT INTO public."schema_migrations" (version) VALUES (20260305151535);
INSERT INTO public."schema_migrations" (version) VALUES (20260305152524);
INSERT INTO public."schema_migrations" (version) VALUES (20260305152930);
INSERT INTO public."schema_migrations" (version) VALUES (20260305164021);
INSERT INTO public."schema_migrations" (version) VALUES (20260305184122);
