fix: Fix navigation links and restore LanguageSwitcher
- Add missing nav keys to types.ts, de.ts, en.ts (sessions, buddies, stats, wishlist) - Add LanguageSwitcher back to authenticated header - Create /sessions page with SessionList - Create /buddies page with BuddyList - Create /stats page with StatsDashboard - Create /wishlist placeholder page
This commit is contained in:
49
sql/create_app_banners.sql
Normal file
49
sql/create_app_banners.sql
Normal file
@@ -0,0 +1,49 @@
|
||||
-- App Banners Table for dynamic hero content on home page
|
||||
|
||||
CREATE TABLE IF NOT EXISTS app_banners (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
title TEXT NOT NULL,
|
||||
image_url TEXT NOT NULL, -- 16:9 Banner Image
|
||||
link_target TEXT, -- e.g., '/sessions'
|
||||
cta_text TEXT DEFAULT 'Open',
|
||||
is_active BOOLEAN DEFAULT false,
|
||||
created_at TIMESTAMPTZ DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ DEFAULT now()
|
||||
);
|
||||
|
||||
-- Only one banner should be active at a time (optional constraint)
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_app_banners_active
|
||||
ON app_banners (is_active)
|
||||
WHERE is_active = true;
|
||||
|
||||
-- RLS Policies
|
||||
ALTER TABLE app_banners ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Everyone can view active banners
|
||||
CREATE POLICY "Anyone can view active banners"
|
||||
ON app_banners FOR SELECT
|
||||
USING (is_active = true);
|
||||
|
||||
-- Admins can manage all banners
|
||||
CREATE POLICY "Admins can manage banners"
|
||||
ON app_banners FOR ALL
|
||||
USING (
|
||||
EXISTS (
|
||||
SELECT 1 FROM admin_users
|
||||
WHERE admin_users.user_id = auth.uid()
|
||||
)
|
||||
);
|
||||
|
||||
-- Trigger for updated_at
|
||||
CREATE OR REPLACE FUNCTION update_app_banners_updated_at()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.updated_at = now();
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER trigger_app_banners_updated_at
|
||||
BEFORE UPDATE ON app_banners
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_app_banners_updated_at();
|
||||
Reference in New Issue
Block a user