{ "version": "6", "dialect": "sqlite", "id": "9e2b6175-0c19-43e6-b339-c87a9dc139b3", "prevId": "9ec04578-838c-47b4-97f1-44574bba627a", "tables": { "task": { "name": "task", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "title": { "name": "title", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "priority": { "name": "priority", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 1 } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "clients": { "name": "clients", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "type": { "name": "type", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'business'" }, "status": { "name": "status", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'active'" }, "website": { "name": "website", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "notes": { "name": "notes", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "archived_at": { "name": "archived_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "addresses": { "name": "addresses", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "client_id": { "name": "client_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "label": { "name": "label", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "line_1": { "name": "line_1", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "line_2": { "name": "line_2", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "city": { "name": "city", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "region": { "name": "region", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "postcode": { "name": "postcode", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "country": { "name": "country", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'United Kingdom'" }, "is_primary": { "name": "is_primary", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "archived_at": { "name": "archived_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "addresses_client_id_idx": { "name": "addresses_client_id_idx", "columns": [ "client_id" ], "isUnique": false } }, "foreignKeys": { "addresses_client_id_clients_id_fk": { "name": "addresses_client_id_clients_id_fk", "tableFrom": "addresses", "tableTo": "clients", "columnsFrom": [ "client_id" ], "columnsTo": [ "id" ], "onDelete": "restrict", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "contacts": { "name": "contacts", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "client_id": { "name": "client_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "role": { "name": "role", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "email": { "name": "email", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "phone": { "name": "phone", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "is_primary": { "name": "is_primary", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": false }, "notes": { "name": "notes", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "archived_at": { "name": "archived_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "contacts_client_id_idx": { "name": "contacts_client_id_idx", "columns": [ "client_id" ], "isUnique": false } }, "foreignKeys": { "contacts_client_id_clients_id_fk": { "name": "contacts_client_id_clients_id_fk", "tableFrom": "contacts", "tableTo": "clients", "columnsFrom": [ "client_id" ], "columnsTo": [ "id" ], "onDelete": "restrict", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "rooms": { "name": "rooms", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "type": { "name": "type", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'meeting_room'" }, "sq_ft": { "name": "sq_ft", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "internal_price_per_hour_gbp": { "name": "internal_price_per_hour_gbp", "type": "real", "primaryKey": false, "notNull": false, "autoincrement": false }, "external_price_per_hour_gbp": { "name": "external_price_per_hour_gbp", "type": "real", "primaryKey": false, "notNull": false, "autoincrement": false }, "internal_price_per_day_gbp": { "name": "internal_price_per_day_gbp", "type": "real", "primaryKey": false, "notNull": false, "autoincrement": false }, "external_price_per_day_gbp": { "name": "external_price_per_day_gbp", "type": "real", "primaryKey": false, "notNull": false, "autoincrement": false }, "max_attendees": { "name": "max_attendees", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "workstations": { "name": "workstations", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "price_per_month_gbp": { "name": "price_per_month_gbp", "type": "real", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "archived_at": { "name": "archived_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "services": { "name": "services", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "category": { "name": "category", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "unit": { "name": "unit", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'each'" }, "price_gbp": { "name": "price_gbp", "type": "real", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "description": { "name": "description", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "archived_at": { "name": "archived_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "bookings": { "name": "bookings", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "client_id": { "name": "client_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "room_id": { "name": "room_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "service_id": { "name": "service_id", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "starts_at": { "name": "starts_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "ends_at": { "name": "ends_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "status": { "name": "status", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'booked'" }, "notes": { "name": "notes", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "archived_at": { "name": "archived_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "bookings_client_id_idx": { "name": "bookings_client_id_idx", "columns": [ "client_id" ], "isUnique": false }, "bookings_room_id_idx": { "name": "bookings_room_id_idx", "columns": [ "room_id" ], "isUnique": false }, "bookings_service_id_idx": { "name": "bookings_service_id_idx", "columns": [ "service_id" ], "isUnique": false } }, "foreignKeys": { "bookings_client_id_clients_id_fk": { "name": "bookings_client_id_clients_id_fk", "tableFrom": "bookings", "tableTo": "clients", "columnsFrom": [ "client_id" ], "columnsTo": [ "id" ], "onDelete": "restrict", "onUpdate": "no action" }, "bookings_room_id_rooms_id_fk": { "name": "bookings_room_id_rooms_id_fk", "tableFrom": "bookings", "tableTo": "rooms", "columnsFrom": [ "room_id" ], "columnsTo": [ "id" ], "onDelete": "restrict", "onUpdate": "no action" }, "bookings_service_id_services_id_fk": { "name": "bookings_service_id_services_id_fk", "tableFrom": "bookings", "tableTo": "services", "columnsFrom": [ "service_id" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "invoices": { "name": "invoices", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "client_id": { "name": "client_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "invoice_number": { "name": "invoice_number", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "issue_date": { "name": "issue_date", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "due_date": { "name": "due_date", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "status": { "name": "status", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'draft'" }, "subtotal_gbp": { "name": "subtotal_gbp", "type": "real", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "tax_gbp": { "name": "tax_gbp", "type": "real", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "total_gbp": { "name": "total_gbp", "type": "real", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "notes": { "name": "notes", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "archived_at": { "name": "archived_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "invoices_invoice_number_unique": { "name": "invoices_invoice_number_unique", "columns": [ "invoice_number" ], "isUnique": true }, "invoices_client_id_idx": { "name": "invoices_client_id_idx", "columns": [ "client_id" ], "isUnique": false } }, "foreignKeys": { "invoices_client_id_clients_id_fk": { "name": "invoices_client_id_clients_id_fk", "tableFrom": "invoices", "tableTo": "clients", "columnsFrom": [ "client_id" ], "columnsTo": [ "id" ], "onDelete": "restrict", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "contracts": { "name": "contracts", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "client_id": { "name": "client_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "title": { "name": "title", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "start_date": { "name": "start_date", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "end_date": { "name": "end_date", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "status": { "name": "status", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'draft'" }, "value_gbp": { "name": "value_gbp", "type": "real", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "notes": { "name": "notes", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "archived_at": { "name": "archived_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "contracts_client_id_idx": { "name": "contracts_client_id_idx", "columns": [ "client_id" ], "isUnique": false } }, "foreignKeys": { "contracts_client_id_clients_id_fk": { "name": "contracts_client_id_clients_id_fk", "tableFrom": "contracts", "tableTo": "clients", "columnsFrom": [ "client_id" ], "columnsTo": [ "id" ], "onDelete": "restrict", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "account": { "name": "account", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "account_id": { "name": "account_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "provider_id": { "name": "provider_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "access_token": { "name": "access_token", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "refresh_token": { "name": "refresh_token", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "id_token": { "name": "id_token", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "access_token_expires_at": { "name": "access_token_expires_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "refresh_token_expires_at": { "name": "refresh_token_expires_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "scope": { "name": "scope", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "password": { "name": "password", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": { "account_userId_idx": { "name": "account_userId_idx", "columns": [ "user_id" ], "isUnique": false } }, "foreignKeys": { "account_user_id_user_id_fk": { "name": "account_user_id_user_id_fk", "tableFrom": "account", "tableTo": "user", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "session": { "name": "session", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "expires_at": { "name": "expires_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "token": { "name": "token", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "ip_address": { "name": "ip_address", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "user_agent": { "name": "user_agent", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "user_id": { "name": "user_id", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": { "session_token_unique": { "name": "session_token_unique", "columns": [ "token" ], "isUnique": true }, "session_userId_idx": { "name": "session_userId_idx", "columns": [ "user_id" ], "isUnique": false } }, "foreignKeys": { "session_user_id_user_id_fk": { "name": "session_user_id_user_id_fk", "tableFrom": "session", "tableTo": "user", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "user": { "name": "user", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "email": { "name": "email", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "email_verified": { "name": "email_verified", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": false }, "image": { "name": "image", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" } }, "indexes": { "user_email_unique": { "name": "user_email_unique", "columns": [ "email" ], "isUnique": true } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "verification": { "name": "verification", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "identifier": { "name": "identifier", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "value": { "name": "value", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "expires_at": { "name": "expires_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(cast(unixepoch('subsecond') * 1000 as integer))" } }, "indexes": { "verification_identifier_idx": { "name": "verification_identifier_idx", "columns": [ "identifier" ], "isUnique": false } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} } }, "views": {}, "enums": {}, "_meta": { "schemas": {}, "tables": {}, "columns": {} }, "internal": { "indexes": {} } }