29 lines
1.2 KiB
SQL
29 lines
1.2 KiB
SQL
CREATE TABLE IF NOT EXISTS user_groups (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(255) NOT NULL,
|
|
permissions TEXT, -- JSON or comma-separated list of capabilities
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
group_id INT,
|
|
username VARCHAR(255) NOT NULL UNIQUE,
|
|
password VARCHAR(255) NOT NULL,
|
|
full_name VARCHAR(255),
|
|
email VARCHAR(255) UNIQUE,
|
|
is_active BOOLEAN DEFAULT TRUE,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (group_id) REFERENCES user_groups(id) ON DELETE SET NULL
|
|
);
|
|
|
|
-- Seed default groups
|
|
INSERT INTO user_groups (name, permissions) VALUES ('Administrator', 'all');
|
|
INSERT INTO user_groups (name, permissions) VALUES ('Manager', 'manage_orders,manage_products,manage_reports');
|
|
INSERT INTO user_groups (name, permissions) VALUES ('Cashier', 'pos,manage_orders');
|
|
INSERT INTO user_groups (name, permissions) VALUES ('Waiter', 'pos');
|
|
|
|
-- Seed default admin user (password: admin123)
|
|
-- Using PHP to hash the password properly would be better, but for initial seeding we can use a placeholder if we have a setup script.
|
|
-- Let's just create the tables for now.
|