-- Fix 1: unique general chat room per hotel (prevent duplicates on every open)
-- First deduplicate: keep the oldest general room per hotel, delete the rest
DELETE FROM chat_rooms
WHERE type = 'general'
  AND id NOT IN (
    SELECT DISTINCT ON (hotel_id) id
    FROM chat_rooms
    WHERE type = 'general'
    ORDER BY hotel_id, created_at ASC
  );

-- Now add the unique constraint
CREATE UNIQUE INDEX IF NOT EXISTS uq_chat_rooms_general_per_hotel
  ON chat_rooms (hotel_id)
  WHERE type = 'general';

-- Fix 2: replace 'standard' tier with 'bronze' (the UI uses bronze/silver/gold/platinum)
-- Drop the old check constraint first
ALTER TABLE guests DROP CONSTRAINT IF EXISTS guests_loyalty_tier_check;

-- Migrate existing 'standard' rows to 'bronze' (must happen BEFORE adding the new constraint)
UPDATE guests
SET loyalty_tier = 'bronze'
WHERE loyalty_tier NOT IN ('bronze', 'silver', 'gold', 'platinum');

-- Now add the correct constraint
ALTER TABLE guests
  ADD CONSTRAINT guests_loyalty_tier_check
  CHECK (loyalty_tier IN ('bronze', 'silver', 'gold', 'platinum'));
