44 lines
2.0 KiB
SQL
44 lines
2.0 KiB
SQL
CREATE TABLE `audit_log` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`employee_id` integer NOT NULL,
|
|
`company_id` integer NOT NULL,
|
|
`admin_id` integer DEFAULT 0 NOT NULL,
|
|
`action` text NOT NULL,
|
|
`detail` text NOT NULL,
|
|
`created_at` text DEFAULT (datetime('now')) NOT NULL,
|
|
FOREIGN KEY (`employee_id`) REFERENCES `employees`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`company_id`) REFERENCES `companies`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `audit_employee_idx` ON `audit_log` (`employee_id`);--> statement-breakpoint
|
|
CREATE INDEX `audit_company_idx` ON `audit_log` (`company_id`);--> statement-breakpoint
|
|
CREATE TABLE `companies` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL,
|
|
`created_at` text DEFAULT (datetime('now')) NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `employees` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`company_id` integer NOT NULL,
|
|
`name` text NOT NULL,
|
|
`is_active` integer DEFAULT true NOT NULL,
|
|
`created_at` text DEFAULT (datetime('now')) NOT NULL,
|
|
FOREIGN KEY (`company_id`) REFERENCES `companies`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `company_active_idx` ON `employees` (`company_id`,`is_active`);--> statement-breakpoint
|
|
CREATE TABLE `time_entries` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`employee_id` integer NOT NULL,
|
|
`company_id` integer NOT NULL,
|
|
`type` text NOT NULL,
|
|
`timestamp` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`photo_base64` text,
|
|
`is_deleted` integer DEFAULT false NOT NULL,
|
|
FOREIGN KEY (`employee_id`) REFERENCES `employees`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`company_id`) REFERENCES `companies`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `employee_timestamp_idx` ON `time_entries` (`employee_id`,`timestamp`);--> statement-breakpoint
|
|
CREATE INDEX `company_timestamp_idx` ON `time_entries` (`company_id`,`timestamp`); |