MIGRATION VERS GITEA

This commit is contained in:
mathis committed 2026-08-25 01:23:13 +02:00
commit 5f9d991c15
333 files changed
+108514

No files matched your search

+90
View File
@@ -0,0 +1,90 @@
-- Tables de messagerie interne (V1)
CREATE TABLE IF NOT EXISTS public.messagerie_threads (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS public.messagerie_participants (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
thread_id UUID NOT NULL REFERENCES public.messagerie_threads(id) ON DELETE CASCADE,
user_id UUID NOT NULL REFERENCES public.utilisateurs(id) ON DELETE CASCADE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(thread_id, user_id)
);
CREATE TABLE IF NOT EXISTS public.messagerie_messages (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
thread_id UUID NOT NULL REFERENCES public.messagerie_threads(id) ON DELETE CASCADE,
sender_id UUID NOT NULL REFERENCES public.utilisateurs(id) ON DELETE CASCADE,
contenu TEXT NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_messagerie_participants_user_id ON public.messagerie_participants(user_id);
CREATE INDEX IF NOT EXISTS idx_messagerie_messages_thread_id ON public.messagerie_messages(thread_id);
CREATE INDEX IF NOT EXISTS idx_messagerie_messages_created_at ON public.messagerie_messages(created_at DESC);
-- RLS simple: participant du thread uniquement
ALTER TABLE public.messagerie_threads ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.messagerie_participants ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.messagerie_messages ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS messagerie_threads_select ON public.messagerie_threads;
CREATE POLICY messagerie_threads_select ON public.messagerie_threads
FOR SELECT TO anon
USING (
EXISTS (
SELECT 1 FROM public.messagerie_participants p
WHERE p.thread_id = messagerie_threads.id
)
);
DROP POLICY IF EXISTS messagerie_threads_insert ON public.messagerie_threads;
CREATE POLICY messagerie_threads_insert ON public.messagerie_threads
FOR INSERT TO anon
WITH CHECK (true);
DROP POLICY IF EXISTS messagerie_threads_update ON public.messagerie_threads;
CREATE POLICY messagerie_threads_update ON public.messagerie_threads
FOR UPDATE TO anon
USING (
EXISTS (
SELECT 1 FROM public.messagerie_participants p
WHERE p.thread_id = messagerie_threads.id
)
)
WITH CHECK (true);
DROP POLICY IF EXISTS messagerie_participants_select ON public.messagerie_participants;
CREATE POLICY messagerie_participants_select ON public.messagerie_participants
FOR SELECT TO anon
USING (true);
DROP POLICY IF EXISTS messagerie_participants_insert ON public.messagerie_participants;
CREATE POLICY messagerie_participants_insert ON public.messagerie_participants
FOR INSERT TO anon
WITH CHECK (true);
DROP POLICY IF EXISTS messagerie_messages_select ON public.messagerie_messages;
CREATE POLICY messagerie_messages_select ON public.messagerie_messages
FOR SELECT TO anon
USING (
EXISTS (
SELECT 1 FROM public.messagerie_participants p
WHERE p.thread_id = messagerie_messages.thread_id
)
);
DROP POLICY IF EXISTS messagerie_messages_insert ON public.messagerie_messages;
CREATE POLICY messagerie_messages_insert ON public.messagerie_messages
FOR INSERT TO anon
WITH CHECK (
EXISTS (
SELECT 1 FROM public.messagerie_participants p
WHERE p.thread_id = messagerie_messages.thread_id
AND p.user_id = messagerie_messages.sender_id
)
);