{ "version": "6", "dialect": "sqlite", "id": "92a7d856-84d8-4db4-8a12-b9365941c401", "prevId": "14e8eaed-b6e1-40d2-8ad7-3d76a21248b4", "tables": { "api_tokens": { "name": "api_tokens", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "token": { "name": "token", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "scopes": { "name": "scopes", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'*'" }, "last_used_at": { "name": "last_used_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "api_tokens_token_unique": { "name": "api_tokens_token_unique", "columns": [ "token" ], "isUnique": true }, "api_tokens_user_id_idx": { "name": "api_tokens_user_id_idx", "columns": [ "user_id" ], "isUnique": false } }, "foreignKeys": { "api_tokens_user_id_users_id_fk": { "name": "api_tokens_user_id_users_id_fk", "tableFrom": "api_tokens", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "categories": { "name": "categories", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "organization_id": { "name": "organization_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "color": { "name": "color", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "categories_organization_id_idx": { "name": "categories_organization_id_idx", "columns": [ "organization_id" ], "isUnique": false } }, "foreignKeys": { "categories_organization_id_organizations_id_fk": { "name": "categories_organization_id_organizations_id_fk", "tableFrom": "categories", "tableTo": "organizations", "columnsFrom": [ "organization_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "clients": { "name": "clients", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "organization_id": { "name": "organization_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "email": { "name": "email", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "phone": { "name": "phone", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "street": { "name": "street", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "city": { "name": "city", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "state": { "name": "state", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "zip": { "name": "zip", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "country": { "name": "country", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "clients_organization_id_idx": { "name": "clients_organization_id_idx", "columns": [ "organization_id" ], "isUnique": false } }, "foreignKeys": { "clients_organization_id_organizations_id_fk": { "name": "clients_organization_id_organizations_id_fk", "tableFrom": "clients", "tableTo": "organizations", "columnsFrom": [ "organization_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "invoice_items": { "name": "invoice_items", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "invoice_id": { "name": "invoice_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "description": { "name": "description", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "quantity": { "name": "quantity", "type": "real", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 1 }, "unit_price": { "name": "unit_price", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "amount": { "name": "amount", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 } }, "indexes": { "invoice_items_invoice_id_idx": { "name": "invoice_items_invoice_id_idx", "columns": [ "invoice_id" ], "isUnique": false } }, "foreignKeys": { "invoice_items_invoice_id_invoices_id_fk": { "name": "invoice_items_invoice_id_invoices_id_fk", "tableFrom": "invoice_items", "tableTo": "invoices", "columnsFrom": [ "invoice_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "invoices": { "name": "invoices", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "organization_id": { "name": "organization_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "client_id": { "name": "client_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "number": { "name": "number", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "type": { "name": "type", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'invoice'" }, "status": { "name": "status", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'draft'" }, "issue_date": { "name": "issue_date", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "due_date": { "name": "due_date", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "notes": { "name": "notes", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "currency": { "name": "currency", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'USD'" }, "subtotal": { "name": "subtotal", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "discount_value": { "name": "discount_value", "type": "real", "primaryKey": false, "notNull": false, "autoincrement": false, "default": 0 }, "discount_type": { "name": "discount_type", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false, "default": "'percentage'" }, "discount_amount": { "name": "discount_amount", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false, "default": 0 }, "tax_rate": { "name": "tax_rate", "type": "real", "primaryKey": false, "notNull": false, "autoincrement": false, "default": 0 }, "tax_amount": { "name": "tax_amount", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "total": { "name": "total", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "invoices_organization_id_idx": { "name": "invoices_organization_id_idx", "columns": [ "organization_id" ], "isUnique": false }, "invoices_client_id_idx": { "name": "invoices_client_id_idx", "columns": [ "client_id" ], "isUnique": false } }, "foreignKeys": { "invoices_organization_id_organizations_id_fk": { "name": "invoices_organization_id_organizations_id_fk", "tableFrom": "invoices", "tableTo": "organizations", "columnsFrom": [ "organization_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" }, "invoices_client_id_clients_id_fk": { "name": "invoices_client_id_clients_id_fk", "tableFrom": "invoices", "tableTo": "clients", "columnsFrom": [ "client_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "members": { "name": "members", "columns": { "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "organization_id": { "name": "organization_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "role": { "name": "role", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'member'" }, "joined_at": { "name": "joined_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "members_user_id_idx": { "name": "members_user_id_idx", "columns": [ "user_id" ], "isUnique": false }, "members_organization_id_idx": { "name": "members_organization_id_idx", "columns": [ "organization_id" ], "isUnique": false } }, "foreignKeys": { "members_user_id_users_id_fk": { "name": "members_user_id_users_id_fk", "tableFrom": "members", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" }, "members_organization_id_organizations_id_fk": { "name": "members_organization_id_organizations_id_fk", "tableFrom": "members", "tableTo": "organizations", "columnsFrom": [ "organization_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": { "members_user_id_organization_id_pk": { "columns": [ "user_id", "organization_id" ], "name": "members_user_id_organization_id_pk" } }, "uniqueConstraints": {}, "checkConstraints": {} }, "organizations": { "name": "organizations", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "logo_url": { "name": "logo_url", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "street": { "name": "street", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "city": { "name": "city", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "state": { "name": "state", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "zip": { "name": "zip", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "country": { "name": "country", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "sessions": { "name": "sessions", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "expires_at": { "name": "expires_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": { "sessions_user_id_idx": { "name": "sessions_user_id_idx", "columns": [ "user_id" ], "isUnique": false } }, "foreignKeys": { "sessions_user_id_users_id_fk": { "name": "sessions_user_id_users_id_fk", "tableFrom": "sessions", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "site_settings": { "name": "site_settings", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "key": { "name": "key", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "value": { "name": "value", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "site_settings_key_unique": { "name": "site_settings_key_unique", "columns": [ "key" ], "isUnique": true } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "tags": { "name": "tags", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "organization_id": { "name": "organization_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "color": { "name": "color", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "tags_organization_id_idx": { "name": "tags_organization_id_idx", "columns": [ "organization_id" ], "isUnique": false } }, "foreignKeys": { "tags_organization_id_organizations_id_fk": { "name": "tags_organization_id_organizations_id_fk", "tableFrom": "tags", "tableTo": "organizations", "columnsFrom": [ "organization_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "time_entries": { "name": "time_entries", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "organization_id": { "name": "organization_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "client_id": { "name": "client_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "category_id": { "name": "category_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "start_time": { "name": "start_time", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "end_time": { "name": "end_time", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "description": { "name": "description", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "is_manual": { "name": "is_manual", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false, "default": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "time_entries_user_id_idx": { "name": "time_entries_user_id_idx", "columns": [ "user_id" ], "isUnique": false }, "time_entries_organization_id_idx": { "name": "time_entries_organization_id_idx", "columns": [ "organization_id" ], "isUnique": false }, "time_entries_client_id_idx": { "name": "time_entries_client_id_idx", "columns": [ "client_id" ], "isUnique": false }, "time_entries_start_time_idx": { "name": "time_entries_start_time_idx", "columns": [ "start_time" ], "isUnique": false } }, "foreignKeys": { "time_entries_user_id_users_id_fk": { "name": "time_entries_user_id_users_id_fk", "tableFrom": "time_entries", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" }, "time_entries_organization_id_organizations_id_fk": { "name": "time_entries_organization_id_organizations_id_fk", "tableFrom": "time_entries", "tableTo": "organizations", "columnsFrom": [ "organization_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" }, "time_entries_client_id_clients_id_fk": { "name": "time_entries_client_id_clients_id_fk", "tableFrom": "time_entries", "tableTo": "clients", "columnsFrom": [ "client_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" }, "time_entries_category_id_categories_id_fk": { "name": "time_entries_category_id_categories_id_fk", "tableFrom": "time_entries", "tableTo": "categories", "columnsFrom": [ "category_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "time_entry_tags": { "name": "time_entry_tags", "columns": { "time_entry_id": { "name": "time_entry_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "tag_id": { "name": "tag_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": { "time_entry_tags_time_entry_id_idx": { "name": "time_entry_tags_time_entry_id_idx", "columns": [ "time_entry_id" ], "isUnique": false }, "time_entry_tags_tag_id_idx": { "name": "time_entry_tags_tag_id_idx", "columns": [ "tag_id" ], "isUnique": false } }, "foreignKeys": { "time_entry_tags_time_entry_id_time_entries_id_fk": { "name": "time_entry_tags_time_entry_id_time_entries_id_fk", "tableFrom": "time_entry_tags", "tableTo": "time_entries", "columnsFrom": [ "time_entry_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" }, "time_entry_tags_tag_id_tags_id_fk": { "name": "time_entry_tags_tag_id_tags_id_fk", "tableFrom": "time_entry_tags", "tableTo": "tags", "columnsFrom": [ "tag_id" ], "columnsTo": [ "id" ], "onDelete": "no action", "onUpdate": "no action" } }, "compositePrimaryKeys": { "time_entry_tags_time_entry_id_tag_id_pk": { "columns": [ "time_entry_id", "tag_id" ], "name": "time_entry_tags_time_entry_id_tag_id_pk" } }, "uniqueConstraints": {}, "checkConstraints": {} }, "users": { "name": "users", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "email": { "name": "email", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "password_hash": { "name": "password_hash", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "is_site_admin": { "name": "is_site_admin", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false, "default": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "users_email_unique": { "name": "users_email_unique", "columns": [ "email" ], "isUnique": true } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} } }, "views": {}, "enums": {}, "_meta": { "schemas": {}, "tables": {}, "columns": {} }, "internal": { "indexes": {} } }