49 lines
2.3 KiB
SQL
49 lines
2.3 KiB
SQL
-- Dropping existing finance_rate_cards table
|
|
DROP TABLE IF EXISTS finance_rate_cards;
|
|
-- Creating table to store rate card details
|
|
CREATE TABLE finance_rate_cards
|
|
(
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
team_id UUID NOT NULL REFERENCES teams (id) ON DELETE CASCADE,
|
|
name VARCHAR NOT NULL,
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Dropping existing finance_project_rate_card_roles table
|
|
DROP TABLE IF EXISTS finance_project_rate_card_roles;
|
|
-- Creating table with single id primary key
|
|
CREATE TABLE finance_project_rate_card_roles
|
|
(
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
project_id UUID NOT NULL REFERENCES projects (id) ON DELETE CASCADE,
|
|
role_id UUID NOT NULL REFERENCES roles (id) ON DELETE CASCADE,
|
|
rate DECIMAL(10, 2) NOT NULL CHECK (rate >= 0),
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT unique_project_role UNIQUE (project_id, role_id)
|
|
);
|
|
|
|
-- Dropping existing finance_rate_card_roles table
|
|
DROP TABLE IF EXISTS finance_rate_card_roles;
|
|
-- Creating table to store role-specific rates for rate cards
|
|
CREATE TABLE finance_rate_card_roles
|
|
(
|
|
rate_card_id UUID NOT NULL REFERENCES finance_rate_cards (id) ON DELETE CASCADE,
|
|
role_id UUID REFERENCES roles (id) ON DELETE SET NULL,
|
|
rate DECIMAL(10, 2) NOT NULL CHECK (rate >= 0),
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Adding project_rate_card_role_id column to project_members
|
|
ALTER TABLE project_members
|
|
ADD COLUMN project_rate_card_role_id UUID REFERENCES finance_project_rate_card_roles(id) ON DELETE SET NULL;
|
|
|
|
-- Adding rate_card column to projects
|
|
ALTER TABLE projects
|
|
ADD COLUMN rate_card UUID REFERENCES finance_rate_cards(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE finance_rate_cards
|
|
ADD COLUMN currency TEXT NOT NULL DEFAULT 'LKR';
|