React/Vite/shadcn-ui site for Gigafibre ISP. Address qualification via PostgreSQL (5.2M AQ addresses, pg_trgm fuzzy search). No Supabase dependency for address search. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
27 lines
943 B
SQL
27 lines
943 B
SQL
|
|
-- Table to persist import job progress across browser sessions
|
|
CREATE TABLE public.import_jobs (
|
|
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
type text NOT NULL CHECK (type IN ('addresses', 'fiber')),
|
|
source_url text,
|
|
status text NOT NULL DEFAULT 'running' CHECK (status IN ('running', 'done', 'error', 'paused')),
|
|
skip_rows integer NOT NULL DEFAULT 0,
|
|
total_inserted integer NOT NULL DEFAULT 0,
|
|
total_errors integer NOT NULL DEFAULT 0,
|
|
error_messages text[] DEFAULT '{}',
|
|
logs text[] DEFAULT '{}',
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
user_id uuid NOT NULL
|
|
);
|
|
|
|
ALTER TABLE public.import_jobs ENABLE ROW LEVEL SECURITY;
|
|
|
|
-- Only admins can access import jobs
|
|
CREATE POLICY "Admins can manage import_jobs"
|
|
ON public.import_jobs
|
|
FOR ALL
|
|
TO authenticated
|
|
USING (public.has_role(auth.uid(), 'admin'))
|
|
WITH CHECK (public.has_role(auth.uid(), 'admin'));
|