50 lines
2.0 KiB
SQL
50 lines
2.0 KiB
SQL
CREATE TABLE company (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(255) NOT NULL,
|
|
active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE employee (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
company_id BIGINT NOT NULL,
|
|
first_name VARCHAR(255) NOT NULL,
|
|
last_name VARCHAR(255) NOT NULL,
|
|
active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT fk_employee_company FOREIGN KEY (company_id) REFERENCES company(id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE product (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(255) NOT NULL,
|
|
price_cents INT NOT NULL DEFAULT 0,
|
|
icon_placeholder VARCHAR(50) DEFAULT 'coffee',
|
|
active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE tally_entry (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
employee_id BIGINT NOT NULL,
|
|
product_id BIGINT NOT NULL,
|
|
month_key VARCHAR(7) NOT NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT fk_tally_employee FOREIGN KEY (employee_id) REFERENCES employee(id),
|
|
CONSTRAINT fk_tally_product FOREIGN KEY (product_id) REFERENCES product(id),
|
|
INDEX idx_tally_month (month_key),
|
|
INDEX idx_tally_employee_month (employee_id, month_key)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE access_link (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
token VARCHAR(64) NOT NULL UNIQUE,
|
|
role VARCHAR(20) NOT NULL,
|
|
company_id BIGINT,
|
|
description VARCHAR(255),
|
|
active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT fk_access_link_company FOREIGN KEY (company_id) REFERENCES company(id),
|
|
CONSTRAINT chk_role CHECK (role IN ('COMPANY_ADMIN', 'PROVIDER_ADMIN'))
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|