fix: guests
* make guest status a flag on users * add logout handlers * add logout notification for other users
This commit is contained in:
parent
23630b19b2
commit
60a6680eaf
21 changed files with 523 additions and 601 deletions
|
|
@ -28,9 +28,8 @@ CREATE TABLE chat.messages (
|
|||
|
||||
instance_id UUID NOT NULL REFERENCES scene.instances(id) ON DELETE CASCADE,
|
||||
|
||||
-- Sender (either user or guest)
|
||||
user_id UUID REFERENCES auth.users(id) ON DELETE SET NULL,
|
||||
guest_session_id UUID REFERENCES auth.guest_sessions(id) ON DELETE SET NULL,
|
||||
-- Sender (all users including guests - guests have 'guest' tag in auth.users)
|
||||
user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE SET NULL,
|
||||
|
||||
-- Cached sender info (in case account deleted)
|
||||
sender_name public.display_name NOT NULL,
|
||||
|
|
@ -51,13 +50,7 @@ CREATE TABLE chat.messages (
|
|||
deleted_at TIMESTAMPTZ,
|
||||
|
||||
-- Timestamps
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
|
||||
-- Either user_id or guest_session_id must be set
|
||||
CONSTRAINT chk_chat_messages_sender CHECK (
|
||||
(user_id IS NOT NULL AND guest_session_id IS NULL) OR
|
||||
(user_id IS NULL AND guest_session_id IS NOT NULL)
|
||||
)
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
COMMENT ON TABLE chat.messages IS 'Instance messages (design supports future time-based partitioning)';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue