database schema adjustments to server/realm/scene
This commit is contained in:
parent
a102c96bb4
commit
09590edd95
79 changed files with 7100 additions and 100 deletions
132
db/seeds/development.sql
Normal file
132
db/seeds/development.sql
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
-- Chattyness Development Seed Data
|
||||
-- PostgreSQL 18
|
||||
--
|
||||
-- Sample data for development and testing.
|
||||
-- Load via: psql -f seeds/development.sql
|
||||
--
|
||||
-- WARNING: This will insert data. Run only on development databases.
|
||||
|
||||
\set ON_ERROR_STOP on
|
||||
|
||||
BEGIN;
|
||||
|
||||
-- =============================================================================
|
||||
-- Test Users
|
||||
-- =============================================================================
|
||||
|
||||
INSERT INTO auth.users (id, username, email, password_hash, display_name, reputation_tier, status)
|
||||
VALUES
|
||||
('11111111-1111-1111-1111-111111111111', 'admin', 'admin@example.com',
|
||||
'$2a$12$dummy.hash.for.development.only', 'Server Admin', 'elder', 'active'),
|
||||
('22222222-2222-2222-2222-222222222222', 'alice', 'alice@example.com',
|
||||
'$2a$12$dummy.hash.for.development.only', 'Alice', 'trusted', 'active'),
|
||||
('33333333-3333-3333-3333-333333333333', 'bob', 'bob@example.com',
|
||||
'$2a$12$dummy.hash.for.development.only', 'Bob', 'established', 'active'),
|
||||
('44444444-4444-4444-4444-444444444444', 'charlie', 'charlie@example.com',
|
||||
'$2a$12$dummy.hash.for.development.only', 'Charlie', 'member', 'active')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- Make admin a server admin
|
||||
INSERT INTO server.staff (user_id, role, appointed_by)
|
||||
VALUES ('11111111-1111-1111-1111-111111111111', 'owner', '11111111-1111-1111-1111-111111111111')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- =============================================================================
|
||||
-- Sample Props in Server Library
|
||||
-- =============================================================================
|
||||
|
||||
INSERT INTO server.props (id, name, slug, description, asset_path, default_layer, default_position, tags)
|
||||
VALUES
|
||||
('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'Red Hat', 'red-hat',
|
||||
'A stylish red hat', 'props/hats/red-hat.png', 'accessories', 1, ARRAY['hat', 'accessory', 'red']),
|
||||
('bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb', 'Blue Shirt', 'blue-shirt',
|
||||
'A casual blue shirt', 'props/clothing/blue-shirt.png', 'clothes', 4, ARRAY['shirt', 'clothing', 'blue']),
|
||||
('cccccccc-cccc-cccc-cccc-cccccccccccc', 'Gold Coin', 'gold-coin',
|
||||
'A shiny gold coin', 'props/items/gold-coin.png', NULL, NULL, ARRAY['currency', 'collectible']),
|
||||
('dddddddd-dddd-dddd-dddd-dddddddddddd', 'Trophy', 'trophy',
|
||||
'Achievement trophy', 'props/items/trophy.png', NULL, NULL, ARRAY['achievement', 'collectible'])
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- =============================================================================
|
||||
-- Sample Realm
|
||||
-- =============================================================================
|
||||
|
||||
INSERT INTO realm.realms (id, name, slug, description, owner_id, privacy)
|
||||
VALUES
|
||||
('55555555-5555-5555-5555-555555555555', 'Welcome Plaza', 'welcome-plaza',
|
||||
'The main gathering place for new users', '11111111-1111-1111-1111-111111111111', 'public')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- =============================================================================
|
||||
-- Sample Scenes
|
||||
-- =============================================================================
|
||||
|
||||
INSERT INTO realm.scenes (id, realm_id, name, slug, description, bounds, is_entry_point, sort_order)
|
||||
VALUES
|
||||
('66666666-6666-6666-6666-666666666666', '55555555-5555-5555-5555-555555555555',
|
||||
'Main Hall', 'main-hall', 'The central gathering space',
|
||||
ST_MakeEnvelope(0, 0, 1024, 768, 0), true, 0),
|
||||
('77777777-7777-7777-7777-777777777777', '55555555-5555-5555-5555-555555555555',
|
||||
'Garden', 'garden', 'A peaceful outdoor garden',
|
||||
ST_MakeEnvelope(0, 0, 1280, 720, 0), false, 1)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- Set default scene for realm
|
||||
UPDATE realm.realms
|
||||
SET default_scene_id = '66666666-6666-6666-6666-666666666666'
|
||||
WHERE id = '55555555-5555-5555-5555-555555555555';
|
||||
|
||||
-- =============================================================================
|
||||
-- Sample Channels (Public instances of scenes)
|
||||
-- =============================================================================
|
||||
|
||||
INSERT INTO realm.channels (id, scene_id, channel_type, max_users)
|
||||
VALUES
|
||||
('88888888-8888-8888-8888-888888888888', '66666666-6666-6666-6666-666666666666', 'public', 50),
|
||||
('99999999-9999-9999-9999-999999999999', '77777777-7777-7777-7777-777777777777', 'public', 50)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- =============================================================================
|
||||
-- Sample Memberships
|
||||
-- =============================================================================
|
||||
|
||||
INSERT INTO realm.memberships (realm_id, user_id, role)
|
||||
VALUES
|
||||
('55555555-5555-5555-5555-555555555555', '11111111-1111-1111-1111-111111111111', 'owner'),
|
||||
('55555555-5555-5555-5555-555555555555', '22222222-2222-2222-2222-222222222222', 'moderator'),
|
||||
('55555555-5555-5555-5555-555555555555', '33333333-3333-3333-3333-333333333333', 'member'),
|
||||
('55555555-5555-5555-5555-555555555555', '44444444-4444-4444-4444-444444444444', 'member')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- =============================================================================
|
||||
-- Sample Spots
|
||||
-- =============================================================================
|
||||
|
||||
INSERT INTO realm.spots (scene_id, name, slug, region, spot_type)
|
||||
VALUES
|
||||
('66666666-6666-6666-6666-666666666666', 'Info Desk', 'info-desk',
|
||||
ST_SetSRID(ST_MakePolygon(ST_MakeLine(ARRAY[
|
||||
ST_MakePoint(100, 100), ST_MakePoint(200, 100),
|
||||
ST_MakePoint(200, 200), ST_MakePoint(100, 200),
|
||||
ST_MakePoint(100, 100)
|
||||
])), 0),
|
||||
'normal'),
|
||||
('66666666-6666-6666-6666-666666666666', 'Garden Portal', 'garden-portal',
|
||||
ST_SetSRID(ST_Buffer(ST_MakePoint(800, 400), 50), 0),
|
||||
'door')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- =============================================================================
|
||||
-- Sample Friendships
|
||||
-- =============================================================================
|
||||
|
||||
INSERT INTO auth.friendships (friend_a, friend_b, initiated_by, is_accepted, accepted_at)
|
||||
VALUES
|
||||
-- Alice and Bob are friends (Alice < Bob alphabetically in UUIDs)
|
||||
('22222222-2222-2222-2222-222222222222', '33333333-3333-3333-3333-333333333333',
|
||||
'22222222-2222-2222-2222-222222222222', true, now())
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
COMMIT;
|
||||
|
||||
\echo 'Development seed data loaded successfully!'
|
||||
Loading…
Add table
Add a link
Reference in a new issue