missing sql file

This commit is contained in:
dal 2025-09-29 15:48:34 -06:00
parent 86e2bad9ea
commit a7ad7b6a84
No known key found for this signature in database
GPG Key ID: 16F4B0E1E9F61122
1 changed files with 150 additions and 0 deletions

View File

@ -0,0 +1,150 @@
-- Create Buster system user if it doesn't exist
DO $$
DECLARE
buster_user_id uuid;
BEGIN
-- Check if Buster user already exists
SELECT id INTO buster_user_id
FROM users
WHERE email = 'support@buster.so';
-- If not exists, create the user
IF buster_user_id IS NULL THEN
INSERT INTO users (
email,
name,
is_guest,
created_at,
updated_at
) VALUES (
'support@buster.so',
'Buster',
false,
now(),
now()
)
RETURNING id INTO buster_user_id;
END IF;
END $$;
--> statement-breakpoint
-- Function to add default shortcuts for an organization
CREATE OR REPLACE FUNCTION add_default_shortcuts_for_org(org_id uuid)
RETURNS void AS $$
DECLARE
buster_user_id uuid;
BEGIN
-- Get the Buster user ID
SELECT id INTO buster_user_id
FROM users
WHERE email = 'support@buster.so';
-- Insert default shortcuts if they don't exist
-- quick shortcut
INSERT INTO shortcuts (name, instructions, created_by, organization_id, share_with_workspace, created_at, updated_at)
VALUES (
'quick',
'Quickly answer my request as fast as possible. Use as little prep, thoughts, validation as possible. Again, this should be fulfilled as quickly as possible: ',
buster_user_id,
org_id,
true,
now(),
now()
)
ON CONFLICT (name, organization_id) WHERE share_with_workspace = true
DO NOTHING;
-- deep-dive shortcut
INSERT INTO shortcuts (name, instructions, created_by, organization_id, share_with_workspace, created_at, updated_at)
VALUES (
'deep-dive',
'Do a deep dive and build me a thorough report. Find meaningful insights and thoroughly explore. If I have a specific topic in mind, I''ll include it here: ',
buster_user_id,
org_id,
true,
now(),
now()
)
ON CONFLICT (name, organization_id) WHERE share_with_workspace = true
DO NOTHING;
-- csv shortcut
INSERT INTO shortcuts (name, instructions, created_by, organization_id, share_with_workspace, created_at, updated_at)
VALUES (
'csv',
'Return a table/list that I can export as a CSV. Here is my request: ',
buster_user_id,
org_id,
true,
now(),
now()
)
ON CONFLICT (name, organization_id) WHERE share_with_workspace = true
DO NOTHING;
-- suggestions shortcut
INSERT INTO shortcuts (name, instructions, created_by, organization_id, share_with_workspace, created_at, updated_at)
VALUES (
'suggestions',
'What specific questions I can ask that may be of value? The more specific and high-impact the better. If I have a specific topic in mind, I''ll include it here: ',
buster_user_id,
org_id,
true,
now(),
now()
)
ON CONFLICT (name, organization_id) WHERE share_with_workspace = true
DO NOTHING;
-- dashboard shortcut
INSERT INTO shortcuts (name, instructions, created_by, organization_id, share_with_workspace, created_at, updated_at)
VALUES (
'dashboard',
'Build me a dashboard. If I have a specific topic in mind, I''ll include it here: ',
buster_user_id,
org_id,
true,
now(),
now()
)
ON CONFLICT (name, organization_id) WHERE share_with_workspace = true
DO NOTHING;
END;
$$ LANGUAGE plpgsql;
--> statement-breakpoint
-- Backfill existing organizations with default shortcuts
DO $$
DECLARE
org_record RECORD;
BEGIN
FOR org_record IN
SELECT id
FROM organizations
WHERE deleted_at IS NULL
LOOP
PERFORM add_default_shortcuts_for_org(org_record.id);
END LOOP;
END $$;
--> statement-breakpoint
-- Create trigger function for new organizations
CREATE OR REPLACE FUNCTION add_default_shortcuts_on_org_create()
RETURNS TRIGGER AS $$
BEGIN
PERFORM add_default_shortcuts_for_org(NEW.id);
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
--> statement-breakpoint
-- Create trigger on organization insert
DROP TRIGGER IF EXISTS add_default_shortcuts_trigger ON organizations;
CREATE TRIGGER add_default_shortcuts_trigger
AFTER INSERT ON organizations
FOR EACH ROW
EXECUTE FUNCTION add_default_shortcuts_on_org_create();