Files
microdao-daarion/migrations/020_microdao_structure.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;