diff --git a/server/data/supabaseTypes.ts b/server/data/supabaseTypes.ts index 45f8d3f..40cee22 100644 --- a/server/data/supabaseTypes.ts +++ b/server/data/supabaseTypes.ts @@ -34,6 +34,81 @@ export type Database = { } public: { Tables: { + helper_parties: { + Row: { + created_at: string + display_name: string + modified_at: string + uuid: string + } + Insert: { + created_at?: string + display_name: string + modified_at?: string + uuid?: string + } + Update: { + created_at?: string + display_name?: string + modified_at?: string + uuid?: string + } + Relationships: [] + } + helper_party_network_members: { + Row: { + created_at: string + helper_party_network_uuid: string + helper_party_uuid: string + } + Insert: { + created_at?: string + helper_party_network_uuid: string + helper_party_uuid: string + } + Update: { + created_at?: string + helper_party_network_uuid?: string + helper_party_uuid?: string + } + Relationships: [ + { + foreignKeyName: "helper_party_network_members_helper_party_network_uuid_fkey" + columns: ["helper_party_network_uuid"] + isOneToOne: false + referencedRelation: "helper_party_networks" + referencedColumns: ["uuid"] + }, + { + foreignKeyName: "helper_party_network_members_helper_party_uuid_fkey" + columns: ["helper_party_uuid"] + isOneToOne: false + referencedRelation: "helper_parties" + referencedColumns: ["uuid"] + }, + ] + } + helper_party_networks: { + Row: { + created_at: string + display_name: string + modified_at: string + uuid: string + } + Insert: { + created_at?: string + display_name: string + modified_at?: string + uuid?: string + } + Update: { + created_at?: string + display_name?: string + modified_at?: string + uuid?: string + } + Relationships: [] + } queries: { Row: { created_at: string diff --git a/server/supabase/migrations/20240608204813_helper_party.sql b/server/supabase/migrations/20240608204813_helper_party.sql new file mode 100644 index 0000000..b6546a4 --- /dev/null +++ b/server/supabase/migrations/20240608204813_helper_party.sql @@ -0,0 +1,77 @@ +create table +helper_parties ( +uuid uuid default gen_random_uuid() primary key, +display_name varchar(255) unique not null, +created_at timestamp default current_timestamp not null, +modified_at timestamp default current_timestamp not null +); + +alter table helper_parties enable row level security; + +create policy "Helper Parties are visible to authenticated users" +on helper_parties for select +to authenticated +using ( true ); + +create policy "Helper Parties are only created by authenticated users" +on helper_parties for insert +to authenticated +with check ( true ); + +create policy "Helper Parties are only updated by authenticated users" +on helper_parties for update +to authenticated +using ( true ) +with check ( true ); + +create table +helper_party_networks ( +uuid uuid default gen_random_uuid() primary key, +display_name varchar(255) unique not null, +created_at timestamp default current_timestamp not null, +modified_at timestamp default current_timestamp not null +); + +alter table helper_party_networks enable row level security; + +create policy "Helper Party Networks are visible to authenticated users" +on helper_party_networks for select +to authenticated +using ( true ); + +create policy "Helper Party Networks are only created by authenticated users" +on helper_party_networks for insert +to authenticated +with check ( true ); + +create policy "Helper Party Networks are only updated by authenticated users" +on helper_party_networks for update +to authenticated +using ( true ) +with check ( true ); + +create table +helper_party_network_members ( +helper_party_uuid uuid references helper_parties not null, +helper_party_network_uuid uuid references helper_party_networks not null, +created_at timestamp default current_timestamp not null, +primary key (helper_party_uuid, helper_party_network_uuid) +); + +alter table helper_party_network_members enable row level security; + +create policy "Helper Party Network Members are visible to authenticated users" +on helper_party_network_members for select +to authenticated +using ( true ); + +create policy "Helper Party Network Members are only created by authenticated users" +on helper_party_network_members for insert +to authenticated +with check ( true ); + +create policy "Helper Party Network Members are only updated by authenticated users" +on helper_party_network_members for update +to authenticated +using ( true ) +with check ( true ); diff --git a/server/supabase/seed.sql b/server/supabase/seed.sql index e69de29..2c0a999 100644 --- a/server/supabase/seed.sql +++ b/server/supabase/seed.sql @@ -0,0 +1,22 @@ +-- +-- Data for Name: helper_parties; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +INSERT INTO public.helper_parties (uuid, display_name) VALUES ('de218b52-1ec7-4a4d-9bf9-f9070b2c3a93', 'Local test helper 1'); +INSERT INTO public.helper_parties (uuid, display_name) VALUES ('b8848f0f-65c4-499f-82b4-1e3a119ba31e', 'Local test helper 2'); +INSERT INTO public.helper_parties (uuid, display_name) VALUES ('91993b4a-4131-4b9f-a132-d4a5839e3c6c', 'Local test helper 3'); + + +-- +-- Data for Name: helper_party_networks; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +INSERT INTO public.helper_party_networks (uuid, display_name) VALUES ('a8c892ae-8cee-472f-95f0-e25b1fec9759', 'Local test network'); + +-- +-- Data for Name: helper_party_network_members; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +INSERT INTO public.helper_party_network_members (helper_party_uuid, helper_party_network_uuid) VALUES ('de218b52-1ec7-4a4d-9bf9-f9070b2c3a93', 'a8c892ae-8cee-472f-95f0-e25b1fec9759'); +INSERT INTO public.helper_party_network_members (helper_party_uuid, helper_party_network_uuid) VALUES ('b8848f0f-65c4-499f-82b4-1e3a119ba31e', 'a8c892ae-8cee-472f-95f0-e25b1fec9759'); +INSERT INTO public.helper_party_network_members (helper_party_uuid, helper_party_network_uuid) VALUES ('91993b4a-4131-4b9f-a132-d4a5839e3c6c', 'a8c892ae-8cee-472f-95f0-e25b1fec9759');