Files
neta/server/db/migrations/meta/0005_snapshot.json
T

3671 lines
101 KiB
JSON

{
"version": "6",
"dialect": "sqlite",
"id": "7d145639-7631-4442-9241-3c81212d3d9f",
"prevId": "ec63b473-23ba-4b53-b1b7-7061b3db68ff",
"tables": {
"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_user_id_idx": {
"name": "account_user_id_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": {}
},
"app_profiles": {
"name": "app_profiles",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"autoincrement": true
},
"auth_user_id": {
"name": "auth_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"email": {
"name": "email",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"display_name": {
"name": "display_name",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"role": {
"name": "role",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"disabled": {
"name": "disabled",
"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))"
}
},
"indexes": {
"app_profiles_auth_user_id_unique": {
"name": "app_profiles_auth_user_id_unique",
"columns": [
"auth_user_id"
],
"isUnique": true
},
"app_profiles_client_id_unique": {
"name": "app_profiles_client_id_unique",
"columns": [
"client_id"
],
"isUnique": true
},
"app_profiles_role_idx": {
"name": "app_profiles_role_idx",
"columns": [
"role"
],
"isUnique": false
}
},
"foreignKeys": {
"app_profiles_auth_user_id_user_id_fk": {
"name": "app_profiles_auth_user_id_user_id_fk",
"tableFrom": "app_profiles",
"tableTo": "user",
"columnsFrom": [
"auth_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
},
"app_setup_state": {
"name": "app_setup_state",
"columns": {
"key": {
"name": "key",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"status": {
"name": "status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"locked_by": {
"name": "locked_by",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"locked_at": {
"name": "locked_at",
"type": "integer",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"completed_at": {
"name": "completed_at",
"type": "integer",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"updated_at": {
"name": "updated_at",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "(cast(unixepoch('subsecond') * 1000 as integer))"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
},
"auth_audit_events": {
"name": "auth_audit_events",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"autoincrement": true
},
"type": {
"name": "type",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"auth_user_id": {
"name": "auth_user_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"email": {
"name": "email",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"metadata": {
"name": "metadata",
"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))"
}
},
"indexes": {
"auth_audit_events_type_idx": {
"name": "auth_audit_events_type_idx",
"columns": [
"type"
],
"isUnique": false
},
"auth_audit_events_auth_user_id_idx": {
"name": "auth_audit_events_auth_user_id_idx",
"columns": [
"auth_user_id"
],
"isUnique": false
}
},
"foreignKeys": {
"auth_audit_events_auth_user_id_user_id_fk": {
"name": "auth_audit_events_auth_user_id_user_id_fk",
"tableFrom": "auth_audit_events",
"tableTo": "user",
"columnsFrom": [
"auth_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
},
"portal_invitations": {
"name": "portal_invitations",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"autoincrement": true
},
"token_hash": {
"name": "token_hash",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"email": {
"name": "email",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"status": {
"name": "status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'pending'"
},
"expires_at": {
"name": "expires_at",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"accepted_at": {
"name": "accepted_at",
"type": "integer",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"created_by_user_id": {
"name": "created_by_user_id",
"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))"
}
},
"indexes": {
"portal_invitations_token_hash_unique": {
"name": "portal_invitations_token_hash_unique",
"columns": [
"token_hash"
],
"isUnique": true
},
"portal_invitations_client_id_idx": {
"name": "portal_invitations_client_id_idx",
"columns": [
"client_id"
],
"isUnique": false
},
"portal_invitations_email_idx": {
"name": "portal_invitations_email_idx",
"columns": [
"email"
],
"isUnique": false
}
},
"foreignKeys": {
"portal_invitations_created_by_user_id_user_id_fk": {
"name": "portal_invitations_created_by_user_id_user_id_fk",
"tableFrom": "portal_invitations",
"tableTo": "user",
"columnsFrom": [
"created_by_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"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_user_id_idx": {
"name": "session_user_id_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": {}
},
"calendar_events": {
"name": "calendar_events",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"project_id": {
"name": "project_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"task_id": {
"name": "task_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"type": {
"name": "type",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'focus'"
},
"starts_at": {
"name": "starts_at",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"ends_at": {
"name": "ends_at",
"type": "integer",
"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": {
"calendar_events_owner_range_idx": {
"name": "calendar_events_owner_range_idx",
"columns": [
"owner_user_id",
"starts_at"
],
"isUnique": false
},
"calendar_events_project_id_idx": {
"name": "calendar_events_project_id_idx",
"columns": [
"project_id"
],
"isUnique": false
},
"calendar_events_task_id_idx": {
"name": "calendar_events_task_id_idx",
"columns": [
"task_id"
],
"isUnique": false
}
},
"foreignKeys": {
"calendar_events_owner_user_id_user_id_fk": {
"name": "calendar_events_owner_user_id_user_id_fk",
"tableFrom": "calendar_events",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"calendar_events_client_id_clients_id_fk": {
"name": "calendar_events_client_id_clients_id_fk",
"tableFrom": "calendar_events",
"tableTo": "clients",
"columnsFrom": [
"client_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"calendar_events_project_id_projects_id_fk": {
"name": "calendar_events_project_id_projects_id_fk",
"tableFrom": "calendar_events",
"tableTo": "projects",
"columnsFrom": [
"project_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"calendar_events_task_id_tasks_id_fk": {
"name": "calendar_events_task_id_tasks_id_fk",
"tableFrom": "calendar_events",
"tableTo": "tasks",
"columnsFrom": [
"task_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"calendar_events_type_check": {
"name": "calendar_events_type_check",
"value": "\"calendar_events\".\"type\" in ('meeting', 'focus', 'deadline', 'personal', 'finance')"
},
"calendar_events_time_check": {
"name": "calendar_events_time_check",
"value": "\"calendar_events\".\"ends_at\" is null or \"calendar_events\".\"ends_at\" >= \"calendar_events\".\"starts_at\""
}
}
},
"chat_messages": {
"name": "chat_messages",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"session_id": {
"name": "session_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"role": {
"name": "role",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"content": {
"name": "content",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"context_journal_entry_ids": {
"name": "context_journal_entry_ids",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'[]'"
},
"created_at": {
"name": "created_at",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "(cast(unixepoch('subsecond') * 1000 as integer))"
}
},
"indexes": {
"chat_messages_session_created_idx": {
"name": "chat_messages_session_created_idx",
"columns": [
"session_id",
"created_at"
],
"isUnique": false
}
},
"foreignKeys": {
"chat_messages_session_id_chat_sessions_id_fk": {
"name": "chat_messages_session_id_chat_sessions_id_fk",
"tableFrom": "chat_messages",
"tableTo": "chat_sessions",
"columnsFrom": [
"session_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"chat_messages_role_check": {
"name": "chat_messages_role_check",
"value": "\"chat_messages\".\"role\" in ('system', 'user', 'assistant', 'tool')"
}
}
},
"chat_sessions": {
"name": "chat_sessions",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"title": {
"name": "title",
"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,
"default": "(cast(unixepoch('subsecond') * 1000 as integer))"
}
},
"indexes": {
"chat_sessions_owner_updated_idx": {
"name": "chat_sessions_owner_updated_idx",
"columns": [
"owner_user_id",
"updated_at"
],
"isUnique": false
}
},
"foreignKeys": {
"chat_sessions_owner_user_id_user_id_fk": {
"name": "chat_sessions_owner_user_id_user_id_fk",
"tableFrom": "chat_sessions",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
},
"client_activities": {
"name": "client_activities",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"type": {
"name": "type",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"content": {
"name": "content",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"activity_date": {
"name": "activity_date",
"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))"
}
},
"indexes": {
"client_activities_owner_client_idx": {
"name": "client_activities_owner_client_idx",
"columns": [
"owner_user_id",
"client_id"
],
"isUnique": false
},
"client_activities_client_date_idx": {
"name": "client_activities_client_date_idx",
"columns": [
"client_id",
"activity_date"
],
"isUnique": false
}
},
"foreignKeys": {
"client_activities_owner_user_id_user_id_fk": {
"name": "client_activities_owner_user_id_user_id_fk",
"tableFrom": "client_activities",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"client_activities_client_id_clients_id_fk": {
"name": "client_activities_client_id_clients_id_fk",
"tableFrom": "client_activities",
"tableTo": "clients",
"columnsFrom": [
"client_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"client_activities_type_check": {
"name": "client_activities_type_check",
"value": "\"client_activities\".\"type\" in ('note', 'call', 'meeting', 'email')"
}
}
},
"clients": {
"name": "clients",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"auth_user_id": {
"name": "auth_user_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"name": {
"name": "name",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"company_name": {
"name": "company_name",
"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
},
"website": {
"name": "website",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"status": {
"name": "status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'active'"
},
"pipeline_stage": {
"name": "pipeline_stage",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'lead'"
},
"next_follow_up_date": {
"name": "next_follow_up_date",
"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))"
}
},
"indexes": {
"clients_auth_user_id_unique": {
"name": "clients_auth_user_id_unique",
"columns": [
"auth_user_id"
],
"isUnique": true
},
"clients_owner_user_id_idx": {
"name": "clients_owner_user_id_idx",
"columns": [
"owner_user_id"
],
"isUnique": false
},
"clients_owner_status_idx": {
"name": "clients_owner_status_idx",
"columns": [
"owner_user_id",
"status"
],
"isUnique": false
},
"clients_owner_pipeline_idx": {
"name": "clients_owner_pipeline_idx",
"columns": [
"owner_user_id",
"pipeline_stage"
],
"isUnique": false
},
"clients_next_follow_up_date_idx": {
"name": "clients_next_follow_up_date_idx",
"columns": [
"next_follow_up_date"
],
"isUnique": false
}
},
"foreignKeys": {
"clients_owner_user_id_user_id_fk": {
"name": "clients_owner_user_id_user_id_fk",
"tableFrom": "clients",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"clients_auth_user_id_user_id_fk": {
"name": "clients_auth_user_id_user_id_fk",
"tableFrom": "clients",
"tableTo": "user",
"columnsFrom": [
"auth_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"clients_status_check": {
"name": "clients_status_check",
"value": "\"clients\".\"status\" in ('active', 'paused', 'archived')"
},
"clients_pipeline_stage_check": {
"name": "clients_pipeline_stage_check",
"value": "\"clients\".\"pipeline_stage\" in ('lead', 'contacted', 'proposal_sent', 'won', 'lost')"
}
}
},
"contracts": {
"name": "contracts",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"proposal_id": {
"name": "proposal_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"content": {
"name": "content",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"status": {
"name": "status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'draft'"
},
"signed_at": {
"name": "signed_at",
"type": "integer",
"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": {
"contracts_owner_status_idx": {
"name": "contracts_owner_status_idx",
"columns": [
"owner_user_id",
"status"
],
"isUnique": false
}
},
"foreignKeys": {
"contracts_owner_user_id_user_id_fk": {
"name": "contracts_owner_user_id_user_id_fk",
"tableFrom": "contracts",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"contracts_proposal_id_proposals_id_fk": {
"name": "contracts_proposal_id_proposals_id_fk",
"tableFrom": "contracts",
"tableTo": "proposals",
"columnsFrom": [
"proposal_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"contracts_client_id_clients_id_fk": {
"name": "contracts_client_id_clients_id_fk",
"tableFrom": "contracts",
"tableTo": "clients",
"columnsFrom": [
"client_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"contracts_status_check": {
"name": "contracts_status_check",
"value": "\"contracts\".\"status\" in ('draft', 'active', 'completed', 'cancelled')"
}
}
},
"finance_transactions": {
"name": "finance_transactions",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"project_id": {
"name": "project_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"type": {
"name": "type",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"amount_minor": {
"name": "amount_minor",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"currency": {
"name": "currency",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'USD'"
},
"transaction_date": {
"name": "transaction_date",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"category": {
"name": "category",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"payment_status": {
"name": "payment_status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'planned'"
},
"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))"
}
},
"indexes": {
"finance_transactions_owner_date_idx": {
"name": "finance_transactions_owner_date_idx",
"columns": [
"owner_user_id",
"transaction_date"
],
"isUnique": false
},
"finance_transactions_owner_type_idx": {
"name": "finance_transactions_owner_type_idx",
"columns": [
"owner_user_id",
"type"
],
"isUnique": false
},
"finance_transactions_client_id_idx": {
"name": "finance_transactions_client_id_idx",
"columns": [
"client_id"
],
"isUnique": false
},
"finance_transactions_project_id_idx": {
"name": "finance_transactions_project_id_idx",
"columns": [
"project_id"
],
"isUnique": false
}
},
"foreignKeys": {
"finance_transactions_owner_user_id_user_id_fk": {
"name": "finance_transactions_owner_user_id_user_id_fk",
"tableFrom": "finance_transactions",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"finance_transactions_client_id_clients_id_fk": {
"name": "finance_transactions_client_id_clients_id_fk",
"tableFrom": "finance_transactions",
"tableTo": "clients",
"columnsFrom": [
"client_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"finance_transactions_project_id_projects_id_fk": {
"name": "finance_transactions_project_id_projects_id_fk",
"tableFrom": "finance_transactions",
"tableTo": "projects",
"columnsFrom": [
"project_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"finance_transactions_type_check": {
"name": "finance_transactions_type_check",
"value": "\"finance_transactions\".\"type\" in ('income', 'expense')"
},
"finance_transactions_amount_check": {
"name": "finance_transactions_amount_check",
"value": "\"finance_transactions\".\"amount_minor\" >= 0"
},
"finance_transactions_payment_status_check": {
"name": "finance_transactions_payment_status_check",
"value": "\"finance_transactions\".\"payment_status\" in ('planned', 'pending', 'paid', 'cancelled')"
},
"finance_transactions_currency_check": {
"name": "finance_transactions_currency_check",
"value": "length(\"finance_transactions\".\"currency\") = 3"
}
}
},
"invoices": {
"name": "invoices",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"project_id": {
"name": "project_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"invoice_number": {
"name": "invoice_number",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"amount_minor": {
"name": "amount_minor",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": 0
},
"tax_basis_points": {
"name": "tax_basis_points",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": 0
},
"currency": {
"name": "currency",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'TRY'"
},
"status": {
"name": "status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'draft'"
},
"issue_date": {
"name": "issue_date",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"due_date": {
"name": "due_date",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"paid_at": {
"name": "paid_at",
"type": "integer",
"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": {
"invoices_owner_number_unique": {
"name": "invoices_owner_number_unique",
"columns": [
"owner_user_id",
"invoice_number"
],
"isUnique": true
},
"invoices_owner_status_idx": {
"name": "invoices_owner_status_idx",
"columns": [
"owner_user_id",
"status"
],
"isUnique": false
}
},
"foreignKeys": {
"invoices_owner_user_id_user_id_fk": {
"name": "invoices_owner_user_id_user_id_fk",
"tableFrom": "invoices",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"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": "set null",
"onUpdate": "no action"
},
"invoices_project_id_projects_id_fk": {
"name": "invoices_project_id_projects_id_fk",
"tableFrom": "invoices",
"tableTo": "projects",
"columnsFrom": [
"project_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"invoices_status_check": {
"name": "invoices_status_check",
"value": "\"invoices\".\"status\" in ('draft', 'sent', 'paid', 'overdue', 'cancelled')"
},
"invoices_amount_check": {
"name": "invoices_amount_check",
"value": "\"invoices\".\"amount_minor\" >= 0"
},
"invoices_tax_check": {
"name": "invoices_tax_check",
"value": "\"invoices\".\"tax_basis_points\" between 0 and 10000"
}
}
},
"journal_entries": {
"name": "journal_entries",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"entry_date": {
"name": "entry_date",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"mood_score": {
"name": "mood_score",
"type": "integer",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"energy_score": {
"name": "energy_score",
"type": "integer",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"work_satisfaction_score": {
"name": "work_satisfaction_score",
"type": "integer",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"mood_label": {
"name": "mood_label",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"note": {
"name": "note",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"legacy_ai_metadata": {
"name": "legacy_ai_metadata",
"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": {
"journal_entries_owner_date_unique": {
"name": "journal_entries_owner_date_unique",
"columns": [
"owner_user_id",
"entry_date"
],
"isUnique": true
},
"journal_entries_owner_date_idx": {
"name": "journal_entries_owner_date_idx",
"columns": [
"owner_user_id",
"entry_date"
],
"isUnique": false
}
},
"foreignKeys": {
"journal_entries_owner_user_id_user_id_fk": {
"name": "journal_entries_owner_user_id_user_id_fk",
"tableFrom": "journal_entries",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"journal_entries_mood_score_check": {
"name": "journal_entries_mood_score_check",
"value": "\"journal_entries\".\"mood_score\" is null or \"journal_entries\".\"mood_score\" between 1 and 5"
},
"journal_entries_energy_score_check": {
"name": "journal_entries_energy_score_check",
"value": "\"journal_entries\".\"energy_score\" is null or \"journal_entries\".\"energy_score\" between 1 and 5"
},
"journal_entries_work_score_check": {
"name": "journal_entries_work_score_check",
"value": "\"journal_entries\".\"work_satisfaction_score\" is null or \"journal_entries\".\"work_satisfaction_score\" between 1 and 5"
}
}
},
"project_planning_sections": {
"name": "project_planning_sections",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"project_id": {
"name": "project_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"category": {
"name": "category",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"content": {
"name": "content",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"metadata": {
"name": "metadata",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'{}'"
},
"sort_order": {
"name": "sort_order",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": 0
},
"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": {
"project_planning_sections_owner_idx": {
"name": "project_planning_sections_owner_idx",
"columns": [
"owner_user_id"
],
"isUnique": false
},
"project_planning_sections_project_order_idx": {
"name": "project_planning_sections_project_order_idx",
"columns": [
"project_id",
"sort_order"
],
"isUnique": false
}
},
"foreignKeys": {
"project_planning_sections_owner_user_id_user_id_fk": {
"name": "project_planning_sections_owner_user_id_user_id_fk",
"tableFrom": "project_planning_sections",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"project_planning_sections_project_id_projects_id_fk": {
"name": "project_planning_sections_project_id_projects_id_fk",
"tableFrom": "project_planning_sections",
"tableTo": "projects",
"columnsFrom": [
"project_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"project_planning_sections_category_check": {
"name": "project_planning_sections_category_check",
"value": "\"project_planning_sections\".\"category\" in ('overview', 'problem', 'goal', 'audience', 'scope', 'design_system', 'color_palette', 'typography', 'assets', 'notes')"
}
}
},
"project_revisions": {
"name": "project_revisions",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"project_id": {
"name": "project_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"requested_by_user_id": {
"name": "requested_by_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"status": {
"name": "status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'pending'"
},
"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": {
"project_revisions_owner_project_idx": {
"name": "project_revisions_owner_project_idx",
"columns": [
"owner_user_id",
"project_id"
],
"isUnique": false
},
"project_revisions_client_project_idx": {
"name": "project_revisions_client_project_idx",
"columns": [
"client_id",
"project_id"
],
"isUnique": false
}
},
"foreignKeys": {
"project_revisions_owner_user_id_user_id_fk": {
"name": "project_revisions_owner_user_id_user_id_fk",
"tableFrom": "project_revisions",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"project_revisions_project_id_projects_id_fk": {
"name": "project_revisions_project_id_projects_id_fk",
"tableFrom": "project_revisions",
"tableTo": "projects",
"columnsFrom": [
"project_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"project_revisions_client_id_clients_id_fk": {
"name": "project_revisions_client_id_clients_id_fk",
"tableFrom": "project_revisions",
"tableTo": "clients",
"columnsFrom": [
"client_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"project_revisions_requested_by_user_id_user_id_fk": {
"name": "project_revisions_requested_by_user_id_user_id_fk",
"tableFrom": "project_revisions",
"tableTo": "user",
"columnsFrom": [
"requested_by_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"project_revisions_status_check": {
"name": "project_revisions_status_check",
"value": "\"project_revisions\".\"status\" in ('pending', 'in_progress', 'completed', 'rejected')"
}
}
},
"projects": {
"name": "projects",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"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": "'client_project'"
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"status": {
"name": "status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'planning'"
},
"start_date": {
"name": "start_date",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"due_date": {
"name": "due_date",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"budget_amount_minor": {
"name": "budget_amount_minor",
"type": "integer",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"currency": {
"name": "currency",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'USD'"
},
"progress": {
"name": "progress",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": 0
},
"progress_type": {
"name": "progress_type",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'manual'"
},
"revision_quota": {
"name": "revision_quota",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": 0
},
"legacy_cover_image_path": {
"name": "legacy_cover_image_path",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"cover_image_alt": {
"name": "cover_image_alt",
"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": {
"projects_owner_user_id_idx": {
"name": "projects_owner_user_id_idx",
"columns": [
"owner_user_id"
],
"isUnique": false
},
"projects_owner_status_idx": {
"name": "projects_owner_status_idx",
"columns": [
"owner_user_id",
"status"
],
"isUnique": false
},
"projects_client_id_idx": {
"name": "projects_client_id_idx",
"columns": [
"client_id"
],
"isUnique": false
},
"projects_due_date_idx": {
"name": "projects_due_date_idx",
"columns": [
"due_date"
],
"isUnique": false
}
},
"foreignKeys": {
"projects_owner_user_id_user_id_fk": {
"name": "projects_owner_user_id_user_id_fk",
"tableFrom": "projects",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"projects_client_id_clients_id_fk": {
"name": "projects_client_id_clients_id_fk",
"tableFrom": "projects",
"tableTo": "clients",
"columnsFrom": [
"client_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"projects_type_check": {
"name": "projects_type_check",
"value": "\"projects\".\"type\" in ('client_project', 'side_project')"
},
"projects_status_check": {
"name": "projects_status_check",
"value": "\"projects\".\"status\" in ('planning', 'active', 'paused', 'completed', 'cancelled')"
},
"projects_progress_check": {
"name": "projects_progress_check",
"value": "\"projects\".\"progress\" between 0 and 100"
},
"projects_revision_quota_check": {
"name": "projects_revision_quota_check",
"value": "\"projects\".\"revision_quota\" >= 0"
},
"projects_budget_check": {
"name": "projects_budget_check",
"value": "\"projects\".\"budget_amount_minor\" is null or \"projects\".\"budget_amount_minor\" >= 0"
},
"projects_currency_check": {
"name": "projects_currency_check",
"value": "length(\"projects\".\"currency\") = 3"
}
}
},
"proposals": {
"name": "proposals",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"project_id": {
"name": "project_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"amount_minor": {
"name": "amount_minor",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": 0
},
"currency": {
"name": "currency",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'TRY'"
},
"status": {
"name": "status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'draft'"
},
"valid_until": {
"name": "valid_until",
"type": "integer",
"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": {
"proposals_owner_status_idx": {
"name": "proposals_owner_status_idx",
"columns": [
"owner_user_id",
"status"
],
"isUnique": false
}
},
"foreignKeys": {
"proposals_owner_user_id_user_id_fk": {
"name": "proposals_owner_user_id_user_id_fk",
"tableFrom": "proposals",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"proposals_client_id_clients_id_fk": {
"name": "proposals_client_id_clients_id_fk",
"tableFrom": "proposals",
"tableTo": "clients",
"columnsFrom": [
"client_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"proposals_project_id_projects_id_fk": {
"name": "proposals_project_id_projects_id_fk",
"tableFrom": "proposals",
"tableTo": "projects",
"columnsFrom": [
"project_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"proposals_status_check": {
"name": "proposals_status_check",
"value": "\"proposals\".\"status\" in ('draft', 'sent', 'accepted', 'rejected')"
},
"proposals_amount_check": {
"name": "proposals_amount_check",
"value": "\"proposals\".\"amount_minor\" >= 0"
}
}
},
"subscriptions": {
"name": "subscriptions",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"name": {
"name": "name",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"amount_minor": {
"name": "amount_minor",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": 0
},
"currency": {
"name": "currency",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'TRY'"
},
"billing_cycle": {
"name": "billing_cycle",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'monthly'"
},
"next_billing_date": {
"name": "next_billing_date",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"status": {
"name": "status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'active'"
},
"category": {
"name": "category",
"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": {
"subscriptions_owner_status_idx": {
"name": "subscriptions_owner_status_idx",
"columns": [
"owner_user_id",
"status"
],
"isUnique": false
},
"subscriptions_next_billing_date_idx": {
"name": "subscriptions_next_billing_date_idx",
"columns": [
"next_billing_date"
],
"isUnique": false
}
},
"foreignKeys": {
"subscriptions_owner_user_id_user_id_fk": {
"name": "subscriptions_owner_user_id_user_id_fk",
"tableFrom": "subscriptions",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"subscriptions_cycle_check": {
"name": "subscriptions_cycle_check",
"value": "\"subscriptions\".\"billing_cycle\" in ('weekly', 'monthly', 'yearly')"
},
"subscriptions_status_check": {
"name": "subscriptions_status_check",
"value": "\"subscriptions\".\"status\" in ('active', 'cancelled')"
},
"subscriptions_amount_check": {
"name": "subscriptions_amount_check",
"value": "\"subscriptions\".\"amount_minor\" >= 0"
}
}
},
"tasks": {
"name": "tasks",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"client_id": {
"name": "client_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"project_id": {
"name": "project_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"source_journal_entry_id": {
"name": "source_journal_entry_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"status": {
"name": "status",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'todo'"
},
"priority": {
"name": "priority",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'medium'"
},
"scheduled_date": {
"name": "scheduled_date",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"due_at": {
"name": "due_at",
"type": "integer",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"estimated_minutes": {
"name": "estimated_minutes",
"type": "integer",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"actual_minutes": {
"name": "actual_minutes",
"type": "integer",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"ai_generated": {
"name": "ai_generated",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": false
},
"is_public_to_client": {
"name": "is_public_to_client",
"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))"
}
},
"indexes": {
"tasks_owner_user_id_idx": {
"name": "tasks_owner_user_id_idx",
"columns": [
"owner_user_id"
],
"isUnique": false
},
"tasks_owner_status_idx": {
"name": "tasks_owner_status_idx",
"columns": [
"owner_user_id",
"status"
],
"isUnique": false
},
"tasks_project_id_idx": {
"name": "tasks_project_id_idx",
"columns": [
"project_id"
],
"isUnique": false
},
"tasks_client_id_idx": {
"name": "tasks_client_id_idx",
"columns": [
"client_id"
],
"isUnique": false
},
"tasks_due_at_idx": {
"name": "tasks_due_at_idx",
"columns": [
"due_at"
],
"isUnique": false
}
},
"foreignKeys": {
"tasks_owner_user_id_user_id_fk": {
"name": "tasks_owner_user_id_user_id_fk",
"tableFrom": "tasks",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"tasks_client_id_clients_id_fk": {
"name": "tasks_client_id_clients_id_fk",
"tableFrom": "tasks",
"tableTo": "clients",
"columnsFrom": [
"client_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"tasks_project_id_projects_id_fk": {
"name": "tasks_project_id_projects_id_fk",
"tableFrom": "tasks",
"tableTo": "projects",
"columnsFrom": [
"project_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"tasks_source_journal_entry_id_journal_entries_id_fk": {
"name": "tasks_source_journal_entry_id_journal_entries_id_fk",
"tableFrom": "tasks",
"tableTo": "journal_entries",
"columnsFrom": [
"source_journal_entry_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"tasks_status_check": {
"name": "tasks_status_check",
"value": "\"tasks\".\"status\" in ('todo', 'in_progress', 'done', 'cancelled')"
},
"tasks_priority_check": {
"name": "tasks_priority_check",
"value": "\"tasks\".\"priority\" in ('low', 'medium', 'high', 'urgent')"
},
"tasks_estimated_minutes_check": {
"name": "tasks_estimated_minutes_check",
"value": "\"tasks\".\"estimated_minutes\" is null or \"tasks\".\"estimated_minutes\" >= 0"
},
"tasks_actual_minutes_check": {
"name": "tasks_actual_minutes_check",
"value": "\"tasks\".\"actual_minutes\" is null or \"tasks\".\"actual_minutes\" >= 0"
}
}
},
"runtime_checks": {
"name": "runtime_checks",
"columns": {
"key": {
"name": "key",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"value": {
"name": "value",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"created_at": {
"name": "created_at",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"updated_at": {
"name": "updated_at",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
},
"runtime_events": {
"name": "runtime_events",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"autoincrement": true
},
"type": {
"name": "type",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"message": {
"name": "message",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"created_at": {
"name": "created_at",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
},
"user_ai_settings": {
"name": "user_ai_settings",
"columns": {
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"provider": {
"name": "provider",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'gemini'"
},
"model": {
"name": "model",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"encrypted_api_key": {
"name": "encrypted_api_key",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"created_at": {
"name": "created_at",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "CURRENT_TIMESTAMP"
},
"updated_at": {
"name": "updated_at",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "CURRENT_TIMESTAMP"
}
},
"indexes": {},
"foreignKeys": {
"user_ai_settings_owner_user_id_user_id_fk": {
"name": "user_ai_settings_owner_user_id_user_id_fk",
"tableFrom": "user_ai_settings",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"user_ai_settings_provider_check": {
"name": "user_ai_settings_provider_check",
"value": "\"user_ai_settings\".\"provider\" in ('gemini', 'openai', 'groq', 'ollama')"
}
}
},
"files": {
"name": "files",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"uploaded_by_user_id": {
"name": "uploaded_by_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"auth_user_id": {
"name": "auth_user_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"project_id": {
"name": "project_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"kind": {
"name": "kind",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"visibility": {
"name": "visibility",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'private'"
},
"storage_path": {
"name": "storage_path",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"original_name": {
"name": "original_name",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"mime_type": {
"name": "mime_type",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"byte_size": {
"name": "byte_size",
"type": "integer",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"sha256": {
"name": "sha256",
"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,
"default": "(cast(unixepoch('subsecond') * 1000 as integer))"
}
},
"indexes": {
"files_storage_path_unique": {
"name": "files_storage_path_unique",
"columns": [
"storage_path"
],
"isUnique": true
},
"files_owner_kind_idx": {
"name": "files_owner_kind_idx",
"columns": [
"owner_user_id",
"kind"
],
"isUnique": false
},
"files_auth_user_id_idx": {
"name": "files_auth_user_id_idx",
"columns": [
"auth_user_id"
],
"isUnique": false
},
"files_project_id_idx": {
"name": "files_project_id_idx",
"columns": [
"project_id"
],
"isUnique": false
},
"files_sha256_idx": {
"name": "files_sha256_idx",
"columns": [
"sha256"
],
"isUnique": false
}
},
"foreignKeys": {
"files_owner_user_id_user_id_fk": {
"name": "files_owner_user_id_user_id_fk",
"tableFrom": "files",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "restrict",
"onUpdate": "no action"
},
"files_uploaded_by_user_id_user_id_fk": {
"name": "files_uploaded_by_user_id_user_id_fk",
"tableFrom": "files",
"tableTo": "user",
"columnsFrom": [
"uploaded_by_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "restrict",
"onUpdate": "no action"
},
"files_auth_user_id_user_id_fk": {
"name": "files_auth_user_id_user_id_fk",
"tableFrom": "files",
"tableTo": "user",
"columnsFrom": [
"auth_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "restrict",
"onUpdate": "no action"
},
"files_project_id_projects_id_fk": {
"name": "files_project_id_projects_id_fk",
"tableFrom": "files",
"tableTo": "projects",
"columnsFrom": [
"project_id"
],
"columnsTo": [
"id"
],
"onDelete": "restrict",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"files_kind_check": {
"name": "files_kind_check",
"value": "\"files\".\"kind\" in ('avatar', 'branding_logo', 'branding_icon', 'project_asset')"
},
"files_visibility_check": {
"name": "files_visibility_check",
"value": "\"files\".\"visibility\" in ('private', 'portal', 'public_branding')"
},
"files_byte_size_check": {
"name": "files_byte_size_check",
"value": "\"files\".\"byte_size\" > 0"
},
"files_sha256_check": {
"name": "files_sha256_check",
"value": "length(\"files\".\"sha256\") = 64"
},
"files_storage_path_check": {
"name": "files_storage_path_check",
"value": "\"files\".\"storage_path\" not like '/%' and instr(\"files\".\"storage_path\", '..') = 0"
},
"files_resource_check": {
"name": "files_resource_check",
"value": "(\n (\"files\".\"kind\" = 'avatar' and \"files\".\"auth_user_id\" is not null and \"files\".\"project_id\" is null and \"files\".\"visibility\" = 'private')\n or (\"files\".\"kind\" in ('branding_logo', 'branding_icon') and \"files\".\"auth_user_id\" is null and \"files\".\"project_id\" is null and \"files\".\"visibility\" = 'public_branding')\n or (\"files\".\"kind\" = 'project_asset' and \"files\".\"auth_user_id\" is null and \"files\".\"project_id\" is not null and \"files\".\"visibility\" in ('private', 'portal'))\n )"
}
}
},
"instance_branding": {
"name": "instance_branding",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true,
"autoincrement": false,
"default": "'default'"
},
"owner_user_id": {
"name": "owner_user_id",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false
},
"application_name": {
"name": "application_name",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'Neta'"
},
"short_name": {
"name": "short_name",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'Neta'"
},
"primary_color": {
"name": "primary_color",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'#C81E1E'"
},
"accent_color": {
"name": "accent_color",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'#E6EDF5'"
},
"light_logo_file_id": {
"name": "light_logo_file_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"dark_logo_file_id": {
"name": "dark_logo_file_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"icon_file_id": {
"name": "icon_file_id",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"default_color_mode": {
"name": "default_color_mode",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'system'"
},
"radius_scale": {
"name": "radius_scale",
"type": "text",
"primaryKey": false,
"notNull": true,
"autoincrement": false,
"default": "'default'"
},
"organization_name": {
"name": "organization_name",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"support_email": {
"name": "support_email",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"portal_welcome_text": {
"name": "portal_welcome_text",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"portal_footer_text": {
"name": "portal_footer_text",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"updated_by_user_id": {
"name": "updated_by_user_id",
"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,
"default": "(cast(unixepoch('subsecond') * 1000 as integer))"
}
},
"indexes": {
"instance_branding_owner_unique": {
"name": "instance_branding_owner_unique",
"columns": [
"owner_user_id"
],
"isUnique": true
}
},
"foreignKeys": {
"instance_branding_owner_user_id_user_id_fk": {
"name": "instance_branding_owner_user_id_user_id_fk",
"tableFrom": "instance_branding",
"tableTo": "user",
"columnsFrom": [
"owner_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "restrict",
"onUpdate": "no action"
},
"instance_branding_light_logo_file_id_files_id_fk": {
"name": "instance_branding_light_logo_file_id_files_id_fk",
"tableFrom": "instance_branding",
"tableTo": "files",
"columnsFrom": [
"light_logo_file_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"instance_branding_dark_logo_file_id_files_id_fk": {
"name": "instance_branding_dark_logo_file_id_files_id_fk",
"tableFrom": "instance_branding",
"tableTo": "files",
"columnsFrom": [
"dark_logo_file_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"instance_branding_icon_file_id_files_id_fk": {
"name": "instance_branding_icon_file_id_files_id_fk",
"tableFrom": "instance_branding",
"tableTo": "files",
"columnsFrom": [
"icon_file_id"
],
"columnsTo": [
"id"
],
"onDelete": "set null",
"onUpdate": "no action"
},
"instance_branding_updated_by_user_id_user_id_fk": {
"name": "instance_branding_updated_by_user_id_user_id_fk",
"tableFrom": "instance_branding",
"tableTo": "user",
"columnsFrom": [
"updated_by_user_id"
],
"columnsTo": [
"id"
],
"onDelete": "restrict",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {
"instance_branding_id_check": {
"name": "instance_branding_id_check",
"value": "\"instance_branding\".\"id\" = 'default'"
},
"instance_branding_primary_color_check": {
"name": "instance_branding_primary_color_check",
"value": "\"instance_branding\".\"primary_color\" glob '#[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]'"
},
"instance_branding_accent_color_check": {
"name": "instance_branding_accent_color_check",
"value": "\"instance_branding\".\"accent_color\" glob '#[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]'"
},
"instance_branding_color_mode_check": {
"name": "instance_branding_color_mode_check",
"value": "\"instance_branding\".\"default_color_mode\" in ('light', 'dark', 'system')"
},
"instance_branding_radius_scale_check": {
"name": "instance_branding_radius_scale_check",
"value": "\"instance_branding\".\"radius_scale\" in ('compact', 'default', 'soft')"
}
}
}
},
"views": {},
"enums": {},
"_meta": {
"schemas": {},
"tables": {},
"columns": {}
},
"internal": {
"indexes": {}
}
}