feat: create tables and seed data for mvp tables
This commit is contained in:
		
							parent
							
								
									b637762744
								
							
						
					
					
						commit
						77559d78d9
					
				
							
								
								
									
										112
									
								
								.container_volume/scripts/01_create_tables.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								.container_volume/scripts/01_create_tables.sql
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,112 @@
 | 
				
			|||||||
 | 
					CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS dev_users;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS client_users;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS clients;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS projects;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS client_user_project_joins;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS dev_user_project_joins;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS statuses;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS tasks;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DROP TABLE IF EXISTS entry_logs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE IF NOT EXISTS dev_users (
 | 
				
			||||||
 | 
					    id UUID PRIMARY KEY DEFAULT (uuid_generate_v4()),
 | 
				
			||||||
 | 
					    first_name character varying(255) NOT NULL,
 | 
				
			||||||
 | 
					    last_name character varying(255) NOT NULL,
 | 
				
			||||||
 | 
					    email character varying(255) UNIQUE NOT NULL,
 | 
				
			||||||
 | 
					    phone_number character varying(255),
 | 
				
			||||||
 | 
					    created_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    updated_at timestamp WITH time zone DEFAULT NOW()
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE IF NOT EXISTS clients (
 | 
				
			||||||
 | 
					    id UUID PRIMARY KEY DEFAULT (uuid_generate_v4()),
 | 
				
			||||||
 | 
					    name character varying(255) NOT NULL,
 | 
				
			||||||
 | 
					    abbreviation character varying(255),
 | 
				
			||||||
 | 
					    website character varying(255),
 | 
				
			||||||
 | 
					    phone_number character varying(255),
 | 
				
			||||||
 | 
					    created_at timestamp WITH time zone DEFAULT NOW() NOT NULL,
 | 
				
			||||||
 | 
					    updated_at timestamp WITH time zone DEFAULT NOW() NOT NULL
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE IF NOT EXISTS client_users (
 | 
				
			||||||
 | 
					    id UUID PRIMARY KEY DEFAULT (uuid_generate_v4()),
 | 
				
			||||||
 | 
					    first_name character varying(255) NOT NULL,
 | 
				
			||||||
 | 
					    last_name character varying(255) NOT NULL,
 | 
				
			||||||
 | 
					    email character varying(255) UNIQUE NOT NULL,
 | 
				
			||||||
 | 
					    phone_number character varying(255),
 | 
				
			||||||
 | 
					    created_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    updated_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    client_id UUID REFERENCES clients(id),
 | 
				
			||||||
 | 
					    role_in_company character varying(255) NOT NULL
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE IF NOT EXISTS projects (
 | 
				
			||||||
 | 
					    id UUID PRIMARY KEY DEFAULT (uuid_generate_v4()),
 | 
				
			||||||
 | 
					    name character varying(255) entry_logsNOT NULL,
 | 
				
			||||||
 | 
					    abbreviation character varying(255),
 | 
				
			||||||
 | 
					    description TEXT,
 | 
				
			||||||
 | 
					    created_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    updated_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    client_id UUID REFERENCES clients(id)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE IF NOT EXISTS client_user_project_joins (
 | 
				
			||||||
 | 
					    id UUID PRIMARY KEY DEFAULT (uuid_generate_v4()),
 | 
				
			||||||
 | 
					    client_id UUID NOT NULL REFERENCES clients(id),
 | 
				
			||||||
 | 
					    project_id UUID NOT NULL REFERENCES projects(id),
 | 
				
			||||||
 | 
					    created_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    updated_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    is_stakeholder BOOLEAN DEFAULT FALSE,
 | 
				
			||||||
 | 
					    notes TEXT
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE IF NOT EXISTS dev_user_project_joins (
 | 
				
			||||||
 | 
					    id UUID PRIMARY KEY DEFAULT (uuid_generate_v4()),
 | 
				
			||||||
 | 
					    dev_user_id UUID NOT NULL REFERENCES dev_users(id),
 | 
				
			||||||
 | 
					    project_id UUID NOT NULL REFentry_logsERENCES projects(id),
 | 
				
			||||||
 | 
					    created_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    updated_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    is_lead BOOLEAN DEFAULT FALSE,
 | 
				
			||||||
 | 
					    notes TEXT
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE IF NOT EXISTS statuses (
 | 
				
			||||||
 | 
					    id UUID PRIMARY KEY DEFAULT (uuid_generate_v4()),
 | 
				
			||||||
 | 
					    name character varying(255) NOT NULL,
 | 
				
			||||||
 | 
					    description TEXT,
 | 
				
			||||||
 | 
					    created_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    updated_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    deleted_at timestamp WITH time zone
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE IF NOT EXISTS tasks (
 | 
				
			||||||
 | 
					    id UUID PRIMARY KEY DEFAULT (uuid_generate_v4()),
 | 
				
			||||||
 | 
					    project_id UUID NOT NULL REFERENCES projects(id),
 | 
				
			||||||
 | 
					    status_id UUID NOT NULL REFERENCES statuses(id),
 | 
				
			||||||
 | 
					    created_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    updated_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    expected_delivery_date timestamp WITH time zone,
 | 
				
			||||||
 | 
					    final_delivery_date timestamp WITH time zone,
 | 
				
			||||||
 | 
					    description TEXT
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE IF NOT EXISTS entry_logs (
 | 
				
			||||||
 | 
					    id UUID PRIMARY KEY DEFAULT (uuid_generate_v4()),
 | 
				
			||||||
 | 
					    project_id UUID NOT NULL REFERENCES projects(id),
 | 
				
			||||||
 | 
					    task_id UUID NOT NULL REFERENCES tasks(id),
 | 
				
			||||||
 | 
					    created_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    updated_at timestamp WITH time zone DEFAULT NOW(),
 | 
				
			||||||
 | 
					    start_time timestamp WITH time zone,
 | 
				
			||||||
 | 
					    end_time timestamp WITH time zone,
 | 
				
			||||||
 | 
					    description TEXT
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
@ -1,27 +0,0 @@
 | 
				
			|||||||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DROP TABLE dev_users
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CREATE TABLE IF NOT EXISTS dev_users (
 | 
					 | 
				
			||||||
  id UUID PRIMARY KEY DEFAULT (uuid_generate_v4()),
 | 
					 | 
				
			||||||
  first_name character varying(255) NOT NULL,
 | 
					 | 
				
			||||||
  last_name character varying(255) NOT NULL,
 | 
					 | 
				
			||||||
  email character varying(255) UNIQUE NOT NULL,
 | 
					 | 
				
			||||||
  phone_number character varying(255),
 | 
					 | 
				
			||||||
  created_at timestamp with time zone DEFAULT now(),
 | 
					 | 
				
			||||||
  updated_at timestamp with time zone DEFAULT now()
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Seed Data
 | 
					 | 
				
			||||||
INSERT INTO dev_users (first_name, last_name, email, phone_number, created_at, updated_at)
 | 
					 | 
				
			||||||
VALUES
 | 
					 | 
				
			||||||
('John', 'Doe', 'john.doe@example.com', '(555) 123-4567', now(), now()),
 | 
					 | 
				
			||||||
('Jane', 'Smith', 'jane.smith@example.com', '(555) 123-4568', now(), now()),
 | 
					 | 
				
			||||||
('Bob', 'Johnson', 'bob.johnson@example.com', '(555) 123-4569', now(), now()),
 | 
					 | 
				
			||||||
('Alice', 'Brown', 'alice.brown@example.com', '(555) 123-4570', now(), now()),
 | 
					 | 
				
			||||||
('Charlie', 'Wilson', 'charlie.wilson@example.com', '(555) 123-4571', now(), now()),
 | 
					 | 
				
			||||||
('Eva', 'Davis', 'eva.davis@example.com', '(555) 123-4572', now(), now()),
 | 
					 | 
				
			||||||
('Frank', 'Miller', 'frank.miller@example.com', '(555) 123-4573', now(), now()),
 | 
					 | 
				
			||||||
('Grace', 'Taylor', 'grace.taylor@example.com', '(555) 123-4574', now(), now()),
 | 
					 | 
				
			||||||
('Henry', 'Anderson', 'henry.anderson@example.com', '(555) 123-4575', now(), now()),
 | 
					 | 
				
			||||||
('Isabella', 'King', 'isabella.king@example.com', '(555) 123-4576', now(), now());
 | 
					 | 
				
			||||||
							
								
								
									
										277
									
								
								.container_volume/scripts/02_seed_tables.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										277
									
								
								.container_volume/scripts/02_seed_tables.sql
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,277 @@
 | 
				
			|||||||
 | 
					INSERT INTO
 | 
				
			||||||
 | 
					    dev_users (
 | 
				
			||||||
 | 
					        first_name,
 | 
				
			||||||
 | 
					        last_name,
 | 
				
			||||||
 | 
					        email,
 | 
				
			||||||
 | 
					        phone_number,
 | 
				
			||||||
 | 
					        created_at,
 | 
				
			||||||
 | 
					        updated_at
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					VALUES
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        'John',
 | 
				
			||||||
 | 
					        'Doe',
 | 
				
			||||||
 | 
					        'john.doe@example.com',
 | 
				
			||||||
 | 
					        '(555) 123-4567',
 | 
				
			||||||
 | 
					        NOW(),
 | 
				
			||||||
 | 
					        NOW()
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        'Jane',
 | 
				
			||||||
 | 
					        'Smith',
 | 
				
			||||||
 | 
					        'jane.smith@example.com',
 | 
				
			||||||
 | 
					        '(555) 123-4568',
 | 
				
			||||||
 | 
					        NOW(),
 | 
				
			||||||
 | 
					        NOW()
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        'Isabella',
 | 
				
			||||||
 | 
					        'King',
 | 
				
			||||||
 | 
					        'isabella.king@example.com',
 | 
				
			||||||
 | 
					        '(555) 123-4576',
 | 
				
			||||||
 | 
					        NOW(),
 | 
				
			||||||
 | 
					        NOW()
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO
 | 
				
			||||||
 | 
					    clients(name, abbreviation, website)
 | 
				
			||||||
 | 
					VALUES
 | 
				
			||||||
 | 
					    ('Tech Corp', 'TC', 'techcorp.com'),
 | 
				
			||||||
 | 
					    ('Health Care Inc', 'HCI', 'healthcareinc.com');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO
 | 
				
			||||||
 | 
					    client_users(
 | 
				
			||||||
 | 
					        first_name,
 | 
				
			||||||
 | 
					        last_name,
 | 
				
			||||||
 | 
					        email,
 | 
				
			||||||
 | 
					        phone_number,
 | 
				
			||||||
 | 
					        role_in_company,
 | 
				
			||||||
 | 
					        client_id
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					VALUES
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        'John',
 | 
				
			||||||
 | 
					        'Doe',
 | 
				
			||||||
 | 
					        'john.doe@techcorp.com',
 | 
				
			||||||
 | 
					        '+1 555-0101',
 | 
				
			||||||
 | 
					        'Developer',
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                clients
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Tech Corp'
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        'Jane',
 | 
				
			||||||
 | 
					        'Smith',
 | 
				
			||||||
 | 
					        'jane.smith@healthcareinc.com',
 | 
				
			||||||
 | 
					        '+1 555-0202',
 | 
				
			||||||
 | 
					        'Project Manager',
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                clients
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Health Care Inc'
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO
 | 
				
			||||||
 | 
					    projects(name, abbreviation, description, client_id)
 | 
				
			||||||
 | 
					VALUES
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        'Web Platform',
 | 
				
			||||||
 | 
					        'WP',
 | 
				
			||||||
 | 
					        'Core web application platform',
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                clients
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Tech Corp'
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        'Mobile App',
 | 
				
			||||||
 | 
					        'MA',
 | 
				
			||||||
 | 
					        'Mobile frontend application',
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                clients
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Tech Corp'
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        'EHR System',
 | 
				
			||||||
 | 
					        'EHR',
 | 
				
			||||||
 | 
					        'Electronic Health Records system',
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                clients
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Health Care Inc'
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO
 | 
				
			||||||
 | 
					    statuses(name)
 | 
				
			||||||
 | 
					VALUES
 | 
				
			||||||
 | 
					    ('In Progress'),
 | 
				
			||||||
 | 
					    ('Completed');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO
 | 
				
			||||||
 | 
					    tasks(project_id, status_id, description)
 | 
				
			||||||
 | 
					VALUES
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                projects
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Web Platform'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                statuses
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'In Progress'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Backend API Development'
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                projects
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Mobile App'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                statuses
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Completed'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'iOS Implementation'
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO
 | 
				
			||||||
 | 
					    client_user_project_joins(client_id, project_id, is_stakeholder)
 | 
				
			||||||
 | 
					VALUES
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                clients
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Tech Corp'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                projects
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Web Platform'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        FALSE
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                clients
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Tech Corp'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                projects
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Mobile App'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        TRUE
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                clients
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Health Care Inc'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                projects
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'EHR System'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        TRUE
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO
 | 
				
			||||||
 | 
					    dev_user_project_joins(dev_user_id, project_id, is_lead, notes)
 | 
				
			||||||
 | 
					VALUES
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                dev_users
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                email = 'john.doe@example.com'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                projects
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Web Platform'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        TRUE,
 | 
				
			||||||
 | 
					        'Lead Developer'
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                dev_users
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                email = 'jane.smith@example.com'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            SELECT
 | 
				
			||||||
 | 
					                id
 | 
				
			||||||
 | 
					            FROM
 | 
				
			||||||
 | 
					                projects
 | 
				
			||||||
 | 
					            WHERE
 | 
				
			||||||
 | 
					                name = 'Mobile App'
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        TRUE,
 | 
				
			||||||
 | 
					        'Lead Developer'
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
@ -2,12 +2,10 @@ package entities
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"github.com/google/uuid"
 | 
						"github.com/google/uuid"
 | 
				
			||||||
	"gorm.io/gorm"
 | 
					 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Client struct {
 | 
					type Client struct {
 | 
				
			||||||
	gorm.Model
 | 
					 | 
				
			||||||
	ID           uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
						ID           uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
				
			||||||
	Name         string
 | 
						Name         string
 | 
				
			||||||
	Abbreviation string
 | 
						Abbreviation string
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										18
									
								
								entities/EntryLog.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								entities/EntryLog.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					package entities
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"github.com/google/uuid"
 | 
				
			||||||
 | 
						"time"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type EntryLog struct {
 | 
				
			||||||
 | 
						ID          uuid.UUID  `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
				
			||||||
 | 
						ProjectId   uuid.UUID  `gorm:"index"`
 | 
				
			||||||
 | 
						TaskId      uuid.UUID  `gorm:"index"`
 | 
				
			||||||
 | 
						CreatedAt   time.Time  `gorm:"auto_now:Add"`
 | 
				
			||||||
 | 
						UpdatedAt   time.Time  `gorm:"auto_now:update"`
 | 
				
			||||||
 | 
						StartTime   time.Time  `gorm:"default:null"`
 | 
				
			||||||
 | 
						EndTime     time.Time  `gorm:"default:null"`
 | 
				
			||||||
 | 
						Description string     `gorm:",omitempty" json:",omitempty"`
 | 
				
			||||||
 | 
						DeletedAt   *time.Time `gorm:"default:null"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,19 +0,0 @@
 | 
				
			|||||||
package entities
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"github.com/google/uuid"
 | 
					 | 
				
			||||||
	"gorm.io/gorm"
 | 
					 | 
				
			||||||
	"time"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type Log struct {
 | 
					 | 
				
			||||||
	gorm.Model
 | 
					 | 
				
			||||||
	ID          uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
					 | 
				
			||||||
	ProjectId   uuid.UUID
 | 
					 | 
				
			||||||
	TaskId      uuid.UUID
 | 
					 | 
				
			||||||
	CreatedAt   time.Time
 | 
					 | 
				
			||||||
	UpdatedAt   time.Time
 | 
					 | 
				
			||||||
	StartTime   time.Time
 | 
					 | 
				
			||||||
	EndTime     time.Time
 | 
					 | 
				
			||||||
	Description string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -2,12 +2,10 @@ package entities
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"github.com/google/uuid"
 | 
						"github.com/google/uuid"
 | 
				
			||||||
	"gorm.io/gorm"
 | 
					 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Project struct {
 | 
					type Project struct {
 | 
				
			||||||
	gorm.Model
 | 
					 | 
				
			||||||
	ID           uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
						ID           uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
				
			||||||
	Name         string
 | 
						Name         string
 | 
				
			||||||
	Abbreviation string
 | 
						Abbreviation string
 | 
				
			||||||
 | 
				
			|||||||
@ -2,12 +2,10 @@ package entities
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"github.com/google/uuid"
 | 
						"github.com/google/uuid"
 | 
				
			||||||
	"gorm.io/gorm"
 | 
					 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Task struct {
 | 
					type Task struct {
 | 
				
			||||||
	gorm.Model
 | 
					 | 
				
			||||||
	ID                   uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
						ID                   uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
				
			||||||
	ProjectId            uuid.UUID
 | 
						ProjectId            uuid.UUID
 | 
				
			||||||
	SprintId             uuid.UUID
 | 
						SprintId             uuid.UUID
 | 
				
			||||||
@ -43,3 +41,12 @@ type TaskHistoryType struct {
 | 
				
			|||||||
	ID    uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
						ID    uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
				
			||||||
	Label string
 | 
						Label string
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type Status struct {
 | 
				
			||||||
 | 
						ID          uuid.UUID  `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
				
			||||||
 | 
						Name        string     `gorm:"size:255"`
 | 
				
			||||||
 | 
						Description string     `gorm:"type:text"`
 | 
				
			||||||
 | 
						CreatedAt   time.Time  `gorm:"default:now()"`
 | 
				
			||||||
 | 
						UpdatedAt   time.Time  `gorm:"default:now()"`
 | 
				
			||||||
 | 
						DeletedAt   *time.Time `gorm:"default:null"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,6 @@ package entities
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"github.com/google/uuid"
 | 
						"github.com/google/uuid"
 | 
				
			||||||
	"gorm.io/gorm"
 | 
					 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -27,7 +26,6 @@ type ClientUser struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type ClientUser_Project_Join struct {
 | 
					type ClientUser_Project_Join struct {
 | 
				
			||||||
	gorm.Model
 | 
					 | 
				
			||||||
	ID            uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
						ID            uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
				
			||||||
	ClientId      uuid.UUID `gorm:"foreignKey:ClientId;index:clientIdProjectIndex" `
 | 
						ClientId      uuid.UUID `gorm:"foreignKey:ClientId;index:clientIdProjectIndex" `
 | 
				
			||||||
	ProjectId     uuid.UUID `gorm:"foreignKey:ProjectId;index:projectIdClientIndex"`
 | 
						ProjectId     uuid.UUID `gorm:"foreignKey:ProjectId;index:projectIdClientIndex"`
 | 
				
			||||||
@ -38,9 +36,8 @@ type ClientUser_Project_Join struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type DevUser_Project_Join struct {
 | 
					type DevUser_Project_Join struct {
 | 
				
			||||||
	gorm.Model
 | 
					 | 
				
			||||||
	ID        uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
						ID        uuid.UUID `gorm:"type:uuid;primaryKey;default:uuid_generate_v4()"`
 | 
				
			||||||
	ClientId  uuid.UUID `gorm:"foreignKey:ClientId;index:clientIdDevIndex" `
 | 
						DevUserId uuid.UUID `gorm:"foreignKey:ClientId;index:devUserIdDevIndex" `
 | 
				
			||||||
	ProjectId uuid.UUID `gorm:"foreignKey:ProjectId;index:projectIdDevIndex"`
 | 
						ProjectId uuid.UUID `gorm:"foreignKey:ProjectId;index:projectIdDevIndex"`
 | 
				
			||||||
	CreatedAt time.Time `gorm:"default:now()"`
 | 
						CreatedAt time.Time `gorm:"default:now()"`
 | 
				
			||||||
	UpdatedAt time.Time `gorm:"default:now()"`
 | 
						UpdatedAt time.Time `gorm:"default:now()"`
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user