UNPKG

@adventurelabs/scout-core

Version:

Core utilities and helpers for Adventure Labs Scout applications

1,443 lines (1,442 loc) 61.8 kB
import { ReactNode } from "react"; import { SupabaseClient } from "@supabase/supabase-js"; import { Database } from "../types/supabase"; interface ConnectionStatus { isConnected: boolean; isConnecting: boolean; lastError: string | null; retryCount: number; reconnect: () => void; } export declare function useSupabase(): SupabaseClient<Database, "public", "public", { Tables: { actions: { Row: { id: number; inserted_at: string; opcode: number; trigger: string[]; zone_id: number; }; Insert: { id?: number; inserted_at?: string; opcode: number; trigger: string[]; zone_id: number; }; Update: { id?: number; inserted_at?: string; opcode?: number; trigger?: string[]; zone_id?: number; }; Relationships: [{ foreignKeyName: "actions_zone_id_fkey"; columns: ["zone_id"]; isOneToOne: false; referencedRelation: "zones"; referencedColumns: ["id"]; }, { foreignKeyName: "actions_zone_id_fkey"; columns: ["zone_id"]; isOneToOne: false; referencedRelation: "zones_and_actions"; referencedColumns: ["id"]; }]; }; artifacts: { Row: { created_at: string; device_id: number; file_path: string; id: number; modality: string | null; session_id: number | null; timestamp_observation: string | null; timestamp_observation_end: string; updated_at: string | null; }; Insert: { created_at?: string; device_id: number; file_path: string; id?: number; modality?: string | null; session_id?: number | null; timestamp_observation?: string | null; timestamp_observation_end?: string; updated_at?: string | null; }; Update: { created_at?: string; device_id?: number; file_path?: string; id?: number; modality?: string | null; session_id?: number | null; timestamp_observation?: string | null; timestamp_observation_end?: string; updated_at?: string | null; }; Relationships: [{ foreignKeyName: "artifacts_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }, { foreignKeyName: "artifacts_session_id_fkey"; columns: ["session_id"]; isOneToOne: false; referencedRelation: "sessions"; referencedColumns: ["id"]; }]; }; certificates: { Row: { created_at: string; expiration: string | null; id: number; issuer: string; tracking_number: string | null; type: string; updated_at: string | null; }; Insert: { created_at?: string; expiration?: string | null; id?: number; issuer: string; tracking_number?: string | null; type: string; updated_at?: string | null; }; Update: { created_at?: string; expiration?: string | null; id?: number; issuer?: string; tracking_number?: string | null; type?: string; updated_at?: string | null; }; Relationships: []; }; chat: { Row: { created_at: string; herd_id: number; id: number; message: string; sender: string | null; }; Insert: { created_at?: string; herd_id: number; id?: number; message: string; sender?: string | null; }; Update: { created_at?: string; herd_id?: number; id?: number; message?: string; sender?: string | null; }; Relationships: [{ foreignKeyName: "chat_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }, { foreignKeyName: "chat_sender_fkey"; columns: ["sender"]; isOneToOne: false; referencedRelation: "users"; referencedColumns: ["id"]; }]; }; connectivity: { Row: { altitude: number; associated_station: string | null; bandwidth_hz: number | null; battery_percentage: number | null; device_id: number | null; frequency_hz: number | null; h11_index: string; h12_index: string; h13_index: string; h14_index: string; heading: number; id: number; inserted_at: string; location: unknown; mode: string | null; noise: number; session_id: number | null; signal: number; timestamp_start: string; }; Insert: { altitude: number; associated_station?: string | null; bandwidth_hz?: number | null; battery_percentage?: number | null; device_id?: number | null; frequency_hz?: number | null; h11_index: string; h12_index: string; h13_index: string; h14_index: string; heading: number; id?: number; inserted_at?: string; location: unknown; mode?: string | null; noise: number; session_id?: number | null; signal: number; timestamp_start: string; }; Update: { altitude?: number; associated_station?: string | null; bandwidth_hz?: number | null; battery_percentage?: number | null; device_id?: number | null; frequency_hz?: number | null; h11_index?: string; h12_index?: string; h13_index?: string; h14_index?: string; heading?: number; id?: number; inserted_at?: string; location?: unknown; mode?: string | null; noise?: number; session_id?: number | null; signal?: number; timestamp_start?: string; }; Relationships: [{ foreignKeyName: "connectivity_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }, { foreignKeyName: "connectivity_session_id_fkey"; columns: ["session_id"]; isOneToOne: false; referencedRelation: "sessions"; referencedColumns: ["id"]; }]; }; devices: { Row: { altitude: number | null; created_by: string; description: string; device_type: Database["public"]["Enums"]["device_type"]; domain_name: string | null; heading: number | null; herd_id: number; id: number; inserted_at: string; location: unknown; name: string; video_publisher_token: string | null; video_subscriber_token: string | null; }; Insert: { altitude?: number | null; created_by: string; description: string; device_type?: Database["public"]["Enums"]["device_type"]; domain_name?: string | null; heading?: number | null; herd_id: number; id?: number; inserted_at?: string; location?: unknown; name: string; video_publisher_token?: string | null; video_subscriber_token?: string | null; }; Update: { altitude?: number | null; created_by?: string; description?: string; device_type?: Database["public"]["Enums"]["device_type"]; domain_name?: string | null; heading?: number | null; herd_id?: number; id?: number; inserted_at?: string; location?: unknown; name?: string; video_publisher_token?: string | null; video_subscriber_token?: string | null; }; Relationships: [{ foreignKeyName: "devices_created_by_fkey"; columns: ["created_by"]; isOneToOne: false; referencedRelation: "users"; referencedColumns: ["id"]; }, { foreignKeyName: "devices_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; events: { Row: { altitude: number; device_id: number; earthranger_url: string | null; file_path: string | null; heading: number; id: number; inserted_at: string; is_public: boolean; location: unknown; media_type: Database["public"]["Enums"]["media_type"]; media_url: string | null; message: string | null; session_id: number | null; timestamp_observation: string; }; Insert: { altitude?: number; device_id: number; earthranger_url?: string | null; file_path?: string | null; heading?: number; id?: number; inserted_at?: string; is_public?: boolean; location?: unknown; media_type?: Database["public"]["Enums"]["media_type"]; media_url?: string | null; message?: string | null; session_id?: number | null; timestamp_observation?: string; }; Update: { altitude?: number; device_id?: number; earthranger_url?: string | null; file_path?: string | null; heading?: number; id?: number; inserted_at?: string; is_public?: boolean; location?: unknown; media_type?: Database["public"]["Enums"]["media_type"]; media_url?: string | null; message?: string | null; session_id?: number | null; timestamp_observation?: string; }; Relationships: [{ foreignKeyName: "events_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }, { foreignKeyName: "events_session_id_fkey"; columns: ["session_id"]; isOneToOne: false; referencedRelation: "sessions"; referencedColumns: ["id"]; }]; }; heartbeats: { Row: { created_at: string; device_id: number; id: number; timestamp: string; }; Insert: { created_at?: string; device_id: number; id?: number; timestamp: string; }; Update: { created_at?: string; device_id?: number; id?: number; timestamp?: string; }; Relationships: [{ foreignKeyName: "heartbeats_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }]; }; herds: { Row: { created_by: string; description: string; earthranger_domain: string | null; earthranger_token: string | null; id: number; inserted_at: string; is_public: boolean; slug: string; video_publisher_token: string | null; video_server_url: string | null; video_subscriber_token: string | null; }; Insert: { created_by: string; description: string; earthranger_domain?: string | null; earthranger_token?: string | null; id?: number; inserted_at?: string; is_public?: boolean; slug: string; video_publisher_token?: string | null; video_server_url?: string | null; video_subscriber_token?: string | null; }; Update: { created_by?: string; description?: string; earthranger_domain?: string | null; earthranger_token?: string | null; id?: number; inserted_at?: string; is_public?: boolean; slug?: string; video_publisher_token?: string | null; video_server_url?: string | null; video_subscriber_token?: string | null; }; Relationships: [{ foreignKeyName: "herds_created_by_fkey"; columns: ["created_by"]; isOneToOne: false; referencedRelation: "users"; referencedColumns: ["id"]; }]; }; layers: { Row: { created_at: string; features: import("../types/supabase").Json; herd_id: number; id: number; }; Insert: { created_at?: string; features: import("../types/supabase").Json; herd_id: number; id?: number; }; Update: { created_at?: string; features?: import("../types/supabase").Json; herd_id?: number; id?: number; }; Relationships: [{ foreignKeyName: "layers_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; operators: { Row: { action: string | null; created_at: string; id: number; session_id: number | null; timestamp: string | null; user_id: string; }; Insert: { action?: string | null; created_at?: string; id?: number; session_id?: number | null; timestamp?: string | null; user_id: string; }; Update: { action?: string | null; created_at?: string; id?: number; session_id?: number | null; timestamp?: string | null; user_id?: string; }; Relationships: [{ foreignKeyName: "operators_session_id_fkey"; columns: ["session_id"]; isOneToOne: false; referencedRelation: "sessions"; referencedColumns: ["id"]; }, { foreignKeyName: "operators_user_id_fkey"; columns: ["user_id"]; isOneToOne: false; referencedRelation: "users"; referencedColumns: ["id"]; }]; }; parts: { Row: { certificate_id: number | null; created_at: string; deleted_at: string | null; device_id: number; id: number; product_number: string; serial_number: string; status: Database["public"]["Enums"]["component_status"]; updated_at: string | null; }; Insert: { certificate_id?: number | null; created_at?: string; deleted_at?: string | null; device_id: number; id?: number; product_number: string; serial_number: string; status?: Database["public"]["Enums"]["component_status"]; updated_at?: string | null; }; Update: { certificate_id?: number | null; created_at?: string; deleted_at?: string | null; device_id?: number; id?: number; product_number?: string; serial_number?: string; status?: Database["public"]["Enums"]["component_status"]; updated_at?: string | null; }; Relationships: [{ foreignKeyName: "parts_certificate_id_fkey"; columns: ["certificate_id"]; isOneToOne: false; referencedRelation: "certificates"; referencedColumns: ["id"]; }, { foreignKeyName: "parts_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }]; }; pins: { Row: { altitude_relative_to_ground: number; color: string; created_at: string; created_by: string | null; description: string | null; herd_id: number; id: number; location: unknown; name: string; }; Insert: { altitude_relative_to_ground: number; color: string; created_at?: string; created_by?: string | null; description?: string | null; herd_id: number; id?: number; location?: unknown; name: string; }; Update: { altitude_relative_to_ground?: number; color?: string; created_at?: string; created_by?: string | null; description?: string | null; herd_id?: number; id?: number; location?: unknown; name?: string; }; Relationships: [{ foreignKeyName: "pins_created_by_fkey"; columns: ["created_by"]; isOneToOne: false; referencedRelation: "users"; referencedColumns: ["id"]; }, { foreignKeyName: "pins_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; plans: { Row: { herd_id: number; id: number; inserted_at: string | null; instructions: string; name: string; plan_type: Database["public"]["Enums"]["plan_type"]; }; Insert: { herd_id: number; id?: number; inserted_at?: string | null; instructions: string; name: string; plan_type?: Database["public"]["Enums"]["plan_type"]; }; Update: { herd_id?: number; id?: number; inserted_at?: string | null; instructions?: string; name?: string; plan_type?: Database["public"]["Enums"]["plan_type"]; }; Relationships: [{ foreignKeyName: "plans_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; providers: { Row: { created_at: string; herd_id: number; id: number; key: string | null; source: string; type: string; }; Insert: { created_at?: string; herd_id: number; id?: number; key?: string | null; source: string; type: string; }; Update: { created_at?: string; herd_id?: number; id?: number; key?: string | null; source?: string; type?: string; }; Relationships: [{ foreignKeyName: "providers_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; sessions: { Row: { altitude_average: number; altitude_max: number; altitude_min: number; device_id: number; distance_max_from_start: number; distance_total: number; earthranger_url: string | null; id: number; inserted_at: string; locations: unknown; software_version: string; timestamp_end: string | null; timestamp_start: string; velocity_average: number; velocity_max: number; velocity_min: number; }; Insert: { altitude_average: number; altitude_max: number; altitude_min: number; device_id: number; distance_max_from_start: number; distance_total: number; earthranger_url?: string | null; id?: number; inserted_at?: string; locations?: unknown; software_version: string; timestamp_end?: string | null; timestamp_start: string; velocity_average: number; velocity_max: number; velocity_min: number; }; Update: { altitude_average?: number; altitude_max?: number; altitude_min?: number; device_id?: number; distance_max_from_start?: number; distance_total?: number; earthranger_url?: string | null; id?: number; inserted_at?: string; locations?: unknown; software_version?: string; timestamp_end?: string | null; timestamp_start?: string; velocity_average?: number; velocity_max?: number; velocity_min?: number; }; Relationships: [{ foreignKeyName: "sessions_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }]; }; tags: { Row: { class_name: string; conf: number; event_id: number; height: number; id: number; inserted_at: string; location: unknown; observation_type: Database["public"]["Enums"]["tag_observation_type"]; width: number; x: number; y: number; }; Insert: { class_name: string; conf: number; event_id: number; height?: number; id?: number; inserted_at?: string; location?: unknown; observation_type: Database["public"]["Enums"]["tag_observation_type"]; width: number; x: number; y: number; }; Update: { class_name?: string; conf?: number; event_id?: number; height?: number; id?: number; inserted_at?: string; location?: unknown; observation_type?: Database["public"]["Enums"]["tag_observation_type"]; width?: number; x?: number; y?: number; }; Relationships: [{ foreignKeyName: "tags_event_id_fkey"; columns: ["event_id"]; isOneToOne: false; referencedRelation: "events"; referencedColumns: ["id"]; }, { foreignKeyName: "tags_event_id_fkey"; columns: ["event_id"]; isOneToOne: false; referencedRelation: "events_with_tags"; referencedColumns: ["id"]; }, { foreignKeyName: "tags_event_id_fkey"; columns: ["event_id"]; isOneToOne: false; referencedRelation: "events_with_tags_by_session"; referencedColumns: ["id"]; }]; }; users: { Row: { id: string; username: string | null; }; Insert: { id: string; username?: string | null; }; Update: { id?: string; username?: string | null; }; Relationships: []; }; users_roles_per_herd: { Row: { herd_id: number; id: number; inserted_at: string; role: Database["public"]["Enums"]["role"]; user_id: string; }; Insert: { herd_id: number; id?: number; inserted_at?: string; role: Database["public"]["Enums"]["role"]; user_id: string; }; Update: { herd_id?: number; id?: number; inserted_at?: string; role?: Database["public"]["Enums"]["role"]; user_id?: string; }; Relationships: [{ foreignKeyName: "users_roles_per_herd_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }, { foreignKeyName: "users_roles_per_herd_user_id_fkey"; columns: ["user_id"]; isOneToOne: false; referencedRelation: "users"; referencedColumns: ["id"]; }]; }; versions_software: { Row: { commit_hash: string | null; created_at: string; description: string; hyperlink: string | null; id: number; min: boolean; pre: boolean; stable: boolean; system: string; title: string | null; updated_at: string | null; version: string; }; Insert: { commit_hash?: string | null; created_at?: string; description: string; hyperlink?: string | null; id?: number; min?: boolean; pre?: boolean; stable?: boolean; system: string; title?: string | null; updated_at?: string | null; version: string; }; Update: { commit_hash?: string | null; created_at?: string; description?: string; hyperlink?: string | null; id?: number; min?: boolean; pre?: boolean; stable?: boolean; system?: string; title?: string | null; updated_at?: string | null; version?: string; }; Relationships: []; }; zones: { Row: { herd_id: number; id: number; inserted_at: string; region: unknown; }; Insert: { herd_id: number; id?: number; inserted_at?: string; region: unknown; }; Update: { herd_id?: number; id?: number; inserted_at?: string; region?: unknown; }; Relationships: [{ foreignKeyName: "zones_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; }; Views: { events_with_tags: { Row: { altitude: number | null; device_id: number | null; earthranger_url: string | null; file_path: string | null; heading: number | null; herd_id: number | null; id: number | null; inserted_at: string | null; is_public: boolean | null; location: unknown; media_type: Database["public"]["Enums"]["media_type"] | null; media_url: string | null; message: string | null; session_id: number | null; tags: Database["public"]["Tables"]["tags"]["Row"][] | null; timestamp_observation: string | null; }; Relationships: [{ foreignKeyName: "devices_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }, { foreignKeyName: "events_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }, { foreignKeyName: "events_session_id_fkey"; columns: ["session_id"]; isOneToOne: false; referencedRelation: "sessions"; referencedColumns: ["id"]; }]; }; events_with_tags_by_session: { Row: { altitude: number | null; device_id: number | null; earthranger_url: string | null; file_path: string | null; heading: number | null; herd_id: number | null; id: number | null; inserted_at: string | null; is_public: boolean | null; location: unknown; media_type: Database["public"]["Enums"]["media_type"] | null; media_url: string | null; message: string | null; session_id: number | null; tags: Database["public"]["Tables"]["tags"]["Row"][] | null; timestamp_observation: string | null; }; Relationships: [{ foreignKeyName: "devices_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }, { foreignKeyName: "events_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }, { foreignKeyName: "events_session_id_fkey"; columns: ["session_id"]; isOneToOne: false; referencedRelation: "sessions"; referencedColumns: ["id"]; }]; }; zones_and_actions: { Row: { actions: Database["public"]["Tables"]["actions"]["Row"][] | null; herd_id: number | null; id: number | null; inserted_at: string | null; region: unknown; }; Relationships: [{ foreignKeyName: "zones_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; }; Functions: { analyze_device_heartbeats: { Args: { p_device_id: number; p_lookback_minutes?: number; p_window_minutes?: number; }; Returns: Database["public"]["CompositeTypes"]["device_heartbeat_analysis"]; SetofOptions: { from: "*"; to: "device_heartbeat_analysis"; isOneToOne: true; isSetofReturn: false; }; }; analyze_herd_device_heartbeats: { Args: { p_device_types?: Database["public"]["Enums"]["device_type"][]; p_herd_id: number; p_lookback_minutes?: number; p_window_minutes?: number; }; Returns: Database["public"]["CompositeTypes"]["device_heartbeat_analysis"][]; SetofOptions: { from: "*"; to: "device_heartbeat_analysis"; isOneToOne: false; isSetofReturn: true; }; }; check_realtime_schema_status: { Args: never; Returns: { check_type: string; details: string; schema_name: string; status: string; table_name: string; }[]; }; delete_all_orphaned_sessions: { Args: { min_age_seconds?: number; }; Returns: { age_seconds: number; device_id: number; session_id: number; status: string; timestamp_start: string; }[]; }; delete_orphaned_session: { Args: { min_age_seconds?: number; session_id_param: number; }; Returns: { age_seconds: number; connectivity_count: number; device_id: number; session_id: number; status: string; timestamp_start: string; }[]; }; fix_all_sessions_missing_end_timestamps: { Args: never; Returns: { device_id: number; new_timestamp_end: string; old_timestamp_end: string; session_id: number; status: string; }[]; }; fix_session_end_timestamp: { Args: { session_id_param: number; }; Returns: { new_timestamp_end: string; old_timestamp_end: string; session_id: number; status: string; }[]; }; get_artifacts_for_device: { Args: { device_id_caller: number; limit_caller?: number; offset_caller?: number; }; Returns: { created_at: string; device_id: number; file_path: string; id: number; modality: string | null; session_id: number | null; timestamp_observation: string | null; timestamp_observation_end: string; updated_at: string | null; }[]; SetofOptions: { from: "*"; to: "artifacts"; isOneToOne: false; isSetofReturn: true; }; }; get_artifacts_for_devices_batch: { Args: { device_ids: number[]; limit_per_device?: number; }; Returns: { created_at: string; device_id: number; file_path: string; id: number; modality: string | null; session_id: number | null; timestamp_observation: string | null; timestamp_observation_end: string; updated_at: string | null; }[]; SetofOptions: { from: "*"; to: "artifacts"; isOneToOne: false; isSetofReturn: true; }; }; get_artifacts_for_herd: { Args: { herd_id_caller: number; limit_caller?: number; offset_caller?: number; }; Returns: { created_at: string; device_id: number; file_path: string; id: number; modality: string | null; session_id: number | null; timestamp_observation: string | null; timestamp_observation_end: string; updated_at: string | null; }[]; SetofOptions: { from: "*"; to: "artifacts"; isOneToOne: false; isSetofReturn: true; }; }; get_artifacts_infinite_by_device: { Args: { cursor_id?: number; cursor_timestamp?: string; device_id_caller: number; limit_caller?: number; }; Returns: { created_at: string; device_id: number; file_path: string; id: number; modality: string | null; session_id: number | null; timestamp_observation: string | null; timestamp_observation_end: string; updated_at: string | null; }[]; SetofOptions: { from: "*"; to: "artifacts"; isOneToOne: false; isSetofReturn: true; }; }; get_artifacts_infinite_by_herd: { Args: { cursor_id?: number; cursor_timestamp?: string; herd_id_caller: number; limit_caller?: number; }; Returns: { created_at: string; device_id: number; file_path: string; id: number; modality: string | null; session_id: number | null; timestamp_observation: string | null; timestamp_observation_end: string; updated_at: string | null; }[]; SetofOptions: { from: "*"; to: "artifacts"; isOneToOne: false; isSetofReturn: true; }; }; get_connectivity_with_coordinates: { Args: { session_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["connectivity_with_coordinates"][]; SetofOptions: { from: "*"; to: "connectivity_with_coordinates"; isOneToOne: false; isSetofReturn: true; }; }; get_connectivity_with_coordinates_by_device_and_timestamp: { Args: { device_id_caller: number; timestamp_filter: string; }; Returns: Database["public"]["CompositeTypes"]["connectivity_with_coordinates"][]; SetofOptions: { from: "*"; to: "connectivity_with_coordinates"; isOneToOne: false; isSetofReturn: true; }; }; get_device_by_api_key: { Args: { device_api_key: string; }; Returns: Database["public"]["CompositeTypes"]["device_pretty_location"]; SetofOptions: { from: "*"; to: "device_pretty_location"; isOneToOne: true; isSetofReturn: false; }; }; get_device_by_id: { Args: { device_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["device_pretty_location"]; SetofOptions: { from: "*"; to: "device_pretty_location"; isOneToOne: true; isSetofReturn: false; }; }; get_device_id_from_key: { Args: { device_api_key: string; }; Returns: number; }; get_devices_for_herd: { Args: { herd_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["device_pretty_location"][]; SetofOptions: { from: "*"; to: "device_pretty_location"; isOneToOne: false; isSetofReturn: true; }; }; get_events_and_tags_for_device: { Args: { device_id_caller: number; limit_caller: number; }; Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][]; SetofOptions: { from: "*"; to: "event_and_tags_pretty_location"; isOneToOne: false; isSetofReturn: true; }; }; get_events_and_tags_for_devices_batch: { Args: { device_ids: number[]; limit_per_device?: number; }; Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][]; SetofOptions: { from: "*"; to: "event_and_tags_pretty_location"; isOneToOne: false; isSetofReturn: true; }; }; get_events_and_tags_for_herd: { Args: { herd_id_caller: number; limit_caller: number; offset_caller: number; }; Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][]; SetofOptions: { from: "*"; to: "event_and_tags_pretty_location"; isOneToOne: false; isSetofReturn: true; }; }; get_events_and_tags_for_session: { Args: { limit_caller: number; offset_caller: number; session_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][]; SetofOptions: { from: "*"; to: "event_and_tags_pretty_location"; isOneToOne: false; isSetofReturn: true; }; }; get_events_infinite_by_device: { Args: { cursor_id?: number; cursor_timestamp?: string; device_id_caller: number; limit_caller?: number; }; Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][]; SetofOptions: { from: "*"; to: "event_and_tags_pretty_location"; isOneToOne: false; isSetofReturn: true; }; }; get_events_infinite_by_herd: { Args: { cursor_id?: number; cursor_timestamp?: string; herd_id_caller: number; limit_caller?: number; }; Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][]; SetofOptions: { from: "*"; to: "event_and_tags_pretty_location"; isOneToOne: false; isSetofReturn: true; }; }; get_events_with_tags_for_herd: { Args: { herd_id_caller: number; limit_caller: number; offset_caller: number; }; Returns: Database["public"]["CompositeTypes"]["event_with_tags"][]; SetofOptions: { from: "*"; to: "event_with_tags"; isOneToOne: false; isSetofReturn: true; }; }; get_herd_uptime_summary: { Args: { p_device_types?: Database["public"]["Enums"]["device_type"][]; p_herd_id: number; p_lookback_minutes?: number; p_window_minutes?: number; }; Returns: { average_heartbeat_interval: number; offline_devices: number; online_devices: number; overall_uptime_percentage: number; total_devices: number; total_heartbeats: number; }[]; }; get_pins_for_herd: { Args: { herd_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["pins_pretty_location"][]; SetofOptions: { from: "*"; to: "pins_pretty_location"; isOneToOne: false; isSetofReturn: true; }; }; get_session_by_id: { Args: { session_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["session_with_coordinates"][]; SetofOptions: { from: "*"; to: "session_with_coordinates"; isOneToOne: false; isSetofReturn: true; }; }; get_session_summaries: { Args: { device_id_caller?: number; end_date_caller?: string; herd_id_caller?: number; start_date_caller?: string; }; Returns: import("../types/supabase").Json; }; get_session_usage_over_time: { Args: { device_id_caller?: number; end_date_caller?: string; herd_id_caller?: number; start_date_caller?: string; }; Returns: import("../types/supabase").Json; }; get_sessions_infinite_by_device: { Args: {