88 lines
4.1 KiB
SQL
88 lines
4.1 KiB
SQL
-- 1. MicroDAOs Table
|
|
CREATE TABLE IF NOT EXISTS microdaos (
|
|
id text PRIMARY KEY,
|
|
slug text UNIQUE NOT NULL,
|
|
name text NOT NULL,
|
|
description text,
|
|
logo_url text,
|
|
owner_agent_id text, -- References agents(id) deferred
|
|
created_at timestamptz DEFAULT now(),
|
|
updated_at timestamptz DEFAULT now()
|
|
);
|
|
|
|
-- 2. Agent Matrix Config
|
|
CREATE TABLE IF NOT EXISTS agent_matrix_config (
|
|
agent_id text PRIMARY KEY REFERENCES agents(id) ON DELETE CASCADE,
|
|
matrix_user_id text,
|
|
matrix_access_token text,
|
|
primary_room_id text,
|
|
is_enabled boolean DEFAULT true,
|
|
updated_at timestamptz DEFAULT now()
|
|
);
|
|
|
|
-- 3. MicroDAO Members
|
|
CREATE TABLE IF NOT EXISTS microdao_members (
|
|
microdao_id text REFERENCES microdaos(id) ON DELETE CASCADE,
|
|
agent_id text REFERENCES agents(id) ON DELETE CASCADE,
|
|
role text DEFAULT 'member',
|
|
joined_at timestamptz DEFAULT now(),
|
|
PRIMARY KEY (microdao_id, agent_id)
|
|
);
|
|
|
|
-- 4. Insert Orchestrator Agents (Upsert)
|
|
INSERT INTO agents (id, display_name, kind, node_id, status, is_active, is_public) VALUES
|
|
('daarwizz', 'DAARWIZZ', 'orchestrator', 'NODE1', 'online', true, true),
|
|
('helion', 'Helion', 'orchestrator', 'NODE1', 'online', true, true),
|
|
('greenfood', 'GreenFood Bot', 'orchestrator', 'NODE1', 'online', true, true),
|
|
('druid', 'Druid', 'orchestrator', 'NODE1', 'online', true, true),
|
|
('clan', 'Clan Bot', 'orchestrator', 'NODE1', 'online', true, true),
|
|
('eonarch', 'Eonarch', 'orchestrator', 'NODE1', 'online', true, true),
|
|
('nutra', 'Nutra Bot', 'orchestrator', 'NODE1', 'online', true, true),
|
|
('soul', 'Soul Bot', 'orchestrator', 'NODE1', 'online', true, true),
|
|
('yaromir', 'Yaromir', 'orchestrator', 'NODE1', 'online', true, true)
|
|
ON CONFLICT (id) DO UPDATE SET
|
|
node_id = EXCLUDED.node_id,
|
|
kind = EXCLUDED.kind,
|
|
is_public = EXCLUDED.is_public;
|
|
|
|
-- 5. Insert MicroDAOs
|
|
INSERT INTO microdaos (id, name, slug, owner_agent_id, description, logo_url) VALUES
|
|
('dao_daarion', 'DAARION DAO', 'daarion', 'daarwizz', 'Main ecosystem DAO', '/assets/logos/daarion.png'),
|
|
('dao_energy', 'Energy Union', 'energy-union', 'helion', 'Energy optimization & sustainability', '/assets/logos/helion.png'),
|
|
('dao_greenfood', 'GreenFood DAO', 'greenfood', 'greenfood', 'Sustainable food systems', '/assets/logos/greenfood.png'),
|
|
('dao_druid', 'Druid Circle', 'druid', 'druid', 'Nature & wisdom preservation', '/assets/logos/druid.png'),
|
|
('dao_clan', 'Clan Network', 'clan', 'clan', 'Community & social bonding', '/assets/logos/clan.png'),
|
|
('dao_eonarch', 'Eonarch DAO', 'eonarch', 'eonarch', 'Long-term architectural planning', '/assets/logos/eonarch.png'),
|
|
('dao_nutra', 'Nutra Health', 'nutra', 'nutra', 'Health & nutrition monitoring', '/assets/logos/nutra.png'),
|
|
('dao_soul', 'Soul Protocol', 'soul', 'soul', 'Identity & reputation systems', '/assets/logos/soul.png'),
|
|
('dao_yaromir', 'Yaromir Tribe', 'yaromir', 'yaromir', 'Cultural heritage & storytelling', '/assets/logos/yaromir.png')
|
|
ON CONFLICT (id) DO UPDATE SET
|
|
owner_agent_id = EXCLUDED.owner_agent_id;
|
|
|
|
-- 6. Insert Matrix Configs (Placeholders)
|
|
INSERT INTO agent_matrix_config (agent_id, matrix_user_id) VALUES
|
|
('daarwizz', '@daarwizz:daarion.city'),
|
|
('helion', '@helion:daarion.city'),
|
|
('greenfood', '@greenfood:daarion.city'),
|
|
('druid', '@druid:daarion.city'),
|
|
('clan', '@clan:daarion.city'),
|
|
('eonarch', '@eonarch:daarion.city'),
|
|
('nutra', '@nutra:daarion.city'),
|
|
('soul', '@soul:daarion.city'),
|
|
('yaromir', '@yaromir:daarion.city')
|
|
ON CONFLICT (agent_id) DO NOTHING;
|
|
|
|
-- 7. Link Owners to DAOs
|
|
INSERT INTO microdao_members (microdao_id, agent_id, role) VALUES
|
|
('dao_daarion', 'daarwizz', 'owner'),
|
|
('dao_energy', 'helion', 'owner'),
|
|
('dao_greenfood', 'greenfood', 'owner'),
|
|
('dao_druid', 'druid', 'owner'),
|
|
('dao_clan', 'clan', 'owner'),
|
|
('dao_eonarch', 'eonarch', 'owner'),
|
|
('dao_nutra', 'nutra', 'owner'),
|
|
('dao_soul', 'soul', 'owner'),
|
|
('dao_yaromir', 'yaromir', 'owner')
|
|
ON CONFLICT DO NOTHING;
|
|
|