added mock data
This commit is contained in:
112
db/mock-data.sql
Normal file
112
db/mock-data.sql
Normal file
@@ -0,0 +1,112 @@
|
||||
-- 1. SETUP PROJECT & MEMBERSHIP
|
||||
INSERT INTO projects (id, project_name, project_desc)
|
||||
VALUES (1, 'Phoenix System Overhaul', 'Modernizing the core banking middleware and data services.');
|
||||
|
||||
-- Assign users to project (SuperAdmin, Editor, Validador, Admin)
|
||||
INSERT INTO project_members (project_id, user_id) VALUES (1, 1), (1, 2), (1, 3), (1, 4);
|
||||
|
||||
-- 2. CREATE RELATIONSHIP TYPES
|
||||
INSERT INTO relationship_types (project_id, type_name, type_description, inverse_type_name) VALUES
|
||||
(1, 'Depends On', 'Requirement cannot be completed without the target', 'Is Required By'),
|
||||
(1, 'Relates To', 'General association', 'Relates To');
|
||||
|
||||
-- 3. INSERT REQUIREMENTS
|
||||
-- Requirement A: Active (Regular)
|
||||
INSERT INTO requirements (id, project_id, user_id, tag_id, status_id, req_name, req_desc, priority_id, version)
|
||||
VALUES (101, 1, 2, 1, 2, 'API Rate Limiting', 'The system must limit requests to 100 per minute per API key.', 1, 1);
|
||||
|
||||
-- Requirement B: Draft stage
|
||||
INSERT INTO requirements (id, project_id, user_id, tag_id, status_id, req_name, req_desc, priority_id, version)
|
||||
VALUES (102, 1, 4, 2, 1, 'Dark Mode UI', 'User interface should support a high-contrast dark theme.', 2, 1);
|
||||
|
||||
-- 4. INSERT ACCEPTANCE CRITERIA
|
||||
INSERT INTO acceptance_criteria (requirement_id, criteria_text, is_accepted, last_editor_id) VALUES
|
||||
(101, 'Throttling returns 429 Too Many Requests status code.', TRUE, 3),
|
||||
(101, 'Admin users can bypass rate limits for internal testing.', FALSE, 2),
|
||||
(102, 'Contrast ratio meets WCAG 2.1 AA standards.', FALSE, 4);
|
||||
|
||||
-- 5. SIMULATE HISTORY (Requirement A was edited once)
|
||||
-- First, manually insert into history to represent the "Old" version
|
||||
INSERT INTO requirements_history (original_req_id, project_id, status_id, req_name, version, valid_from, valid_to, edited_by)
|
||||
VALUES (101, 1, 1, 'API Rate Limiting (Draft)', 1, NOW() - INTERVAL '2 days', NOW() - INTERVAL '1 day', 2);
|
||||
|
||||
-- 6. GROUP ASSOCIATIONS
|
||||
-- Linking "API Rate Limiting" to "Data Services" (id 2) and "Integration" (id 5)
|
||||
INSERT INTO requirements_groups (requirement_id, group_id) VALUES (101, 2), (101, 5);
|
||||
|
||||
-- 7. LINKS & VALIDATIONS
|
||||
INSERT INTO requirement_links (source_req_id, target_req_id, relationship_type_id, created_by)
|
||||
VALUES (101, 102, 2, 1); -- API Relates to UI
|
||||
|
||||
INSERT INTO validations (requirement_id, user_id, status_id, req_version_snapshot, comment)
|
||||
VALUES (101, 3, 1, 1, 'Logic looks sound, but check the Redis implementation for performance.');
|
||||
|
||||
-- 8. COMMENTS & REPLIES
|
||||
INSERT INTO requirement_comments (id, requirement_id, user_id, comment_text)
|
||||
VALUES (50, 101, 3, 'Do we need specific limits for different tiers of users?');
|
||||
|
||||
INSERT INTO requirement_comment_replies (parent_comment_id, user_id, reply_text)
|
||||
VALUES (50, 2, 'Yes, the Premium tier should allow up to 500 requests per minute.');
|
||||
|
||||
-- Batch inserting 20 requirements for Project 1
|
||||
INSERT INTO requirements (id, project_id, user_id, tag_id, status_id, req_name, req_desc, priority_id, version) VALUES
|
||||
(201, 1, 2, 1, 2, 'User Authentication', 'System must support OAuth2 and OpenID Connect.', 1, 1),
|
||||
(202, 1, 2, 1, 2, 'Password Reset Flow', 'Users must be able to reset passwords via email link.', 2, 1),
|
||||
(203, 1, 4, 2, 2, 'Response Time Latency', 'API responses must be under 200ms for 95% of requests.', 1, 1),
|
||||
(204, 1, 4, 2, 2, 'Concurrent Users', 'System must support 10,000 concurrent active sessions.', 1, 1),
|
||||
(205, 1, 2, 3, 1, 'GDPR Compliance', 'General data protection regulation standards must be met.', 1, 1),
|
||||
(206, 1, 2, 4, 2, 'Health Check Endpoint', 'A /health endpoint must return 200 OK status.', 3, 1),
|
||||
(207, 1, 4, 5, 2, 'Data Encryption at Rest', 'All database disks must be encrypted using AES-256.', 1, 1),
|
||||
(208, 1, 2, 6, 1, 'Legacy Bridge', 'Connectivity to the old mainframe via SOAP.', 3, 1),
|
||||
(209, 1, 2, 1, 2, 'Search Functionality', 'Users can search for requirements by name or tag.', 2, 1),
|
||||
(210, 1, 4, 2, 2, 'Mobile Responsiveness', 'The dashboard must work on screens down to 320px.', 2, 1),
|
||||
(211, 1, 2, 1, 2, 'Export to PDF', 'Users can download a PDF summary of requirements.', 3, 1),
|
||||
(212, 1, 4, 2, 2, 'System Uptime', 'The system shall maintain 99.9% availability.', 1, 1),
|
||||
(213, 1, 2, 5, 2, 'Audit Log Retention', 'Logs must be kept for 7 years for compliance.', 2, 1),
|
||||
(214, 1, 4, 1, 2, 'Batch Upload', 'Support for CSV upload of requirements.', 2, 1),
|
||||
(215, 1, 2, 3, 1, 'Multi-language Support', 'Interface available in English, Spanish, and French.', 3, 1),
|
||||
(216, 1, 4, 2, 2, 'Memory Usage Limit', 'Microservices should not exceed 512MB RAM.', 2, 1),
|
||||
(217, 1, 2, 4, 2, 'API Documentation', 'Auto-generated Swagger/OpenAPI documentation.', 2, 1),
|
||||
(218, 1, 4, 5, 2, 'Daily Backups', 'Automated backups every night at 02:00 AM.', 1, 1),
|
||||
(219, 1, 2, 6, 1, 'Third-party SSO', 'Integration with Okta and Azure AD.', 2, 1),
|
||||
(220, 1, 4, 1, 2, 'Soft Delete', 'Requirements should be marked as deleted before purging.', 2, 1);
|
||||
|
||||
-- Map some to groups
|
||||
INSERT INTO requirements_groups (requirement_id, group_id) VALUES
|
||||
(201, 7), (203, 2), (207, 4), (210, 6), (218, 5);
|
||||
|
||||
INSERT INTO acceptance_criteria (requirement_id, criteria_text, is_accepted, last_editor_id) VALUES
|
||||
(201, 'Login works with Google account.', TRUE, 1),
|
||||
(201, 'Tokens expire after 1 hour.', FALSE, 2),
|
||||
(203, 'Stress test shows <200ms with 5k users.', TRUE, 3),
|
||||
(207, 'Verify encryption keys are rotated annually.', FALSE, 4);
|
||||
|
||||
-- Edit 1: Update Priority and Description of Requirement 201
|
||||
UPDATE requirements
|
||||
SET priority_id = 1,
|
||||
req_desc = 'System must support OAuth2, OpenID Connect, and SAML 2.0.',
|
||||
last_editor_id = 1
|
||||
WHERE id = 201;
|
||||
|
||||
-- Edit 2: Change status of a Draft to Regular
|
||||
UPDATE requirements
|
||||
SET status_id = 2,
|
||||
last_editor_id = 2
|
||||
WHERE id = 205;
|
||||
|
||||
-- Edit 3: Change Acceptance Criteria (Triggers ac_history)
|
||||
UPDATE acceptance_criteria
|
||||
SET is_accepted = TRUE,
|
||||
last_editor_id = 3
|
||||
WHERE requirement_id = 201 AND criteria_text LIKE 'Tokens%';
|
||||
|
||||
-- Create a link first
|
||||
INSERT INTO requirement_links (source_req_id, target_req_id, relationship_type_id, created_by)
|
||||
VALUES (218, 207, 1, 1); -- Backups depend on Encryption
|
||||
|
||||
-- Delete a requirement (Requirement 220)
|
||||
-- This will trigger the audit and clean up links/groups/criteria via CASCADE
|
||||
DELETE FROM requirements WHERE id = 220;
|
||||
|
||||
-- Remove a group association (Requirement 210 from User Experience)
|
||||
DELETE FROM requirements_groups WHERE requirement_id = 210 AND group_id = 6;
|
||||
Reference in New Issue
Block a user