initial: pulsy from pulse-clock-main

This commit is contained in:
Hermes
2026-08-23 00:35:51 +00:00
commit 023f0394b4
53 changed files with 11171 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
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`);
+295
View File
@@ -0,0 +1,295 @@
{
"version": "6",
"dialect": "sqlite",
"id": "a499d0ef-cc64-470d-98e6-79b06f766cb9",
"prevId": "00000000-0000-0000-0000-000000000000",
"tables": {
"audit_log": {
"name": "audit_log",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"autoincrement": true
},
"employee_id": {
"name": "employee_id",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"company_id": {
"name": "company_id",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"admin_id": {
"name": "admin_id",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": 0
},
"action": {
"name": "action",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"detail": {
"name": "detail",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"created_at": {
"name": "created_at",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "(datetime('now'))"
}
},
"indexes": {
"audit_employee_idx": {
"name": "audit_employee_idx",
"columns": ["employee_id"],
"isUnique": false
},
"audit_company_idx": {
"name": "audit_company_idx",
"columns": ["company_id"],
"isUnique": false
}
},
"foreignKeys": {
"audit_log_employee_id_employees_id_fk": {
"name": "audit_log_employee_id_employees_id_fk",
"tableFrom": "audit_log",
"tableTo": "employees",
"columnsFrom": ["employee_id"],
"columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
},
"audit_log_company_id_companies_id_fk": {
"name": "audit_log_company_id_companies_id_fk",
"tableFrom": "audit_log",
"tableTo": "companies",
"columnsFrom": ["company_id"],
"columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
},
"companies": {
"name": "companies",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"autoincrement": true
},
"name": {
"name": "name",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"created_at": {
"name": "created_at",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "(datetime('now'))"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
},
"employees": {
"name": "employees",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"autoincrement": true
},
"company_id": {
"name": "company_id",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"name": {
"name": "name",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"is_active": {
"name": "is_active",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": true
},
"created_at": {
"name": "created_at",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "(datetime('now'))"
}
},
"indexes": {
"company_active_idx": {
"name": "company_active_idx",
"columns": ["company_id", "is_active"],
"isUnique": false
}
},
"foreignKeys": {
"employees_company_id_companies_id_fk": {
"name": "employees_company_id_companies_id_fk",
"tableFrom": "employees",
"tableTo": "companies",
"columnsFrom": ["company_id"],
"columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
},
"time_entries": {
"name": "time_entries",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"autoincrement": true
},
"employee_id": {
"name": "employee_id",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"company_id": {
"name": "company_id",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"type": {
"name": "type",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"timestamp": {
"name": "timestamp",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "(unixepoch())"
},
"photo_base64": {
"name": "photo_base64",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"is_deleted": {
"name": "is_deleted",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": false
}
},
"indexes": {
"employee_timestamp_idx": {
"name": "employee_timestamp_idx",
"columns": ["employee_id", "timestamp"],
"isUnique": false
},
"company_timestamp_idx": {
"name": "company_timestamp_idx",
"columns": ["company_id", "timestamp"],
"isUnique": false
}
},
"foreignKeys": {
"time_entries_employee_id_employees_id_fk": {
"name": "time_entries_employee_id_employees_id_fk",
"tableFrom": "time_entries",
"tableTo": "employees",
"columnsFrom": ["employee_id"],
"columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
},
"time_entries_company_id_companies_id_fk": {
"name": "time_entries_company_id_companies_id_fk",
"tableFrom": "time_entries",
"tableTo": "companies",
"columnsFrom": ["company_id"],
"columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
}
},
"views": {},
"enums": {},
"_meta": {
"schemas": {},
"tables": {},
"columns": {}
},
"internal": {
"indexes": {}
}
}
+13
View File
@@ -0,0 +1,13 @@
{
"version": "7",
"dialect": "sqlite",
"entries": [
{
"idx": 0,
"version": "6",
"when": 1779035877611,
"tag": "0000_chubby_toro",
"breakpoints": true
}
]
}