LocalMate / docs /schema_supabase.txt
Cuong2004's picture
Initial HF deployment
ca7a2c2
-- WARNING: This schema is for context only and is not meant to be run.
-- Table order and constraints may not be valid for execution.
CREATE TABLE public.bookings (
id uuid NOT NULL DEFAULT uuid_generate_v4(),
user_id uuid NOT NULL,
itinerary_id uuid,
stop_id uuid,
provider text NOT NULL,
type text NOT NULL,
external_id text NOT NULL,
status text NOT NULL DEFAULT 'pending'::text,
price numeric,
currency text NOT NULL DEFAULT 'VND'::text,
place_id text,
raw_request jsonb,
raw_response jsonb,
created_at timestamp with time zone NOT NULL DEFAULT now(),
updated_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT bookings_pkey PRIMARY KEY (id),
CONSTRAINT bookings_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.profiles(id),
CONSTRAINT bookings_itinerary_id_fkey FOREIGN KEY (itinerary_id) REFERENCES public.itineraries(id),
CONSTRAINT bookings_stop_id_fkey FOREIGN KEY (stop_id) REFERENCES public.itinerary_stops(id)
);
CREATE TABLE public.itineraries (
id uuid NOT NULL DEFAULT uuid_generate_v4(),
user_id uuid NOT NULL,
title text NOT NULL,
start_date date,
end_date date,
total_days integer NOT NULL CHECK (total_days >= 1),
total_budget numeric,
currency text NOT NULL DEFAULT 'VND'::text,
meta jsonb,
created_at timestamp with time zone NOT NULL DEFAULT now(),
updated_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT itineraries_pkey PRIMARY KEY (id),
CONSTRAINT itineraries_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.profiles(id)
);
CREATE TABLE public.itinerary_stops (
id uuid NOT NULL DEFAULT uuid_generate_v4(),
itinerary_id uuid NOT NULL,
day_index integer NOT NULL CHECK (day_index >= 1),
order_index integer NOT NULL CHECK (order_index >= 1),
place_id text NOT NULL,
arrival_time timestamp with time zone,
stay_minutes integer,
notes text,
tags ARRAY,
snapshot jsonb,
created_at timestamp with time zone NOT NULL DEFAULT now(),
updated_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT itinerary_stops_pkey PRIMARY KEY (id),
CONSTRAINT itinerary_stops_itinerary_id_fkey FOREIGN KEY (itinerary_id) REFERENCES public.itineraries(id)
);
CREATE TABLE public.place_image_embeddings (
id uuid NOT NULL DEFAULT uuid_generate_v4(),
place_id text NOT NULL,
embedding USER-DEFINED,
image_url text,
metadata jsonb,
created_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT place_image_embeddings_pkey PRIMARY KEY (id)
);
CREATE TABLE public.place_text_embeddings (
id uuid NOT NULL DEFAULT uuid_generate_v4(),
place_id text NOT NULL,
embedding USER-DEFINED,
content_type text,
source_text text,
metadata jsonb,
created_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT place_text_embeddings_pkey PRIMARY KEY (id)
);
CREATE TABLE public.places_metadata (
place_id text NOT NULL,
name text NOT NULL,
name_vi text,
category text,
address text,
rating numeric,
price_min numeric,
price_max numeric,
tags ARRAY DEFAULT '{}'::text[],
coordinates USER-DEFINED,
raw_data jsonb DEFAULT '{}'::jsonb,
created_at timestamp with time zone DEFAULT now(),
updated_at timestamp with time zone DEFAULT now(),
CONSTRAINT places_metadata_pkey PRIMARY KEY (place_id)
);
CREATE TABLE public.profiles (
id uuid NOT NULL,
full_name text NOT NULL DEFAULT ''::text,
phone text,
role text NOT NULL DEFAULT 'tourist'::text CHECK (role = ANY (ARRAY['tourist'::text, 'driver'::text, 'admin'::text])),
locale text NOT NULL DEFAULT 'vi_VN'::text,
avatar_url text,
created_at timestamp with time zone NOT NULL DEFAULT now(),
updated_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT profiles_pkey PRIMARY KEY (id),
CONSTRAINT profiles_id_fkey FOREIGN KEY (id) REFERENCES auth.users(id)
);
CREATE TABLE public.spatial_ref_sys (
srid integer NOT NULL CHECK (srid > 0 AND srid <= 998999),
auth_name character varying,
auth_srid integer,
srtext character varying,
proj4text character varying,
CONSTRAINT spatial_ref_sys_pkey PRIMARY KEY (srid)
);