Newer
Older
pivot-app / src / main / resources / db / migration / V5__create_test_objects.sql
-- V5__create_test_objects.sql
-- Create test objects (Account, Contact) with fields for benchmarking

-- ============================================
-- Create Account object for all test organizations
-- ============================================
INSERT INTO mt_objects (obj_id, org_id, obj_name, label, plural_label, is_custom) VALUES
    (1, 1, 'Account', 'Account', 'Accounts', FALSE),
    (2, 1, 'Contact', 'Contact', 'Contacts', FALSE),
    (3, 2, 'Account', 'Account', 'Accounts', FALSE),
    (4, 2, 'Contact', 'Contact', 'Contacts', FALSE),
    (5, 3, 'Account', 'Account', 'Accounts', FALSE),
    (6, 3, 'Contact', 'Contact', 'Contacts', FALSE);

-- ============================================
-- Account fields for Org 1 (slots 0-9)
-- ============================================
INSERT INTO mt_fields (org_id, obj_id, field_name, label, data_type, field_num, is_indexed, is_unique, is_required, length) VALUES
    -- Account fields (obj_id = 1 for org 1)
    (1, 1, 'AccountNumber', 'Account Number', 'text', 0, TRUE, TRUE, FALSE, 40),
    (1, 1, 'Industry', 'Industry', 'picklist', 1, TRUE, FALSE, FALSE, NULL),
    (1, 1, 'AnnualRevenue', 'Annual Revenue', 'number', 2, TRUE, FALSE, FALSE, NULL),
    (1, 1, 'NumberOfEmployees', 'Employees', 'number', 3, TRUE, FALSE, FALSE, NULL),
    (1, 1, 'Phone', 'Phone', 'phone', 4, FALSE, FALSE, FALSE, 40),
    (1, 1, 'Website', 'Website', 'url', 5, FALSE, FALSE, FALSE, 255),
    (1, 1, 'BillingCity', 'Billing City', 'text', 6, TRUE, FALSE, FALSE, 40),
    (1, 1, 'BillingCountry', 'Billing Country', 'text', 7, TRUE, FALSE, FALSE, 80),
    (1, 1, 'Type', 'Type', 'picklist', 8, TRUE, FALSE, FALSE, NULL),
    (1, 1, 'Rating', 'Rating', 'picklist', 9, TRUE, FALSE, FALSE, NULL);

-- ============================================
-- Contact fields for Org 1 (slots 0-14)
-- ============================================
INSERT INTO mt_fields (org_id, obj_id, field_name, label, data_type, field_num, is_indexed, is_unique, is_required, length, reference_obj_id, relationship_type) VALUES
    -- Contact fields (obj_id = 2 for org 1)
    (1, 2, 'FirstName', 'First Name', 'text', 0, FALSE, FALSE, FALSE, 40, NULL, NULL),
    (1, 2, 'LastName', 'Last Name', 'text', 1, TRUE, FALSE, TRUE, 80, NULL, NULL),
    (1, 2, 'Email', 'Email', 'email', 2, TRUE, TRUE, FALSE, 80, NULL, NULL),
    (1, 2, 'Phone', 'Phone', 'phone', 3, FALSE, FALSE, FALSE, 40, NULL, NULL),
    (1, 2, 'MobilePhone', 'Mobile', 'phone', 4, FALSE, FALSE, FALSE, 40, NULL, NULL),
    (1, 2, 'Title', 'Title', 'text', 5, FALSE, FALSE, FALSE, 128, NULL, NULL),
    (1, 2, 'Department', 'Department', 'text', 6, TRUE, FALSE, FALSE, 80, NULL, NULL),
    (1, 2, 'Birthdate', 'Birthdate', 'date', 7, FALSE, FALSE, FALSE, NULL, NULL, NULL),
    (1, 2, 'MailingCity', 'Mailing City', 'text', 8, TRUE, FALSE, FALSE, 40, NULL, NULL),
    (1, 2, 'MailingCountry', 'Mailing Country', 'text', 9, TRUE, FALSE, FALSE, 80, NULL, NULL),
    (1, 2, 'LeadSource', 'Lead Source', 'picklist', 10, TRUE, FALSE, FALSE, NULL, NULL, NULL),
    (1, 2, 'AccountId', 'Account', 'lookup', 11, TRUE, FALSE, FALSE, NULL, 1, 'lookup'),
    (1, 2, 'Level', 'Level', 'picklist', 12, TRUE, FALSE, FALSE, NULL, NULL, NULL),
    (1, 2, 'Languages', 'Languages', 'text', 13, FALSE, FALSE, FALSE, 100, NULL, NULL),
    (1, 2, 'HasOptedOutOfEmail', 'Email Opt Out', 'boolean', 14, FALSE, FALSE, FALSE, NULL, NULL, NULL);

-- ============================================
-- Copy same structure for Org 2 (obj_id 3, 4)
-- ============================================
INSERT INTO mt_fields (org_id, obj_id, field_name, label, data_type, field_num, is_indexed, is_unique, is_required, length) VALUES
    (2, 3, 'AccountNumber', 'Account Number', 'text', 0, TRUE, TRUE, FALSE, 40),
    (2, 3, 'Industry', 'Industry', 'picklist', 1, TRUE, FALSE, FALSE, NULL),
    (2, 3, 'AnnualRevenue', 'Annual Revenue', 'number', 2, TRUE, FALSE, FALSE, NULL),
    (2, 3, 'NumberOfEmployees', 'Employees', 'number', 3, TRUE, FALSE, FALSE, NULL),
    (2, 3, 'Phone', 'Phone', 'phone', 4, FALSE, FALSE, FALSE, 40),
    (2, 3, 'Website', 'Website', 'url', 5, FALSE, FALSE, FALSE, 255),
    (2, 3, 'BillingCity', 'Billing City', 'text', 6, TRUE, FALSE, FALSE, 40),
    (2, 3, 'BillingCountry', 'Billing Country', 'text', 7, TRUE, FALSE, FALSE, 80),
    (2, 3, 'Type', 'Type', 'picklist', 8, TRUE, FALSE, FALSE, NULL),
    (2, 3, 'Rating', 'Rating', 'picklist', 9, TRUE, FALSE, FALSE, NULL);

INSERT INTO mt_fields (org_id, obj_id, field_name, label, data_type, field_num, is_indexed, is_unique, is_required, length, reference_obj_id, relationship_type) VALUES
    (2, 4, 'FirstName', 'First Name', 'text', 0, FALSE, FALSE, FALSE, 40, NULL, NULL),
    (2, 4, 'LastName', 'Last Name', 'text', 1, TRUE, FALSE, TRUE, 80, NULL, NULL),
    (2, 4, 'Email', 'Email', 'email', 2, TRUE, TRUE, FALSE, 80, NULL, NULL),
    (2, 4, 'Phone', 'Phone', 'phone', 3, FALSE, FALSE, FALSE, 40, NULL, NULL),
    (2, 4, 'MobilePhone', 'Mobile', 'phone', 4, FALSE, FALSE, FALSE, 40, NULL, NULL),
    (2, 4, 'Title', 'Title', 'text', 5, FALSE, FALSE, FALSE, 128, NULL, NULL),
    (2, 4, 'Department', 'Department', 'text', 6, TRUE, FALSE, FALSE, 80, NULL, NULL),
    (2, 4, 'Birthdate', 'Birthdate', 'date', 7, FALSE, FALSE, FALSE, NULL, NULL, NULL),
    (2, 4, 'MailingCity', 'Mailing City', 'text', 8, TRUE, FALSE, FALSE, 40, NULL, NULL),
    (2, 4, 'MailingCountry', 'Mailing Country', 'text', 9, TRUE, FALSE, FALSE, 80, NULL, NULL),
    (2, 4, 'LeadSource', 'Lead Source', 'picklist', 10, TRUE, FALSE, FALSE, NULL, NULL, NULL),
    (2, 4, 'AccountId', 'Account', 'lookup', 11, TRUE, FALSE, FALSE, NULL, 3, 'lookup'),
    (2, 4, 'Level', 'Level', 'picklist', 12, TRUE, FALSE, FALSE, NULL, NULL, NULL),
    (2, 4, 'Languages', 'Languages', 'text', 13, FALSE, FALSE, FALSE, 100, NULL, NULL),
    (2, 4, 'HasOptedOutOfEmail', 'Email Opt Out', 'boolean', 14, FALSE, FALSE, FALSE, NULL, NULL, NULL);

-- ============================================
-- Copy same structure for Org 3 (obj_id 5, 6)
-- ============================================
INSERT INTO mt_fields (org_id, obj_id, field_name, label, data_type, field_num, is_indexed, is_unique, is_required, length) VALUES
    (3, 5, 'AccountNumber', 'Account Number', 'text', 0, TRUE, TRUE, FALSE, 40),
    (3, 5, 'Industry', 'Industry', 'picklist', 1, TRUE, FALSE, FALSE, NULL),
    (3, 5, 'AnnualRevenue', 'Annual Revenue', 'number', 2, TRUE, FALSE, FALSE, NULL),
    (3, 5, 'NumberOfEmployees', 'Employees', 'number', 3, TRUE, FALSE, FALSE, NULL),
    (3, 5, 'Phone', 'Phone', 'phone', 4, FALSE, FALSE, FALSE, 40),
    (3, 5, 'Website', 'Website', 'url', 5, FALSE, FALSE, FALSE, 255),
    (3, 5, 'BillingCity', 'Billing City', 'text', 6, TRUE, FALSE, FALSE, 40),
    (3, 5, 'BillingCountry', 'Billing Country', 'text', 7, TRUE, FALSE, FALSE, 80),
    (3, 5, 'Type', 'Type', 'picklist', 8, TRUE, FALSE, FALSE, NULL),
    (3, 5, 'Rating', 'Rating', 'picklist', 9, TRUE, FALSE, FALSE, NULL);

INSERT INTO mt_fields (org_id, obj_id, field_name, label, data_type, field_num, is_indexed, is_unique, is_required, length, reference_obj_id, relationship_type) VALUES
    (3, 6, 'FirstName', 'First Name', 'text', 0, FALSE, FALSE, FALSE, 40, NULL, NULL),
    (3, 6, 'LastName', 'Last Name', 'text', 1, TRUE, FALSE, TRUE, 80, NULL, NULL),
    (3, 6, 'Email', 'Email', 'email', 2, TRUE, TRUE, FALSE, 80, NULL, NULL),
    (3, 6, 'Phone', 'Phone', 'phone', 3, FALSE, FALSE, FALSE, 40, NULL, NULL),
    (3, 6, 'MobilePhone', 'Mobile', 'phone', 4, FALSE, FALSE, FALSE, 40, NULL, NULL),
    (3, 6, 'Title', 'Title', 'text', 5, FALSE, FALSE, FALSE, 128, NULL, NULL),
    (3, 6, 'Department', 'Department', 'text', 6, TRUE, FALSE, FALSE, 80, NULL, NULL),
    (3, 6, 'Birthdate', 'Birthdate', 'date', 7, FALSE, FALSE, FALSE, NULL, NULL, NULL),
    (3, 6, 'MailingCity', 'Mailing City', 'text', 8, TRUE, FALSE, FALSE, 40, NULL, NULL),
    (3, 6, 'MailingCountry', 'Mailing Country', 'text', 9, TRUE, FALSE, FALSE, 80, NULL, NULL),
    (3, 6, 'LeadSource', 'Lead Source', 'picklist', 10, TRUE, FALSE, FALSE, NULL, NULL, NULL),
    (3, 6, 'AccountId', 'Account', 'lookup', 11, TRUE, FALSE, FALSE, NULL, 5, 'lookup'),
    (3, 6, 'Level', 'Level', 'picklist', 12, TRUE, FALSE, FALSE, NULL, NULL, NULL),
    (3, 6, 'Languages', 'Languages', 'text', 13, FALSE, FALSE, FALSE, 100, NULL, NULL),
    (3, 6, 'HasOptedOutOfEmail', 'Email Opt Out', 'boolean', 14, FALSE, FALSE, FALSE, NULL, NULL, NULL);

-- Reset sequences
SELECT setval('mt_objects_obj_id_seq', 10);
SELECT setval('mt_fields_field_id_seq', 100);