Skip to content

Commit cbc95d8

Browse files
authored
Merge pull request #5 from FIRSTinMI/streams-table
Add Event Streams Table
2 parents f1f6b63 + 071d2f2 commit cbc95d8

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
create type "public"."stream_platform" as enum ('Twitch', 'Youtube');
2+
3+
create table "public"."event_streams" (
4+
"id" bigint generated by default as identity not null,
5+
"event_id" uuid not null,
6+
"title" varchar(255),
7+
"platform" stream_platform not null,
8+
"channel" varchar(255) not null,
9+
"url" varchar(512),
10+
"internal_id" varchar(255),
11+
"start_time" timestamp with time zone
12+
);
13+
14+
alter table "public"."event_streams" enable row level security;
15+
16+
CREATE UNIQUE INDEX event_streams_pkey ON public.event_streams USING btree (id);
17+
18+
alter table "public"."event_streams" add constraint "event_streams_pkey" PRIMARY KEY using index "event_streams_pkey";
19+
20+
alter table "public"."event_streams" add constraint "public_event_streams_event_id_fkey" FOREIGN KEY (event_id) REFERENCES events(id) not valid;
21+
22+
alter table "public"."event_streams" validate constraint "public_event_streams_event_id_fkey";
23+
24+
create policy "SELECT event_streams global"
25+
on "public"."event_streams"
26+
as permissive
27+
for select
28+
to authenticated
29+
using (
30+
((auth.jwt() -> 'app_metadata'::text) -> 'globalPermissions'::text) @> '"Events_View"'::jsonb
31+
);
32+
33+
create policy "SELECT event_streams event_staff"
34+
on "public"."event_streams"
35+
as permissive
36+
for select
37+
to authenticated
38+
using (event_id IN (
39+
SELECT event_staffs.event_id
40+
FROM event_staffs
41+
WHERE (
42+
event_staffs.user_id = (SELECT auth.uid() AS uid) AND
43+
('Event_View'::text = ANY (event_staffs.permissions))
44+
)
45+
));
46+
47+
create policy "SELECT event_streams av_token"
48+
on "public"."event_streams"
49+
as permissive
50+
for select
51+
to public
52+
using (
53+
event_id = (auth.jwt() ->> 'eventId'::text)::uuid
54+
);
55+
56+
grant select on table "public"."event_streams" to "anon";
57+
58+
grant trigger on table "public"."event_streams" to "anon";
59+
60+
grant delete on table "public"."event_streams" to "authenticated";
61+
62+
grant insert on table "public"."event_streams" to "authenticated";
63+
64+
grant references on table "public"."event_streams" to "authenticated";
65+
66+
grant select on table "public"."event_streams" to "authenticated";
67+
68+
grant trigger on table "public"."event_streams" to "authenticated";
69+
70+
grant truncate on table "public"."event_streams" to "authenticated";
71+
72+
grant update on table "public"."event_streams" to "authenticated";
73+
74+
grant delete on table "public"."event_streams" to "service_role";
75+
76+
grant insert on table "public"."event_streams" to "service_role";
77+
78+
grant references on table "public"."event_streams" to "service_role";
79+
80+
grant select on table "public"."event_streams" to "service_role";
81+
82+
grant trigger on table "public"."event_streams" to "service_role";
83+
84+
grant truncate on table "public"."event_streams" to "service_role";
85+
86+
grant update on table "public"."event_streams" to "service_role";

0 commit comments

Comments
 (0)