Skip to content

Commit 19dc046

Browse files
committed
Revamp Subscriptions
1 parent d0cff18 commit 19dc046

File tree

5 files changed

+291
-132
lines changed

5 files changed

+291
-132
lines changed

docker/init-scripts/01-schema.sql

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,9 +281,9 @@ CREATE TABLE public."shiftAssignments" (
281281
);
282282

283283
CREATE TABLE public."subscriptions" (
284+
"userId" character varying NOT NULL,
284285
"mailingList" text NOT NULL,
285-
"subscriptions" text[] DEFAULT '{}'::text[] NOT NULL,
286-
CONSTRAINT "subscriptions_pkey" PRIMARY KEY ("mailingList")
286+
CONSTRAINT "subscriptions_pkey" PRIMARY KEY ("userId", "mailingList")
287287
);
288288

289289
-- Add foreign key constraints
@@ -311,6 +311,9 @@ ALTER TABLE ONLY public."leaderboardSubmissions"
311311
ALTER TABLE ONLY public."redemptions"
312312
ADD CONSTRAINT "redemptions_user_id_fkey" FOREIGN KEY ("userId") REFERENCES public."authInfo"("userId") ON DELETE CASCADE;
313313

314+
ALTER TABLE ONLY public."subscriptions"
315+
ADD CONSTRAINT "subscriptions_user_id_fkey" FOREIGN KEY ("userId") REFERENCES public."authInfo"("userId") ON DELETE CASCADE;
316+
314317
-- PostgreSQL function for atomic tier promotions
315318
CREATE OR REPLACE FUNCTION public.promote_users_batch(user_ids text[])
316319
RETURNS int AS $$

src/database.types.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -636,18 +636,26 @@ export type Database = {
636636
};
637637
subscriptions: {
638638
Row: {
639+
userId: string;
639640
mailingList: string;
640-
subscriptions: string[];
641641
};
642642
Insert: {
643+
userId: string;
643644
mailingList: string;
644-
subscriptions?: string[];
645645
};
646646
Update: {
647+
userId?: string;
647648
mailingList?: string;
648-
subscriptions?: string[];
649649
};
650-
Relationships: [];
650+
Relationships: [
651+
{
652+
foreignKeyName: "subscriptions_user_id_fkey";
653+
columns: ["userId"];
654+
isOneToOne: false;
655+
referencedRelation: "authInfo";
656+
referencedColumns: ["userId"];
657+
}
658+
];
651659
};
652660
redemptions: {
653661
Row: {

0 commit comments

Comments
 (0)