mirror of
https://github.com/jjbrunton/Sauci.git
synced 2026-10-31 18:19:43 +00:00
Align prod schema and deploy tooling
This commit is contained in:
1 parent
d2db86ec7f
commit
7e2e723880
105 files changed
+19014
-131
No files matched your search
@@ -13,25 +13,20 @@ CREATE TABLE couple_streaks (
|
||||
streak_celebrated_at INTEGER DEFAULT 0, -- Last milestone that was celebrated
|
||||
created_at TIMESTAMPTZ DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ DEFAULT now()
|
||||
);
|
||||
|
||||
);
|
||||
-- Enable RLS
|
||||
ALTER TABLE couple_streaks ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
ALTER TABLE couple_streaks ENABLE ROW LEVEL SECURITY;
|
||||
-- RLS policies
|
||||
CREATE POLICY "Users can view their couple's streaks"
|
||||
ON couple_streaks FOR SELECT
|
||||
USING (couple_id = get_auth_user_couple_id());
|
||||
|
||||
USING (couple_id = get_auth_user_couple_id());
|
||||
CREATE POLICY "Super admins can view all streaks"
|
||||
ON couple_streaks FOR SELECT
|
||||
USING (is_super_admin());
|
||||
|
||||
USING (is_super_admin());
|
||||
-- Updated_at trigger
|
||||
CREATE TRIGGER update_couple_streaks_updated_at
|
||||
BEFORE UPDATE ON couple_streaks
|
||||
FOR EACH ROW EXECUTE FUNCTION update_updated_at();
|
||||
|
||||
FOR EACH ROW EXECUTE FUNCTION update_updated_at();
|
||||
-- Function to update streak when a response is submitted
|
||||
CREATE OR REPLACE FUNCTION update_couple_streak()
|
||||
RETURNS TRIGGER
|
||||
@@ -150,14 +145,12 @@ BEGIN
|
||||
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$;
|
||||
|
||||
$$;
|
||||
-- Create trigger on responses table
|
||||
CREATE TRIGGER on_response_update_streak
|
||||
AFTER INSERT OR UPDATE OF answer ON responses
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_couple_streak();
|
||||
|
||||
EXECUTE FUNCTION update_couple_streak();
|
||||
-- Function to reset daily flags (called by cron at UTC midnight)
|
||||
CREATE OR REPLACE FUNCTION reset_daily_streak_flags()
|
||||
RETURNS void
|
||||
@@ -172,8 +165,7 @@ BEGIN
|
||||
user2_answered_today = false
|
||||
WHERE last_active_date < CURRENT_DATE;
|
||||
END;
|
||||
$$;
|
||||
|
||||
$$;
|
||||
-- Schedule cron job for daily flag reset (runs at 00:00 UTC)
|
||||
SELECT cron.schedule(
|
||||
'reset-daily-streak-flags',
|
||||
@@ -181,8 +173,7 @@ SELECT cron.schedule(
|
||||
$$
|
||||
SELECT reset_daily_streak_flags();
|
||||
$$
|
||||
);
|
||||
|
||||
);
|
||||
-- Schedule cron job for checking streak milestones (runs at 00:05 UTC)
|
||||
SELECT cron.schedule(
|
||||
'check-streak-milestones',
|
||||
@@ -194,4 +185,4 @@ SELECT cron.schedule(
|
||||
body := '{}'::jsonb
|
||||
)
|
||||
$$
|
||||
);
|
||||
);
|
||||
Reference in new issue
Block a user