{
  "id": "1a5086d6-70ea-4b65-bec1-36017779daf7",
  "prevId": "6601cc62-67f2-495f-873a-e5e556729215",
  "version": "7",
  "dialect": "postgresql",
  "tables": {
    "public.admin_roles": {
      "name": "admin_roles",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "permissions": {
          "name": "permissions",
          "type": "text[]",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::text[]"
        },
        "is_system_role": {
          "name": "is_system_role",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "admin_roles_name_unique": {
          "name": "admin_roles_name_unique",
          "nullsNotDistinct": false,
          "columns": [
            "name"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.admin_users": {
      "name": "admin_users",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "password_hash": {
          "name": "password_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "totp_secret": {
          "name": "totp_secret",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "role_id": {
          "name": "role_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "admin_users_email_unique": {
          "name": "admin_users_email_unique",
          "nullsNotDistinct": false,
          "columns": [
            "email"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "admin_users_status_check": {
          "name": "admin_users_status_check",
          "value": "\"admin_users\".\"status\" IN ('active', 'suspended')"
        }
      },
      "isRLSEnabled": false
    },
    "public.ai_chat_messages": {
      "name": "ai_chat_messages",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "session_id": {
          "name": "session_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "role": {
          "name": "role",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "content": {
          "name": "content",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "tokens_used": {
          "name": "tokens_used",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "metadata": {
          "name": "metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "ai_chat_messages_session": {
          "name": "ai_chat_messages_session",
          "columns": [
            {
              "expression": "session_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "ai_chat_messages_session_id_ai_chat_sessions_id_fk": {
          "name": "ai_chat_messages_session_id_ai_chat_sessions_id_fk",
          "tableFrom": "ai_chat_messages",
          "tableTo": "ai_chat_sessions",
          "columnsFrom": [
            "session_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "ai_chat_messages_tenant_id_tenants_id_fk": {
          "name": "ai_chat_messages_tenant_id_tenants_id_fk",
          "tableFrom": "ai_chat_messages",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "ai_chat_messages_role_check": {
          "name": "ai_chat_messages_role_check",
          "value": "\"ai_chat_messages\".\"role\" IN ('user', 'assistant', 'system')"
        }
      },
      "isRLSEnabled": false
    },
    "public.ai_chat_sessions": {
      "name": "ai_chat_sessions",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "channel": {
          "name": "channel",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'in_app'"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "ai_chat_sessions_user": {
          "name": "ai_chat_sessions_user",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "user_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "ai_chat_sessions_tenant_id_tenants_id_fk": {
          "name": "ai_chat_sessions_tenant_id_tenants_id_fk",
          "tableFrom": "ai_chat_sessions",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "ai_chat_sessions_user_id_users_id_fk": {
          "name": "ai_chat_sessions_user_id_users_id_fk",
          "tableFrom": "ai_chat_sessions",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "ai_chat_sessions_channel_check": {
          "name": "ai_chat_sessions_channel_check",
          "value": "\"ai_chat_sessions\".\"channel\" IN ('in_app', 'telegram', 'whatsapp')"
        },
        "ai_chat_sessions_user_id_in_app_check": {
          "name": "ai_chat_sessions_user_id_in_app_check",
          "value": "\"ai_chat_sessions\".\"channel\" <> 'in_app' OR \"ai_chat_sessions\".\"user_id\" IS NOT NULL"
        }
      },
      "isRLSEnabled": false
    },
    "public.ai_credit_purchases": {
      "name": "ai_credit_purchases",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "amount_usd": {
          "name": "amount_usd",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "tokens_granted": {
          "name": "tokens_granted",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true
        },
        "tokens_remaining": {
          "name": "tokens_remaining",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true
        },
        "payment_reference": {
          "name": "payment_reference",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "ai_credit_purchases_tenant_id_tenants_id_fk": {
          "name": "ai_credit_purchases_tenant_id_tenants_id_fk",
          "tableFrom": "ai_credit_purchases",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.ai_global_config": {
      "name": "ai_global_config",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "main_model_id": {
          "name": "main_model_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "backup_model_ids": {
          "name": "backup_model_ids",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'[]'::jsonb"
        },
        "use_case_prompts": {
          "name": "use_case_prompts",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_by": {
          "name": "updated_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "ai_global_config_singleton": {
          "name": "ai_global_config_singleton",
          "columns": [
            {
              "expression": "(true)",
              "asc": true,
              "isExpression": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "ai_global_config_main_model_id_ai_model_pricing_model_id_fk": {
          "name": "ai_global_config_main_model_id_ai_model_pricing_model_id_fk",
          "tableFrom": "ai_global_config",
          "tableTo": "ai_model_pricing",
          "columnsFrom": [
            "main_model_id"
          ],
          "columnsTo": [
            "model_id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        },
        "ai_global_config_updated_by_admin_users_id_fk": {
          "name": "ai_global_config_updated_by_admin_users_id_fk",
          "tableFrom": "ai_global_config",
          "tableTo": "admin_users",
          "columnsFrom": [
            "updated_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.ai_model_pricing": {
      "name": "ai_model_pricing",
      "schema": "",
      "columns": {
        "model_id": {
          "name": "model_id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "provider": {
          "name": "provider",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "label": {
          "name": "label",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "input_cost_per_1m": {
          "name": "input_cost_per_1m",
          "type": "numeric(12, 6)",
          "primaryKey": false,
          "notNull": true
        },
        "output_cost_per_1m": {
          "name": "output_cost_per_1m",
          "type": "numeric(12, 6)",
          "primaryKey": false,
          "notNull": true
        },
        "is_vision_capable": {
          "name": "is_vision_capable",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "active": {
          "name": "active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "ai_model_pricing_provider_check": {
          "name": "ai_model_pricing_provider_check",
          "value": "\"ai_model_pricing\".\"provider\" IN ('anthropic', 'openai', 'google')"
        }
      },
      "isRLSEnabled": false
    },
    "public.ai_tenant_settings": {
      "name": "ai_tenant_settings",
      "schema": "",
      "columns": {
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true
        },
        "personality_prompt": {
          "name": "personality_prompt",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "use_case_overrides": {
          "name": "use_case_overrides",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "extra_usage_enabled": {
          "name": "extra_usage_enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "extra_spend_limit_usd": {
          "name": "extra_spend_limit_usd",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "auto_reload_enabled": {
          "name": "auto_reload_enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "auto_reload_amount_usd": {
          "name": "auto_reload_amount_usd",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "ai_tenant_settings_tenant_id_tenants_id_fk": {
          "name": "ai_tenant_settings_tenant_id_tenants_id_fk",
          "tableFrom": "ai_tenant_settings",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.ai_tier_quotas": {
      "name": "ai_tier_quotas",
      "schema": "",
      "columns": {
        "tier": {
          "name": "tier",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "model_id": {
          "name": "model_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "monthly_tokens": {
          "name": "monthly_tokens",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true
        },
        "extra_allowed": {
          "name": "extra_allowed",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "extra_max_usd": {
          "name": "extra_max_usd",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "effective_from": {
          "name": "effective_from",
          "type": "date",
          "primaryKey": false,
          "notNull": true
        },
        "effective_to": {
          "name": "effective_to",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "ai_tier_quotas_tier_effective_from_pk": {
          "name": "ai_tier_quotas_tier_effective_from_pk",
          "columns": [
            "tier",
            "effective_from"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "ai_tier_quotas_tier_check": {
          "name": "ai_tier_quotas_tier_check",
          "value": "\"ai_tier_quotas\".\"tier\" IN ('freelancer', 'business', 'enterprise', 'white_label')"
        }
      },
      "isRLSEnabled": false
    },
    "public.ai_usage_log": {
      "name": "ai_usage_log",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "use_case": {
          "name": "use_case",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "model_id": {
          "name": "model_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "provider": {
          "name": "provider",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "input_tokens": {
          "name": "input_tokens",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "output_tokens": {
          "name": "output_tokens",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "total_tokens": {
          "name": "total_tokens",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "cost_usd": {
          "name": "cost_usd",
          "type": "numeric(12, 6)",
          "primaryKey": false,
          "notNull": true
        },
        "billed_from": {
          "name": "billed_from",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "duration_ms": {
          "name": "duration_ms",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "entity_type": {
          "name": "entity_type",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "entity_id": {
          "name": "entity_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "error": {
          "name": "error",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "ai_usage_log_tenant_period": {
          "name": "ai_usage_log_tenant_period",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "ai_usage_log_use_case": {
          "name": "ai_usage_log_use_case",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "use_case",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "ai_usage_log_tenant_id_tenants_id_fk": {
          "name": "ai_usage_log_tenant_id_tenants_id_fk",
          "tableFrom": "ai_usage_log",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "ai_usage_log_user_id_users_id_fk": {
          "name": "ai_usage_log_user_id_users_id_fk",
          "tableFrom": "ai_usage_log",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "ai_usage_log_provider_check": {
          "name": "ai_usage_log_provider_check",
          "value": "\"ai_usage_log\".\"provider\" IN ('anthropic', 'openai', 'google')"
        },
        "ai_usage_log_billed_from_check": {
          "name": "ai_usage_log_billed_from_check",
          "value": "\"ai_usage_log\".\"billed_from\" IN ('quota', 'extra', 'purchased')"
        }
      },
      "isRLSEnabled": false
    },
    "public.tenant_audit_log": {
      "name": "tenant_audit_log",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "actor_name": {
          "name": "actor_name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "actor_email": {
          "name": "actor_email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "event_type": {
          "name": "event_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "entity_type": {
          "name": "entity_type",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "entity_id": {
          "name": "entity_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "entity_label": {
          "name": "entity_label",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "metadata": {
          "name": "metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "ip_address": {
          "name": "ip_address",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_tal_tenant_time": {
          "name": "idx_tal_tenant_time",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tal_entity": {
          "name": "idx_tal_entity",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "entity_type",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "entity_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tal_user": {
          "name": "idx_tal_user",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "user_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tal_event_type": {
          "name": "idx_tal_event_type",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "event_type",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "tenant_audit_log_tenant_id_tenants_id_fk": {
          "name": "tenant_audit_log_tenant_id_tenants_id_fk",
          "tableFrom": "tenant_audit_log",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "tenant_audit_log_user_id_users_id_fk": {
          "name": "tenant_audit_log_user_id_users_id_fk",
          "tableFrom": "tenant_audit_log",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.invitations": {
      "name": "invitations",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "role_id": {
          "name": "role_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "token_hash": {
          "name": "token_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "accepted_at": {
          "name": "accepted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "invitations_token_hash_idx": {
          "name": "invitations_token_hash_idx",
          "columns": [
            {
              "expression": "token_hash",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "invitations_tenant_id_tenants_id_fk": {
          "name": "invitations_tenant_id_tenants_id_fk",
          "tableFrom": "invitations",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "invitations_role_id_roles_id_fk": {
          "name": "invitations_role_id_roles_id_fk",
          "tableFrom": "invitations",
          "tableTo": "roles",
          "columnsFrom": [
            "role_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "invitations_token_hash_unique": {
          "name": "invitations_token_hash_unique",
          "nullsNotDistinct": false,
          "columns": [
            "token_hash"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.oauth_accounts": {
      "name": "oauth_accounts",
      "schema": "",
      "columns": {
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "provider": {
          "name": "provider",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "provider_user_id": {
          "name": "provider_user_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "oauth_accounts_user_id_users_id_fk": {
          "name": "oauth_accounts_user_id_users_id_fk",
          "tableFrom": "oauth_accounts",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "oauth_accounts_user_id_provider_pk": {
          "name": "oauth_accounts_user_id_provider_pk",
          "columns": [
            "user_id",
            "provider"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.refresh_tokens": {
      "name": "refresh_tokens",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "token_hash": {
          "name": "token_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "revoked_at": {
          "name": "revoked_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "refresh_tokens_token_hash_idx": {
          "name": "refresh_tokens_token_hash_idx",
          "columns": [
            {
              "expression": "token_hash",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "refresh_tokens_user_id_users_id_fk": {
          "name": "refresh_tokens_user_id_users_id_fk",
          "tableFrom": "refresh_tokens",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "refresh_tokens_tenant_id_tenants_id_fk": {
          "name": "refresh_tokens_tenant_id_tenants_id_fk",
          "tableFrom": "refresh_tokens",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "refresh_tokens_token_hash_unique": {
          "name": "refresh_tokens_token_hash_unique",
          "nullsNotDistinct": false,
          "columns": [
            "token_hash"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.calendar_connections": {
      "name": "calendar_connections",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "provider": {
          "name": "provider",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "external_user_id": {
          "name": "external_user_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "access_token": {
          "name": "access_token",
          "type": "bytea",
          "primaryKey": false,
          "notNull": true
        },
        "refresh_token": {
          "name": "refresh_token",
          "type": "bytea",
          "primaryKey": false,
          "notNull": true
        },
        "token_expires_at": {
          "name": "token_expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "selected_calendar_id": {
          "name": "selected_calendar_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "sync_enabled": {
          "name": "sync_enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "last_synced_at": {
          "name": "last_synced_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_calendar_connections_user": {
          "name": "idx_calendar_connections_user",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "user_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "calendar_connections_tenant_id_tenants_id_fk": {
          "name": "calendar_connections_tenant_id_tenants_id_fk",
          "tableFrom": "calendar_connections",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "calendar_connections_user_id_users_id_fk": {
          "name": "calendar_connections_user_id_users_id_fk",
          "tableFrom": "calendar_connections",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "uq_calendar_connections_tenant_user_provider": {
          "name": "uq_calendar_connections_tenant_user_provider",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id",
            "user_id",
            "provider"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "calendar_connections_provider_check": {
          "name": "calendar_connections_provider_check",
          "value": "\"calendar_connections\".\"provider\" IN ('google','outlook')"
        }
      },
      "isRLSEnabled": false
    },
    "public.calendar_events": {
      "name": "calendar_events",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "start_at": {
          "name": "start_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "end_at": {
          "name": "end_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "all_day": {
          "name": "all_day",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "location": {
          "name": "location",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'manual'"
        },
        "task_id": {
          "name": "task_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "external_id": {
          "name": "external_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "external_calendar_id": {
          "name": "external_calendar_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "synced_at": {
          "name": "synced_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "sync_status": {
          "name": "sync_status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'local'"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_calendar_events_range": {
          "name": "idx_calendar_events_range",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "start_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "end_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_calendar_events_created_by": {
          "name": "idx_calendar_events_created_by",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_by",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "calendar_events_tenant_id_tenants_id_fk": {
          "name": "calendar_events_tenant_id_tenants_id_fk",
          "tableFrom": "calendar_events",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "calendar_events_created_by_users_id_fk": {
          "name": "calendar_events_created_by_users_id_fk",
          "tableFrom": "calendar_events",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "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": "cascade",
          "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": "cascade",
          "onUpdate": "no action"
        },
        "calendar_events_customer_id_customers_id_fk": {
          "name": "calendar_events_customer_id_customers_id_fk",
          "tableFrom": "calendar_events",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "uq_calendar_events_tenant_source_external": {
          "name": "uq_calendar_events_tenant_source_external",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id",
            "source",
            "external_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "calendar_events_source_check": {
          "name": "calendar_events_source_check",
          "value": "\"calendar_events\".\"source\" IN ('manual','task','project','google','outlook','calendly','acuity','mocal')"
        },
        "calendar_events_sync_status_check": {
          "name": "calendar_events_sync_status_check",
          "value": "\"calendar_events\".\"sync_status\" IN ('local','synced','pending','error')"
        }
      },
      "isRLSEnabled": false
    },
    "public.scheduling_connections": {
      "name": "scheduling_connections",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "provider": {
          "name": "provider",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "api_key": {
          "name": "api_key",
          "type": "bytea",
          "primaryKey": false,
          "notNull": true
        },
        "webhook_uri": {
          "name": "webhook_uri",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "settings": {
          "name": "settings",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false,
          "default": "'{}'::jsonb"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "scheduling_connections_tenant_id_tenants_id_fk": {
          "name": "scheduling_connections_tenant_id_tenants_id_fk",
          "tableFrom": "scheduling_connections",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "uq_scheduling_connections_tenant_provider": {
          "name": "uq_scheduling_connections_tenant_provider",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id",
            "provider"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "scheduling_connections_provider_check": {
          "name": "scheduling_connections_provider_check",
          "value": "\"scheduling_connections\".\"provider\" IN ('calendly','acuity','mocal')"
        }
      },
      "isRLSEnabled": false
    },
    "public.adapter_credentials": {
      "name": "adapter_credentials",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "adapter_id": {
          "name": "adapter_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "ciphertext": {
          "name": "ciphertext",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "iv": {
          "name": "iv",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "auth_tag": {
          "name": "auth_tag",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "metadata": {
          "name": "metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_adapter_credentials_tenant": {
          "name": "idx_adapter_credentials_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "adapter_credentials_tenant_id_tenants_id_fk": {
          "name": "adapter_credentials_tenant_id_tenants_id_fk",
          "tableFrom": "adapter_credentials",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "adapter_credentials_tenant_adapter_unique": {
          "name": "adapter_credentials_tenant_adapter_unique",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id",
            "adapter_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "adapter_credentials_adapter_id_check": {
          "name": "adapter_credentials_adapter_id_check",
          "value": "\"adapter_credentials\".\"adapter_id\" IN ('gmail','outlook','telegram','slack','whatsapp','smtp','trello','asana','jira','monday','clickup')"
        }
      },
      "isRLSEnabled": false
    },
    "public.notifications": {
      "name": "notifications",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "type": {
          "name": "type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "title_key": {
          "name": "title_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "body_key": {
          "name": "body_key",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "params": {
          "name": "params",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "entity_type": {
          "name": "entity_type",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "entity_id": {
          "name": "entity_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "read_at": {
          "name": "read_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "notifications_inbox": {
          "name": "notifications_inbox",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "user_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "read_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "notifications_tenant_id_tenants_id_fk": {
          "name": "notifications_tenant_id_tenants_id_fk",
          "tableFrom": "notifications",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "notifications_user_id_users_id_fk": {
          "name": "notifications_user_id_users_id_fk",
          "tableFrom": "notifications",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.push_subscriptions": {
      "name": "push_subscriptions",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "endpoint": {
          "name": "endpoint",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "p256dh": {
          "name": "p256dh",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "auth": {
          "name": "auth",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "user_agent": {
          "name": "user_agent",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "last_used_at": {
          "name": "last_used_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_push_subs_user": {
          "name": "idx_push_subs_user",
          "columns": [
            {
              "expression": "user_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "push_subscriptions_user_id_users_id_fk": {
          "name": "push_subscriptions_user_id_users_id_fk",
          "tableFrom": "push_subscriptions",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "push_subscriptions_tenant_id_tenants_id_fk": {
          "name": "push_subscriptions_tenant_id_tenants_id_fk",
          "tableFrom": "push_subscriptions",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "push_subscriptions_endpoint_unique": {
          "name": "push_subscriptions_endpoint_unique",
          "nullsNotDistinct": false,
          "columns": [
            "endpoint"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.customer_communications": {
      "name": "customer_communications",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "direction": {
          "name": "direction",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "channel": {
          "name": "channel",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "subject": {
          "name": "subject",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "body": {
          "name": "body",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "from_address": {
          "name": "from_address",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "to_address": {
          "name": "to_address",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "related_id": {
          "name": "related_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "related_type": {
          "name": "related_type",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "sent_at": {
          "name": "sent_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_customer_comms_customer": {
          "name": "idx_customer_comms_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "sent_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "customer_communications_tenant_id_tenants_id_fk": {
          "name": "customer_communications_tenant_id_tenants_id_fk",
          "tableFrom": "customer_communications",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_communications_customer_id_customers_id_fk": {
          "name": "customer_communications_customer_id_customers_id_fk",
          "tableFrom": "customer_communications",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_communications_created_by_users_id_fk": {
          "name": "customer_communications_created_by_users_id_fk",
          "tableFrom": "customer_communications",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "customer_communications_direction_check": {
          "name": "customer_communications_direction_check",
          "value": "\"customer_communications\".\"direction\" IN ('outbound', 'inbound', 'internal')"
        },
        "customer_communications_channel_check": {
          "name": "customer_communications_channel_check",
          "value": "\"customer_communications\".\"channel\" IN ('email', 'telegram', 'ticket', 'note', 'system')"
        }
      },
      "isRLSEnabled": false
    },
    "public.customer_contacts": {
      "name": "customer_contacts",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "phone": {
          "name": "phone",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "role": {
          "name": "role",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "is_primary": {
          "name": "is_primary",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_customer_contacts_customer": {
          "name": "idx_customer_contacts_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "customer_contacts_customer_id_customers_id_fk": {
          "name": "customer_contacts_customer_id_customers_id_fk",
          "tableFrom": "customer_contacts",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_contacts_tenant_id_tenants_id_fk": {
          "name": "customer_contacts_tenant_id_tenants_id_fk",
          "tableFrom": "customer_contacts",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.customer_portal_users": {
      "name": "customer_portal_users",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "contact_id": {
          "name": "contact_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "portal_role": {
          "name": "portal_role",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'customer_viewer'"
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "invited_at": {
          "name": "invited_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "accepted_at": {
          "name": "accepted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_customer_portal_users_customer": {
          "name": "idx_customer_portal_users_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "customer_portal_users_customer_id_customers_id_fk": {
          "name": "customer_portal_users_customer_id_customers_id_fk",
          "tableFrom": "customer_portal_users",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_portal_users_tenant_id_tenants_id_fk": {
          "name": "customer_portal_users_tenant_id_tenants_id_fk",
          "tableFrom": "customer_portal_users",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_portal_users_contact_id_customer_contacts_id_fk": {
          "name": "customer_portal_users_contact_id_customer_contacts_id_fk",
          "tableFrom": "customer_portal_users",
          "tableTo": "customer_contacts",
          "columnsFrom": [
            "contact_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_portal_users_user_id_users_id_fk": {
          "name": "customer_portal_users_user_id_users_id_fk",
          "tableFrom": "customer_portal_users",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "customer_portal_users_status_check": {
          "name": "customer_portal_users_status_check",
          "value": "\"customer_portal_users\".\"status\" IN ('active', 'frozen')"
        }
      },
      "isRLSEnabled": false
    },
    "public.customers": {
      "name": "customers",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "company": {
          "name": "company",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "phone": {
          "name": "phone",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "address": {
          "name": "address",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_customers_tenant_status": {
          "name": "idx_customers_tenant_status",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_customers_tenant_name": {
          "name": "idx_customers_tenant_name",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "name",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "customers_tenant_id_tenants_id_fk": {
          "name": "customers_tenant_id_tenants_id_fk",
          "tableFrom": "customers",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "customers_status_check": {
          "name": "customers_status_check",
          "value": "\"customers\".\"status\" IN ('active', 'archived')"
        }
      },
      "isRLSEnabled": false
    },
    "public.expense_corrections": {
      "name": "expense_corrections",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "expense_id": {
          "name": "expense_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "field_name": {
          "name": "field_name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "original_value": {
          "name": "original_value",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "corrected_value": {
          "name": "corrected_value",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_expense_corrections_expense": {
          "name": "idx_expense_corrections_expense",
          "columns": [
            {
              "expression": "expense_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "expense_corrections_expense_id_expenses_id_fk": {
          "name": "expense_corrections_expense_id_expenses_id_fk",
          "tableFrom": "expense_corrections",
          "tableTo": "expenses",
          "columnsFrom": [
            "expense_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "expense_corrections_user_id_users_id_fk": {
          "name": "expense_corrections_user_id_users_id_fk",
          "tableFrom": "expense_corrections",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.expenses": {
      "name": "expenses",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "r2_key": {
          "name": "r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "file_name": {
          "name": "file_name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "file_type": {
          "name": "file_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "file_size_bytes": {
          "name": "file_size_bytes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "vendor_name": {
          "name": "vendor_name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "vendor_tax_id": {
          "name": "vendor_tax_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "invoice_number": {
          "name": "invoice_number",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "invoice_total": {
          "name": "invoice_total",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "vat_amount": {
          "name": "vat_amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "allocation_number": {
          "name": "allocation_number",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "raw_ocr_text": {
          "name": "raw_ocr_text",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "expense_date": {
          "name": "expense_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "amount": {
          "name": "amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "vat_deductible": {
          "name": "vat_deductible",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'PENDING'"
        },
        "ocr_confidence": {
          "name": "ocr_confidence",
          "type": "numeric(3, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "processing_started_at": {
          "name": "processing_started_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "processed_at": {
          "name": "processed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "processing_error": {
          "name": "processing_error",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "expense_category": {
          "name": "expense_category",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "deduction_pct": {
          "name": "deduction_pct",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "deduction_confidence": {
          "name": "deduction_confidence",
          "type": "numeric(3, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "deduction_reasoning_he": {
          "name": "deduction_reasoning_he",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "deduction_reasoning_en": {
          "name": "deduction_reasoning_en",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "evaluated_at": {
          "name": "evaluated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "is_per_diem": {
          "name": "is_per_diem",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "per_diem_days": {
          "name": "per_diem_days",
          "type": "numeric(5, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "per_diem_rate_ils": {
          "name": "per_diem_rate_ils",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'upload'"
        },
        "source_metadata": {
          "name": "source_metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "business_percent": {
          "name": "business_percent",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 100
        },
        "deleted_at": {
          "name": "deleted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_expenses_report": {
          "name": "idx_expenses_report",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "expense_date",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_expenses_cursor": {
          "name": "idx_expenses_cursor",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_expenses_project": {
          "name": "idx_expenses_project",
          "columns": [
            {
              "expression": "project_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "expenses_tenant_id_tenants_id_fk": {
          "name": "expenses_tenant_id_tenants_id_fk",
          "tableFrom": "expenses",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "expenses_project_id_projects_id_fk": {
          "name": "expenses_project_id_projects_id_fk",
          "tableFrom": "expenses",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "expenses_created_by_users_id_fk": {
          "name": "expenses_created_by_users_id_fk",
          "tableFrom": "expenses",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "expenses_business_percent_check": {
          "name": "expenses_business_percent_check",
          "value": "\"expenses\".\"business_percent\" >= 0 AND \"expenses\".\"business_percent\" <= 100"
        },
        "expenses_file_type_check": {
          "name": "expenses_file_type_check",
          "value": "\"expenses\".\"file_type\" IN ('pdf','jpg','png','heic')"
        },
        "expenses_status_check": {
          "name": "expenses_status_check",
          "value": "\"expenses\".\"status\" IN ('PENDING','PROCESSING','COMPLETED','FAILED','NEEDS_REVIEW')"
        },
        "expenses_category_check": {
          "name": "expenses_category_check",
          "value": "\"expenses\".\"expense_category\" IS NULL OR \"expenses\".\"expense_category\" IN ('office','marketing','professional','vehicle','equipment','finance','welfare','exceptional','travel')"
        },
        "expenses_deduction_pct_check": {
          "name": "expenses_deduction_pct_check",
          "value": "\"expenses\".\"deduction_pct\" IS NULL OR (\"expenses\".\"deduction_pct\" >= 0 AND \"expenses\".\"deduction_pct\" <= 100)"
        },
        "expenses_source_check": {
          "name": "expenses_source_check",
          "value": "\"expenses\".\"source\" IN ('upload','email','whatsapp','telegram')"
        }
      },
      "isRLSEnabled": false
    },
    "public.status_subscribers": {
      "name": "status_subscribers",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "subscribed_at": {
          "name": "subscribed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "unsubscribe_token": {
          "name": "unsubscribe_token",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "status_subscribers_email_unique": {
          "name": "status_subscribers_email_unique",
          "nullsNotDistinct": false,
          "columns": [
            "email"
          ]
        },
        "status_subscribers_unsubscribe_token_unique": {
          "name": "status_subscribers_unsubscribe_token_unique",
          "nullsNotDistinct": false,
          "columns": [
            "unsubscribe_token"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.system_incident_updates": {
      "name": "system_incident_updates",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "incident_id": {
          "name": "incident_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "body": {
          "name": "body",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "created_by": {
          "name": "created_by",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {
        "idx_system_incident_updates_incident": {
          "name": "idx_system_incident_updates_incident",
          "columns": [
            {
              "expression": "incident_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "system_incident_updates_incident_id_system_incidents_id_fk": {
          "name": "system_incident_updates_incident_id_system_incidents_id_fk",
          "tableFrom": "system_incident_updates",
          "tableTo": "system_incidents",
          "columnsFrom": [
            "incident_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "system_incident_updates_status_check": {
          "name": "system_incident_updates_status_check",
          "value": "\"system_incident_updates\".\"status\" IN ('investigating','identified','monitoring','resolved')"
        }
      },
      "isRLSEnabled": false
    },
    "public.system_incidents": {
      "name": "system_incidents",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "impact": {
          "name": "impact",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "affected_services": {
          "name": "affected_services",
          "type": "text[]",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::text[]"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "resolved_at": {
          "name": "resolved_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_by": {
          "name": "created_by",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {
        "idx_system_incidents_resolved_at": {
          "name": "idx_system_incidents_resolved_at",
          "columns": [
            {
              "expression": "resolved_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "system_incidents_status_check": {
          "name": "system_incidents_status_check",
          "value": "\"system_incidents\".\"status\" IN ('investigating','identified','monitoring','resolved')"
        },
        "system_incidents_impact_check": {
          "name": "system_incidents_impact_check",
          "value": "\"system_incidents\".\"impact\" IN ('minor','major','critical')"
        }
      },
      "isRLSEnabled": false
    },
    "public.users": {
      "name": "users",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "password_hash": {
          "name": "password_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "avatar_url": {
          "name": "avatar_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "email_verified_at": {
          "name": "email_verified_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "two_factor_enabled": {
          "name": "two_factor_enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "two_factor_phone": {
          "name": "two_factor_phone",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "two_factor_phone_suffix": {
          "name": "two_factor_phone_suffix",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "last_login_at": {
          "name": "last_login_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "users_email_idx": {
          "name": "users_email_idx",
          "columns": [
            {
              "expression": "email",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_users_last_login": {
          "name": "idx_users_last_login",
          "columns": [
            {
              "expression": "last_login_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "users_email_unique": {
          "name": "users_email_unique",
          "nullsNotDistinct": false,
          "columns": [
            "email"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "users_status_check": {
          "name": "users_status_check",
          "value": "\"users\".\"status\" IN ('active', 'suspended')"
        }
      },
      "isRLSEnabled": false
    },
    "public.tenant_settings": {
      "name": "tenant_settings",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "filing_cadence": {
          "name": "filing_cadence",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'monthly'"
        },
        "tax_basis": {
          "name": "tax_basis",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'cash'"
        },
        "business_category": {
          "name": "business_category",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "per_diem_rates": {
          "name": "per_diem_rates",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{\"domestic_full_day\":100,\"domestic_half_day\":50,\"international_full_day\":250,\"international_half_day\":125}'::jsonb"
        },
        "expense_default_category": {
          "name": "expense_default_category",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'exceptional'"
        },
        "expense_auto_approve_threshold_ils": {
          "name": "expense_auto_approve_threshold_ils",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "expense_receipt_reminder_enabled": {
          "name": "expense_receipt_reminder_enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "expense_receipt_reminder_days": {
          "name": "expense_receipt_reminder_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 7
        },
        "expense_approval_threshold_ils": {
          "name": "expense_approval_threshold_ils",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "expense_approver_role": {
          "name": "expense_approver_role",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'any_admin'"
        },
        "idle_timer_threshold_minutes": {
          "name": "idle_timer_threshold_minutes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 10
        },
        "time_rounding": {
          "name": "time_rounding",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'none'"
        },
        "contractor_require_time_approval": {
          "name": "contractor_require_time_approval",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "default_payment_terms_days": {
          "name": "default_payment_terms_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 30
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "tenant_settings_tenant_id_tenants_id_fk": {
          "name": "tenant_settings_tenant_id_tenants_id_fk",
          "tableFrom": "tenant_settings",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "tenant_settings_tenant_id_unique": {
          "name": "tenant_settings_tenant_id_unique",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "tenant_settings_filing_cadence_check": {
          "name": "tenant_settings_filing_cadence_check",
          "value": "\"tenant_settings\".\"filing_cadence\" IN ('monthly','bimonthly')"
        },
        "tenant_settings_tax_basis_check": {
          "name": "tenant_settings_tax_basis_check",
          "value": "\"tenant_settings\".\"tax_basis\" IN ('cash','accrual')"
        }
      },
      "isRLSEnabled": false
    },
    "public.tenants": {
      "name": "tenants",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "slug": {
          "name": "slug",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "tier": {
          "name": "tier",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'freelancer'"
        },
        "require_approval": {
          "name": "require_approval",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "enforce_2fa": {
          "name": "enforce_2fa",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "disable_2fa_remember_device": {
          "name": "disable_2fa_remember_device",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "country_code": {
          "name": "country_code",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'IL'"
        },
        "default_currency": {
          "name": "default_currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "default_timezone": {
          "name": "default_timezone",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'Asia/Jerusalem'"
        },
        "logo_url": {
          "name": "logo_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "settings": {
          "name": "settings",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "tenants_slug_idx": {
          "name": "tenants_slug_idx",
          "columns": [
            {
              "expression": "slug",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "tenants_slug_unique": {
          "name": "tenants_slug_unique",
          "nullsNotDistinct": false,
          "columns": [
            "slug"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "tenants_tier_check": {
          "name": "tenants_tier_check",
          "value": "\"tenants\".\"tier\" IN ('freelancer', 'business', 'enterprise', 'white_label')"
        },
        "tenants_country_code_check": {
          "name": "tenants_country_code_check",
          "value": "\"tenants\".\"country_code\" IN ('IL')"
        }
      },
      "isRLSEnabled": false
    },
    "public.permissions": {
      "name": "permissions",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "key": {
          "name": "key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "permissions_key_unique": {
          "name": "permissions_key_unique",
          "nullsNotDistinct": false,
          "columns": [
            "key"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.role_permissions": {
      "name": "role_permissions",
      "schema": "",
      "columns": {
        "role_id": {
          "name": "role_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "permission_id": {
          "name": "permission_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {},
      "foreignKeys": {
        "role_permissions_role_id_roles_id_fk": {
          "name": "role_permissions_role_id_roles_id_fk",
          "tableFrom": "role_permissions",
          "tableTo": "roles",
          "columnsFrom": [
            "role_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "role_permissions_permission_id_permissions_id_fk": {
          "name": "role_permissions_permission_id_permissions_id_fk",
          "tableFrom": "role_permissions",
          "tableTo": "permissions",
          "columnsFrom": [
            "permission_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "role_permissions_role_id_permission_id_pk": {
          "name": "role_permissions_role_id_permission_id_pk",
          "columns": [
            "role_id",
            "permission_id"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.roles": {
      "name": "roles",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "is_system_role": {
          "name": "is_system_role",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "roles_tenant_id_tenants_id_fk": {
          "name": "roles_tenant_id_tenants_id_fk",
          "tableFrom": "roles",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "roles_tenant_name_unique": {
          "name": "roles_tenant_name_unique",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id",
            "name"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.tenant_memberships": {
      "name": "tenant_memberships",
      "schema": "",
      "columns": {
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "role_id": {
          "name": "role_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "freeze_reason": {
          "name": "freeze_reason",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "tenant_memberships_tenant_id_idx": {
          "name": "tenant_memberships_tenant_id_idx",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "tenant_memberships_user_id_users_id_fk": {
          "name": "tenant_memberships_user_id_users_id_fk",
          "tableFrom": "tenant_memberships",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "tenant_memberships_tenant_id_tenants_id_fk": {
          "name": "tenant_memberships_tenant_id_tenants_id_fk",
          "tableFrom": "tenant_memberships",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "tenant_memberships_role_id_roles_id_fk": {
          "name": "tenant_memberships_role_id_roles_id_fk",
          "tableFrom": "tenant_memberships",
          "tableTo": "roles",
          "columnsFrom": [
            "role_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "tenant_memberships_user_id_tenant_id_pk": {
          "name": "tenant_memberships_user_id_tenant_id_pk",
          "columns": [
            "user_id",
            "tenant_id"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "tenant_memberships_status_check": {
          "name": "tenant_memberships_status_check",
          "value": "\"tenant_memberships\".\"status\" IN ('active', 'frozen', 'pending_approval')"
        }
      },
      "isRLSEnabled": false
    },
    "public.usage_counters": {
      "name": "usage_counters",
      "schema": "",
      "columns": {
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "counter_key": {
          "name": "counter_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "period": {
          "name": "period",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "count": {
          "name": "count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        }
      },
      "indexes": {},
      "foreignKeys": {
        "usage_counters_tenant_id_tenants_id_fk": {
          "name": "usage_counters_tenant_id_tenants_id_fk",
          "tableFrom": "usage_counters",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "usage_counters_tenant_id_counter_key_period_pk": {
          "name": "usage_counters_tenant_id_counter_key_period_pk",
          "columns": [
            "tenant_id",
            "counter_key",
            "period"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.user_preferences": {
      "name": "user_preferences",
      "schema": "",
      "columns": {
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "notification_channels": {
          "name": "notification_channels",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{\"email\":[],\"telegram\":[]}'::jsonb"
        },
        "sidebar_collapsed": {
          "name": "sidebar_collapsed",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "default_currency": {
          "name": "default_currency",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "timezone": {
          "name": "timezone",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'Asia/Jerusalem'"
        },
        "locale": {
          "name": "locale",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "default_timer_project_id": {
          "name": "default_timer_project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "dashboard_widgets": {
          "name": "dashboard_widgets",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'[]'::jsonb"
        },
        "ui_theme": {
          "name": "ui_theme",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "default": "'dark'"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "user_preferences_user_id_users_id_fk": {
          "name": "user_preferences_user_id_users_id_fk",
          "tableFrom": "user_preferences",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "user_preferences_tenant_id_tenants_id_fk": {
          "name": "user_preferences_tenant_id_tenants_id_fk",
          "tableFrom": "user_preferences",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "user_preferences_user_id_tenant_id_pk": {
          "name": "user_preferences_user_id_tenant_id_pk",
          "columns": [
            "user_id",
            "tenant_id"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "user_preferences_ui_theme_check": {
          "name": "user_preferences_ui_theme_check",
          "value": "ui_theme IN ('dark','light','system')"
        }
      },
      "isRLSEnabled": false
    },
    "public.user_2fa_backup_codes": {
      "name": "user_2fa_backup_codes",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "code_hash": {
          "name": "code_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "used_at": {
          "name": "used_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_2fa_backup_codes_user": {
          "name": "idx_2fa_backup_codes_user",
          "columns": [
            {
              "expression": "user_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "where": "\"user_2fa_backup_codes\".\"used_at\" is null",
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "user_2fa_backup_codes_user_id_users_id_fk": {
          "name": "user_2fa_backup_codes_user_id_users_id_fk",
          "tableFrom": "user_2fa_backup_codes",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.user_trusted_devices": {
      "name": "user_trusted_devices",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "token_hash": {
          "name": "token_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "user_agent": {
          "name": "user_agent",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "ip_address": {
          "name": "ip_address",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "revoked_at": {
          "name": "revoked_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_trusted_devices_user": {
          "name": "idx_trusted_devices_user",
          "columns": [
            {
              "expression": "user_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "user_trusted_devices_user_id_users_id_fk": {
          "name": "user_trusted_devices_user_id_users_id_fk",
          "tableFrom": "user_trusted_devices",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "user_trusted_devices_tenant_id_tenants_id_fk": {
          "name": "user_trusted_devices_tenant_id_tenants_id_fk",
          "tableFrom": "user_trusted_devices",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "user_trusted_devices_token_hash_unique": {
          "name": "user_trusted_devices_token_hash_unique",
          "nullsNotDistinct": false,
          "columns": [
            "token_hash"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.tenant_modules": {
      "name": "tenant_modules",
      "schema": "",
      "columns": {
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "module_id": {
          "name": "module_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "enabled": {
          "name": "enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "enabled_at": {
          "name": "enabled_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "disabled_at": {
          "name": "disabled_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "disabled_by": {
          "name": "disabled_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "override_by_system_admin": {
          "name": "override_by_system_admin",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_tenant_modules_tenant_id": {
          "name": "idx_tenant_modules_tenant_id",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "tenant_modules_tenant_id_tenants_id_fk": {
          "name": "tenant_modules_tenant_id_tenants_id_fk",
          "tableFrom": "tenant_modules",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "tenant_modules_disabled_by_users_id_fk": {
          "name": "tenant_modules_disabled_by_users_id_fk",
          "tableFrom": "tenant_modules",
          "tableTo": "users",
          "columnsFrom": [
            "disabled_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "tenant_modules_tenant_id_module_id_pk": {
          "name": "tenant_modules_tenant_id_module_id_pk",
          "columns": [
            "tenant_id",
            "module_id"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "module_id_valid": {
          "name": "module_id_valid",
          "value": "\"tenant_modules\".\"module_id\" IN (\n        'system','crm','customers','time_management','projects','tasks',\n        'invoices','expenses','billing','calendar','marketing','reports',\n        'kb','contractor_payouts','ai_assistant'\n      )"
        }
      },
      "isRLSEnabled": false
    },
    "public.vat_rates": {
      "name": "vat_rates",
      "schema": "",
      "columns": {
        "country_code": {
          "name": "country_code",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "effective_from": {
          "name": "effective_from",
          "type": "date",
          "primaryKey": false,
          "notNull": true
        },
        "rate": {
          "name": "rate",
          "type": "numeric(5, 4)",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "vat_rates_country_code_effective_from_pk": {
          "name": "vat_rates_country_code_effective_from_pk",
          "columns": [
            "country_code",
            "effective_from"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.tax_rates": {
      "name": "tax_rates",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "country_code": {
          "name": "country_code",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "tax_type": {
          "name": "tax_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "rate": {
          "name": "rate",
          "type": "numeric(6, 4)",
          "primaryKey": false,
          "notNull": true
        },
        "effective_from": {
          "name": "effective_from",
          "type": "date",
          "primaryKey": false,
          "notNull": true
        },
        "threshold_ils": {
          "name": "threshold_ils",
          "type": "numeric",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "tax_rates_country_code_idx": {
          "name": "tax_rates_country_code_idx",
          "columns": [
            {
              "expression": "country_code",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "tax_rates_created_by_admin_users_id_fk": {
          "name": "tax_rates_created_by_admin_users_id_fk",
          "tableFrom": "tax_rates",
          "tableTo": "admin_users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "tax_rates_country_type_from_unique": {
          "name": "tax_rates_country_type_from_unique",
          "nullsNotDistinct": false,
          "columns": [
            "country_code",
            "tax_type",
            "effective_from"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "tax_rates_tax_type_check": {
          "name": "tax_rates_tax_type_check",
          "value": "\"tax_rates\".\"tax_type\" IN (\n        'corporate_income',\n        'personal_bracket_1','personal_bracket_2','personal_bracket_3',\n        'personal_bracket_4','personal_bracket_5','personal_bracket_6',\n        'withholding_default'\n      )"
        }
      },
      "isRLSEnabled": false
    },
    "public.kb_articles": {
      "name": "kb_articles",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "space_id": {
          "name": "space_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "parent_id": {
          "name": "parent_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "slug": {
          "name": "slug",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "content": {
          "name": "content",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'DRAFT'"
        },
        "position": {
          "name": "position",
          "type": "numeric",
          "primaryKey": false,
          "notNull": true
        },
        "view_count": {
          "name": "view_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "published_at": {
          "name": "published_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "updated_by": {
          "name": "updated_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "content_text": {
          "name": "content_text",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_kb_articles_space": {
          "name": "idx_kb_articles_space",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "space_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_kb_articles_tree": {
          "name": "idx_kb_articles_tree",
          "columns": [
            {
              "expression": "space_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "parent_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "position",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "kb_articles_space_slug_uniq": {
          "name": "kb_articles_space_slug_uniq",
          "columns": [
            {
              "expression": "space_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "slug",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "kb_articles_tenant_id_tenants_id_fk": {
          "name": "kb_articles_tenant_id_tenants_id_fk",
          "tableFrom": "kb_articles",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "kb_articles_space_id_kb_spaces_id_fk": {
          "name": "kb_articles_space_id_kb_spaces_id_fk",
          "tableFrom": "kb_articles",
          "tableTo": "kb_spaces",
          "columnsFrom": [
            "space_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "kb_articles_created_by_users_id_fk": {
          "name": "kb_articles_created_by_users_id_fk",
          "tableFrom": "kb_articles",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        },
        "kb_articles_updated_by_users_id_fk": {
          "name": "kb_articles_updated_by_users_id_fk",
          "tableFrom": "kb_articles",
          "tableTo": "users",
          "columnsFrom": [
            "updated_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "kb_articles_status_check": {
          "name": "kb_articles_status_check",
          "value": "\"kb_articles\".\"status\" IN ('DRAFT', 'PUBLISHED')"
        }
      },
      "isRLSEnabled": false
    },
    "public.kb_attachments": {
      "name": "kb_attachments",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "article_id": {
          "name": "article_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "filename": {
          "name": "filename",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "r2_key": {
          "name": "r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "file_type": {
          "name": "file_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "file_size_bytes": {
          "name": "file_size_bytes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_kb_attachments_article": {
          "name": "idx_kb_attachments_article",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "article_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "kb_attachments_tenant_id_tenants_id_fk": {
          "name": "kb_attachments_tenant_id_tenants_id_fk",
          "tableFrom": "kb_attachments",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "kb_attachments_article_id_kb_articles_id_fk": {
          "name": "kb_attachments_article_id_kb_articles_id_fk",
          "tableFrom": "kb_attachments",
          "tableTo": "kb_articles",
          "columnsFrom": [
            "article_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "kb_attachments_created_by_users_id_fk": {
          "name": "kb_attachments_created_by_users_id_fk",
          "tableFrom": "kb_attachments",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.kb_spaces": {
      "name": "kb_spaces",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "slug": {
          "name": "slug",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "type": {
          "name": "type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'internal'"
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "icon": {
          "name": "icon",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "is_public": {
          "name": "is_public",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_kb_spaces_tenant": {
          "name": "idx_kb_spaces_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_kb_spaces_customer": {
          "name": "idx_kb_spaces_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "kb_spaces_tenant_slug_uniq": {
          "name": "kb_spaces_tenant_slug_uniq",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "slug",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "kb_spaces_tenant_id_tenants_id_fk": {
          "name": "kb_spaces_tenant_id_tenants_id_fk",
          "tableFrom": "kb_spaces",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "kb_spaces_customer_id_customers_id_fk": {
          "name": "kb_spaces_customer_id_customers_id_fk",
          "tableFrom": "kb_spaces",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "kb_spaces_created_by_users_id_fk": {
          "name": "kb_spaces_created_by_users_id_fk",
          "tableFrom": "kb_spaces",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "kb_spaces_type_check": {
          "name": "kb_spaces_type_check",
          "value": "\"kb_spaces\".\"type\" IN ('internal', 'vault')"
        }
      },
      "isRLSEnabled": false
    },
    "public.project_members": {
      "name": "project_members",
      "schema": "",
      "columns": {
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "role": {
          "name": "role",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'member'"
        },
        "hourly_rate": {
          "name": "hourly_rate",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_project_members_tenant_user": {
          "name": "idx_project_members_tenant_user",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "user_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "project_members_project_id_projects_id_fk": {
          "name": "project_members_project_id_projects_id_fk",
          "tableFrom": "project_members",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "project_members_user_id_users_id_fk": {
          "name": "project_members_user_id_users_id_fk",
          "tableFrom": "project_members",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "project_members_tenant_id_tenants_id_fk": {
          "name": "project_members_tenant_id_tenants_id_fk",
          "tableFrom": "project_members",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "project_members_project_id_user_id_pk": {
          "name": "project_members_project_id_user_id_pk",
          "columns": [
            "project_id",
            "user_id"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "project_members_role_check": {
          "name": "project_members_role_check",
          "value": "\"project_members\".\"role\" IN ('owner', 'member', 'viewer')"
        }
      },
      "isRLSEnabled": false
    },
    "public.projects": {
      "name": "projects",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "billing_type": {
          "name": "billing_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "billing_config": {
          "name": "billing_config",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "start_date": {
          "name": "start_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "end_date": {
          "name": "end_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_projects_tenant_status": {
          "name": "idx_projects_tenant_status",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "updated_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_projects_tenant_customer": {
          "name": "idx_projects_tenant_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_projects_tenant_billing": {
          "name": "idx_projects_tenant_billing",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "billing_type",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_projects_tenant_name": {
          "name": "idx_projects_tenant_name",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "name",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "projects_tenant_id_tenants_id_fk": {
          "name": "projects_tenant_id_tenants_id_fk",
          "tableFrom": "projects",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "projects_customer_id_customers_id_fk": {
          "name": "projects_customer_id_customers_id_fk",
          "tableFrom": "projects",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "projects_created_by_users_id_fk": {
          "name": "projects_created_by_users_id_fk",
          "tableFrom": "projects",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "projects_status_check": {
          "name": "projects_status_check",
          "value": "\"projects\".\"status\" IN ('active', 'on_hold', 'completed', 'archived')"
        },
        "projects_billing_type_check": {
          "name": "projects_billing_type_check",
          "value": "\"projects\".\"billing_type\" IN ('fixed', 'hourly', 'retainer')"
        }
      },
      "isRLSEnabled": false
    },
    "public.retainer_months": {
      "name": "retainer_months",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "month": {
          "name": "month",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "hours_included": {
          "name": "hours_included",
          "type": "numeric(6, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "hours_used": {
          "name": "hours_used",
          "type": "numeric(6, 2)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        },
        "hours_rolled_over": {
          "name": "hours_rolled_over",
          "type": "numeric(6, 2)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        },
        "invoice_triggered_at": {
          "name": "invoice_triggered_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_retainer_months_project_month_uniq": {
          "name": "idx_retainer_months_project_month_uniq",
          "columns": [
            {
              "expression": "project_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "month",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_retainer_months_project": {
          "name": "idx_retainer_months_project",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "project_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "month",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "retainer_months_project_id_projects_id_fk": {
          "name": "retainer_months_project_id_projects_id_fk",
          "tableFrom": "retainer_months",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "retainer_months_tenant_id_tenants_id_fk": {
          "name": "retainer_months_tenant_id_tenants_id_fk",
          "tableFrom": "retainer_months",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.zync_subscriptions": {
      "name": "zync_subscriptions",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tier": {
          "name": "tier",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'freelancer'"
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "period": {
          "name": "period",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "default": "NULL"
        },
        "adapter": {
          "name": "adapter",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'null'"
        },
        "adapter_subscription_id": {
          "name": "adapter_subscription_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "adapter_customer_id": {
          "name": "adapter_customer_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "current_period_start": {
          "name": "current_period_start",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "current_period_end": {
          "name": "current_period_end",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "trial_ends_at": {
          "name": "trial_ends_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "canceled_at": {
          "name": "canceled_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "grace_period_started_at": {
          "name": "grace_period_started_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "trial_warning_sent_at": {
          "name": "trial_warning_sent_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "trial_expiry_ack_at": {
          "name": "trial_expiry_ack_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_zync_subscriptions_tenant": {
          "name": "idx_zync_subscriptions_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_zync_subscriptions_status": {
          "name": "idx_zync_subscriptions_status",
          "columns": [
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "zync_subscriptions_tenant_id_tenants_id_fk": {
          "name": "zync_subscriptions_tenant_id_tenants_id_fk",
          "tableFrom": "zync_subscriptions",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "zync_subscriptions_tenant_id_unique": {
          "name": "zync_subscriptions_tenant_id_unique",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "zync_subscriptions_tier_check": {
          "name": "zync_subscriptions_tier_check",
          "value": "\"zync_subscriptions\".\"tier\" IN ('freelancer', 'business', 'enterprise', 'white_label')"
        },
        "zync_subscriptions_status_check": {
          "name": "zync_subscriptions_status_check",
          "value": "\"zync_subscriptions\".\"status\" IN ('active', 'trialing', 'past_due', 'canceled')"
        },
        "zync_subscriptions_period_check": {
          "name": "zync_subscriptions_period_check",
          "value": "\"zync_subscriptions\".\"period\" IS NULL OR \"zync_subscriptions\".\"period\" IN ('monthly', 'annual')"
        }
      },
      "isRLSEnabled": false
    },
    "public.task_labels": {
      "name": "task_labels",
      "schema": "",
      "columns": {
        "task_id": {
          "name": "task_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "label": {
          "name": "label",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {
        "idx_task_labels_label": {
          "name": "idx_task_labels_label",
          "columns": [
            {
              "expression": "label",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "task_labels_task_id_tasks_id_fk": {
          "name": "task_labels_task_id_tasks_id_fk",
          "tableFrom": "task_labels",
          "tableTo": "tasks",
          "columnsFrom": [
            "task_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "task_labels_task_id_label_pk": {
          "name": "task_labels_task_id_label_pk",
          "columns": [
            "task_id",
            "label"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.task_statuses": {
      "name": "task_statuses",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "color": {
          "name": "color",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "position": {
          "name": "position",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "is_terminal": {
          "name": "is_terminal",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_task_statuses_tenant_project_position": {
          "name": "idx_task_statuses_tenant_project_position",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "project_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "position",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "task_statuses_tenant_id_tenants_id_fk": {
          "name": "task_statuses_tenant_id_tenants_id_fk",
          "tableFrom": "task_statuses",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_statuses_project_id_projects_id_fk": {
          "name": "task_statuses_project_id_projects_id_fk",
          "tableFrom": "task_statuses",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.task_sync_settings": {
      "name": "task_sync_settings",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "sync_interval_minutes": {
          "name": "sync_interval_minutes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 120
        },
        "auto_create_tickets_from": {
          "name": "auto_create_tickets_from",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "default_project_id": {
          "name": "default_project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_task_sync_settings_tenant_uniq": {
          "name": "idx_task_sync_settings_tenant_uniq",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "task_sync_settings_tenant_id_tenants_id_fk": {
          "name": "task_sync_settings_tenant_id_tenants_id_fk",
          "tableFrom": "task_sync_settings",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_sync_settings_default_project_id_projects_id_fk": {
          "name": "task_sync_settings_default_project_id_projects_id_fk",
          "tableFrom": "task_sync_settings",
          "tableTo": "projects",
          "columnsFrom": [
            "default_project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.tasks": {
      "name": "tasks",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "status_id": {
          "name": "status_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "priority": {
          "name": "priority",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'medium'"
        },
        "assignee_id": {
          "name": "assignee_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "reporter_id": {
          "name": "reporter_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "due_date": {
          "name": "due_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "estimated_hours": {
          "name": "estimated_hours",
          "type": "numeric(6, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "checklist_items": {
          "name": "checklist_items",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false,
          "default": "'[]'::jsonb"
        },
        "phase": {
          "name": "phase",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'manual'"
        },
        "external_id": {
          "name": "external_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "recurring_task_id": {
          "name": "recurring_task_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "position": {
          "name": "position",
          "type": "numeric",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_tasks_tenant_project_status": {
          "name": "idx_tasks_tenant_project_status",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "project_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tasks_tenant_status_position": {
          "name": "idx_tasks_tenant_status_position",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "position",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tasks_tenant_assignee": {
          "name": "idx_tasks_tenant_assignee",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "assignee_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "tasks_tenant_id_tenants_id_fk": {
          "name": "tasks_tenant_id_tenants_id_fk",
          "tableFrom": "tasks",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "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_status_id_task_statuses_id_fk": {
          "name": "tasks_status_id_task_statuses_id_fk",
          "tableFrom": "tasks",
          "tableTo": "task_statuses",
          "columnsFrom": [
            "status_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "tasks_assignee_id_users_id_fk": {
          "name": "tasks_assignee_id_users_id_fk",
          "tableFrom": "tasks",
          "tableTo": "users",
          "columnsFrom": [
            "assignee_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "tasks_reporter_id_users_id_fk": {
          "name": "tasks_reporter_id_users_id_fk",
          "tableFrom": "tasks",
          "tableTo": "users",
          "columnsFrom": [
            "reporter_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "tasks_priority_check": {
          "name": "tasks_priority_check",
          "value": "\"tasks\".\"priority\" IN ('low','medium','high','urgent')"
        },
        "tasks_source_check": {
          "name": "tasks_source_check",
          "value": "\"tasks\".\"source\" IN ('manual','email','telegram','slack','whatsapp','trello','asana','jira','monday','clickup')"
        }
      },
      "isRLSEnabled": false
    },
    "public.recurring_tasks": {
      "name": "recurring_tasks",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "assignee_id": {
          "name": "assignee_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "estimated_hours": {
          "name": "estimated_hours",
          "type": "numeric(6, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "priority": {
          "name": "priority",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'medium'"
        },
        "labels": {
          "name": "labels",
          "type": "text[]",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::text[]"
        },
        "recurrence": {
          "name": "recurrence",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "advance_days": {
          "name": "advance_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 1
        },
        "status_id": {
          "name": "status_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "last_generated_at": {
          "name": "last_generated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_recurring_tasks_tenant_active": {
          "name": "idx_recurring_tasks_tenant_active",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "is_active",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_recurring_tasks_tenant_created": {
          "name": "idx_recurring_tasks_tenant_created",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "recurring_tasks_tenant_id_tenants_id_fk": {
          "name": "recurring_tasks_tenant_id_tenants_id_fk",
          "tableFrom": "recurring_tasks",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "recurring_tasks_project_id_projects_id_fk": {
          "name": "recurring_tasks_project_id_projects_id_fk",
          "tableFrom": "recurring_tasks",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "recurring_tasks_assignee_id_users_id_fk": {
          "name": "recurring_tasks_assignee_id_users_id_fk",
          "tableFrom": "recurring_tasks",
          "tableTo": "users",
          "columnsFrom": [
            "assignee_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "recurring_tasks_status_id_task_statuses_id_fk": {
          "name": "recurring_tasks_status_id_task_statuses_id_fk",
          "tableFrom": "recurring_tasks",
          "tableTo": "task_statuses",
          "columnsFrom": [
            "status_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "recurring_tasks_created_by_users_id_fk": {
          "name": "recurring_tasks_created_by_users_id_fk",
          "tableFrom": "recurring_tasks",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "recurring_tasks_priority_check": {
          "name": "recurring_tasks_priority_check",
          "value": "\"recurring_tasks\".\"priority\" IN ('low','medium','high','urgent')"
        }
      },
      "isRLSEnabled": false
    },
    "public.task_templates": {
      "name": "task_templates",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "estimated_hours": {
          "name": "estimated_hours",
          "type": "numeric(6, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "priority": {
          "name": "priority",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'medium'"
        },
        "labels": {
          "name": "labels",
          "type": "text[]",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::text[]"
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_task_templates_tenant_name": {
          "name": "idx_task_templates_tenant_name",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "name",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "task_templates_tenant_id_tenants_id_fk": {
          "name": "task_templates_tenant_id_tenants_id_fk",
          "tableFrom": "task_templates",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_templates_created_by_users_id_fk": {
          "name": "task_templates_created_by_users_id_fk",
          "tableFrom": "task_templates",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "task_templates_priority_check": {
          "name": "task_templates_priority_check",
          "value": "\"task_templates\".\"priority\" IN ('low','medium','high','urgent')"
        }
      },
      "isRLSEnabled": false
    },
    "public.task_dependencies": {
      "name": "task_dependencies",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "blocking_task_id": {
          "name": "blocking_task_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "blocked_task_id": {
          "name": "blocked_task_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_td_blocking": {
          "name": "idx_td_blocking",
          "columns": [
            {
              "expression": "blocking_task_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_td_blocked": {
          "name": "idx_td_blocked",
          "columns": [
            {
              "expression": "blocked_task_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_td_tenant": {
          "name": "idx_td_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "task_dependencies_tenant_id_tenants_id_fk": {
          "name": "task_dependencies_tenant_id_tenants_id_fk",
          "tableFrom": "task_dependencies",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_dependencies_blocking_task_id_tasks_id_fk": {
          "name": "task_dependencies_blocking_task_id_tasks_id_fk",
          "tableFrom": "task_dependencies",
          "tableTo": "tasks",
          "columnsFrom": [
            "blocking_task_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_dependencies_blocked_task_id_tasks_id_fk": {
          "name": "task_dependencies_blocked_task_id_tasks_id_fk",
          "tableFrom": "task_dependencies",
          "tableTo": "tasks",
          "columnsFrom": [
            "blocked_task_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_dependencies_created_by_users_id_fk": {
          "name": "task_dependencies_created_by_users_id_fk",
          "tableFrom": "task_dependencies",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "task_dependencies_blocking_blocked_uniq": {
          "name": "task_dependencies_blocking_blocked_uniq",
          "nullsNotDistinct": false,
          "columns": [
            "blocking_task_id",
            "blocked_task_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "task_dependencies_no_self_dep_check": {
          "name": "task_dependencies_no_self_dep_check",
          "value": "\"task_dependencies\".\"blocking_task_id\" <> \"task_dependencies\".\"blocked_task_id\""
        }
      },
      "isRLSEnabled": false
    },
    "public.magic_link_tokens": {
      "name": "magic_link_tokens",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "task_id": {
          "name": "task_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "token": {
          "name": "token",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "token_hash": {
          "name": "token_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "purpose": {
          "name": "purpose",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'timer'"
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "used_at": {
          "name": "used_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_magic_link_tokens_hash": {
          "name": "idx_magic_link_tokens_hash",
          "columns": [
            {
              "expression": "token_hash",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "magic_link_tokens_tenant_id_tenants_id_fk": {
          "name": "magic_link_tokens_tenant_id_tenants_id_fk",
          "tableFrom": "magic_link_tokens",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "magic_link_tokens_user_id_users_id_fk": {
          "name": "magic_link_tokens_user_id_users_id_fk",
          "tableFrom": "magic_link_tokens",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "magic_link_tokens_task_id_tasks_id_fk": {
          "name": "magic_link_tokens_task_id_tasks_id_fk",
          "tableFrom": "magic_link_tokens",
          "tableTo": "tasks",
          "columnsFrom": [
            "task_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "magic_link_tokens_token_unique": {
          "name": "magic_link_tokens_token_unique",
          "nullsNotDistinct": false,
          "columns": [
            "token"
          ]
        },
        "magic_link_tokens_token_hash_unique": {
          "name": "magic_link_tokens_token_hash_unique",
          "nullsNotDistinct": false,
          "columns": [
            "token_hash"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "magic_link_tokens_purpose_check": {
          "name": "magic_link_tokens_purpose_check",
          "value": "\"magic_link_tokens\".\"purpose\" IN ('timer','portal','portal_invite','portal_password_reset','pending_2fa','pending_2fa_setup','magic_link')"
        }
      },
      "isRLSEnabled": false
    },
    "public.time_entries": {
      "name": "time_entries",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "contractor_id": {
          "name": "contractor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "task_id": {
          "name": "task_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "started_at": {
          "name": "started_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "stopped_at": {
          "name": "stopped_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "duration_seconds": {
          "name": "duration_seconds",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'manual'"
        },
        "billable": {
          "name": "billable",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "approval_status": {
          "name": "approval_status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'auto_approved'"
        },
        "locked_at": {
          "name": "locked_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "locked_reason": {
          "name": "locked_reason",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_time_entries_project": {
          "name": "idx_time_entries_project",
          "columns": [
            {
              "expression": "project_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "started_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_time_entries_cursor": {
          "name": "idx_time_entries_cursor",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "started_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "time_entries_tenant_id_tenants_id_fk": {
          "name": "time_entries_tenant_id_tenants_id_fk",
          "tableFrom": "time_entries",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "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": "set null",
          "onUpdate": "no action"
        },
        "time_entries_task_id_tasks_id_fk": {
          "name": "time_entries_task_id_tasks_id_fk",
          "tableFrom": "time_entries",
          "tableTo": "tasks",
          "columnsFrom": [
            "task_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "time_entries_project_id_projects_id_fk": {
          "name": "time_entries_project_id_projects_id_fk",
          "tableFrom": "time_entries",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "time_entries_source_check": {
          "name": "time_entries_source_check",
          "value": "\"time_entries\".\"source\" IN ('manual','magic_link','auto','contractor_portal')"
        },
        "time_entries_approval_status_check": {
          "name": "time_entries_approval_status_check",
          "value": "\"time_entries\".\"approval_status\" IN ('auto_approved','pending','approved','rejected','locked')"
        },
        "time_entries_locked_reason_check": {
          "name": "time_entries_locked_reason_check",
          "value": "\"time_entries\".\"locked_reason\" IS NULL OR \"time_entries\".\"locked_reason\" IN ('invoiced','period_closed','approved')"
        },
        "time_entries_user_or_contractor_check": {
          "name": "time_entries_user_or_contractor_check",
          "value": "\"time_entries\".\"user_id\" IS NOT NULL OR \"time_entries\".\"contractor_id\" IS NOT NULL"
        }
      },
      "isRLSEnabled": false
    },
    "public.task_audit_log": {
      "name": "task_audit_log",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "task_id": {
          "name": "task_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "actor_id": {
          "name": "actor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "action": {
          "name": "action",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "previous_value": {
          "name": "previous_value",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "new_value": {
          "name": "new_value",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_task_audit_log_task": {
          "name": "idx_task_audit_log_task",
          "columns": [
            {
              "expression": "task_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_task_audit_log_tenant": {
          "name": "idx_task_audit_log_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "task_audit_log_task_id_tasks_id_fk": {
          "name": "task_audit_log_task_id_tasks_id_fk",
          "tableFrom": "task_audit_log",
          "tableTo": "tasks",
          "columnsFrom": [
            "task_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_audit_log_tenant_id_tenants_id_fk": {
          "name": "task_audit_log_tenant_id_tenants_id_fk",
          "tableFrom": "task_audit_log",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_audit_log_actor_id_users_id_fk": {
          "name": "task_audit_log_actor_id_users_id_fk",
          "tableFrom": "task_audit_log",
          "tableTo": "users",
          "columnsFrom": [
            "actor_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.task_message_attachments": {
      "name": "task_message_attachments",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "message_id": {
          "name": "message_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "filename": {
          "name": "filename",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "url": {
          "name": "url",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "r2_key": {
          "name": "r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "size_bytes": {
          "name": "size_bytes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "mime_type": {
          "name": "mime_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_task_msg_attachments_message": {
          "name": "idx_task_msg_attachments_message",
          "columns": [
            {
              "expression": "message_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_task_msg_attachments_tenant": {
          "name": "idx_task_msg_attachments_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "task_message_attachments_message_id_task_messages_id_fk": {
          "name": "task_message_attachments_message_id_task_messages_id_fk",
          "tableFrom": "task_message_attachments",
          "tableTo": "task_messages",
          "columnsFrom": [
            "message_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_message_attachments_tenant_id_tenants_id_fk": {
          "name": "task_message_attachments_tenant_id_tenants_id_fk",
          "tableFrom": "task_message_attachments",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.task_messages": {
      "name": "task_messages",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "task_id": {
          "name": "task_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "author_id": {
          "name": "author_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "message_type": {
          "name": "message_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "content": {
          "name": "content",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "deleted_at": {
          "name": "deleted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_task_messages_stream": {
          "name": "idx_task_messages_stream",
          "columns": [
            {
              "expression": "task_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_task_messages_tenant": {
          "name": "idx_task_messages_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "task_messages_task_id_tasks_id_fk": {
          "name": "task_messages_task_id_tasks_id_fk",
          "tableFrom": "task_messages",
          "tableTo": "tasks",
          "columnsFrom": [
            "task_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_messages_tenant_id_tenants_id_fk": {
          "name": "task_messages_tenant_id_tenants_id_fk",
          "tableFrom": "task_messages",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "task_messages_author_id_users_id_fk": {
          "name": "task_messages_author_id_users_id_fk",
          "tableFrom": "task_messages",
          "tableTo": "users",
          "columnsFrom": [
            "author_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "task_messages_message_type_check": {
          "name": "task_messages_message_type_check",
          "value": "\"task_messages\".\"message_type\" IN ('comment','system')"
        }
      },
      "isRLSEnabled": false
    },
    "public.invoice_lines": {
      "name": "invoice_lines",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "invoice_id": {
          "name": "invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "quantity": {
          "name": "quantity",
          "type": "numeric(10, 3)",
          "primaryKey": false,
          "notNull": true,
          "default": "'1'"
        },
        "unit_price": {
          "name": "unit_price",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "discount_pct": {
          "name": "discount_pct",
          "type": "numeric(5, 2)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        },
        "line_total": {
          "name": "line_total",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "taxable": {
          "name": "taxable",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "position": {
          "name": "position",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_invoice_lines_invoice": {
          "name": "idx_invoice_lines_invoice",
          "columns": [
            {
              "expression": "invoice_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "position",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_invoice_lines_tenant": {
          "name": "idx_invoice_lines_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "invoice_lines_invoice_id_invoices_id_fk": {
          "name": "invoice_lines_invoice_id_invoices_id_fk",
          "tableFrom": "invoice_lines",
          "tableTo": "invoices",
          "columnsFrom": [
            "invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "invoice_lines_tenant_id_tenants_id_fk": {
          "name": "invoice_lines_tenant_id_tenants_id_fk",
          "tableFrom": "invoice_lines",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.invoice_sequences": {
      "name": "invoice_sequences",
      "schema": "",
      "columns": {
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "type": {
          "name": "type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "last_number": {
          "name": "last_number",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "prefix": {
          "name": "prefix",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "''"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "invoice_sequences_tenant_id_tenants_id_fk": {
          "name": "invoice_sequences_tenant_id_tenants_id_fk",
          "tableFrom": "invoice_sequences",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "invoice_sequences_tenant_id_type_pk": {
          "name": "invoice_sequences_tenant_id_type_pk",
          "columns": [
            "tenant_id",
            "type"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "invoice_sequences_type_check": {
          "name": "invoice_sequences_type_check",
          "value": "\"invoice_sequences\".\"type\" IN ('invoice','proforma')"
        }
      },
      "isRLSEnabled": false
    },
    "public.invoices": {
      "name": "invoices",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "invoice_number": {
          "name": "invoice_number",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "proforma_number": {
          "name": "proforma_number",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'DRAFT'"
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "issue_date": {
          "name": "issue_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "tax_issue_date": {
          "name": "tax_issue_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "due_date": {
          "name": "due_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "vat_rate": {
          "name": "vat_rate",
          "type": "numeric(5, 4)",
          "primaryKey": false,
          "notNull": false
        },
        "subtotal": {
          "name": "subtotal",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        },
        "vat_amount": {
          "name": "vat_amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        },
        "total": {
          "name": "total",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        },
        "amount_paid": {
          "name": "amount_paid",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'manual'"
        },
        "sent_at": {
          "name": "sent_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "approved_at": {
          "name": "approved_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "tax_issued_at": {
          "name": "tax_issued_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "paid_at": {
          "name": "paid_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "external_id": {
          "name": "external_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "external_provider": {
          "name": "external_provider",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "void_reason": {
          "name": "void_reason",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "voided_at": {
          "name": "voided_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "voided_by": {
          "name": "voided_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "parent_invoice_id": {
          "name": "parent_invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "html_snapshot_url": {
          "name": "html_snapshot_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_invoices_tenant_status": {
          "name": "idx_invoices_tenant_status",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_invoices_tenant_customer": {
          "name": "idx_invoices_tenant_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_invoices_tenant_project": {
          "name": "idx_invoices_tenant_project",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "project_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_invoices_invoice_number_uniq": {
          "name": "idx_invoices_invoice_number_uniq",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "invoice_number",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_invoices_proforma_number_uniq": {
          "name": "idx_invoices_proforma_number_uniq",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "proforma_number",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "invoices_tenant_id_tenants_id_fk": {
          "name": "invoices_tenant_id_tenants_id_fk",
          "tableFrom": "invoices",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "invoices_customer_id_customers_id_fk": {
          "name": "invoices_customer_id_customers_id_fk",
          "tableFrom": "invoices",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "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"
        },
        "invoices_voided_by_users_id_fk": {
          "name": "invoices_voided_by_users_id_fk",
          "tableFrom": "invoices",
          "tableTo": "users",
          "columnsFrom": [
            "voided_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "invoices_parent_invoice_id_invoices_id_fk": {
          "name": "invoices_parent_invoice_id_invoices_id_fk",
          "tableFrom": "invoices",
          "tableTo": "invoices",
          "columnsFrom": [
            "parent_invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "invoices_created_by_users_id_fk": {
          "name": "invoices_created_by_users_id_fk",
          "tableFrom": "invoices",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "invoices_status_check": {
          "name": "invoices_status_check",
          "value": "\"invoices\".\"status\" IN ('DRAFT','SENT','APPROVED','REJECTED','TAX_ISSUED','PAID','PARTIALLY_PAID','VOID','WRITTEN_OFF','BAD_DEBT')"
        },
        "invoices_source_check": {
          "name": "invoices_source_check",
          "value": "\"invoices\".\"source\" IN ('manual','retainer','hourly_auto','fixed_deposit','credit_note','auto_charge')"
        }
      },
      "isRLSEnabled": false
    },
    "public.project_template_tasks": {
      "name": "project_template_tasks",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "template_id": {
          "name": "template_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "phase": {
          "name": "phase",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "position": {
          "name": "position",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "relative_start_days": {
          "name": "relative_start_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "relative_due_days": {
          "name": "relative_due_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "is_milestone": {
          "name": "is_milestone",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "checklist_items": {
          "name": "checklist_items",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'[]'::jsonb"
        },
        "estimated_hours": {
          "name": "estimated_hours",
          "type": "numeric(6, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "assigned_role": {
          "name": "assigned_role",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "tags": {
          "name": "tags",
          "type": "text[]",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_template_tasks_template": {
          "name": "idx_template_tasks_template",
          "columns": [
            {
              "expression": "template_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "position",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "project_template_tasks_template_id_project_templates_id_fk": {
          "name": "project_template_tasks_template_id_project_templates_id_fk",
          "tableFrom": "project_template_tasks",
          "tableTo": "project_templates",
          "columnsFrom": [
            "template_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "project_template_tasks_assigned_role_check": {
          "name": "project_template_tasks_assigned_role_check",
          "value": "\"project_template_tasks\".\"assigned_role\" IS NULL OR \"project_template_tasks\".\"assigned_role\" IN ('MEMBER','ADMIN','CONTRACTOR')"
        }
      },
      "isRLSEnabled": false
    },
    "public.project_templates": {
      "name": "project_templates",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "category": {
          "name": "category",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "estimated_days": {
          "name": "estimated_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "billing_type": {
          "name": "billing_type",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "thumbnail_emoji": {
          "name": "thumbnail_emoji",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'📋'"
        },
        "is_public": {
          "name": "is_public",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "usage_count": {
          "name": "usage_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_project_templates_tenant": {
          "name": "idx_project_templates_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "project_templates_tenant_id_tenants_id_fk": {
          "name": "project_templates_tenant_id_tenants_id_fk",
          "tableFrom": "project_templates",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "project_templates_created_by_users_id_fk": {
          "name": "project_templates_created_by_users_id_fk",
          "tableFrom": "project_templates",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "project_templates_category_check": {
          "name": "project_templates_category_check",
          "value": "\"project_templates\".\"category\" IS NULL OR \"project_templates\".\"category\" IN ('design','development','marketing','consulting','other')"
        },
        "project_templates_billing_type_check": {
          "name": "project_templates_billing_type_check",
          "value": "\"project_templates\".\"billing_type\" IS NULL OR \"project_templates\".\"billing_type\" IN ('fixed','hourly','retainer')"
        }
      },
      "isRLSEnabled": false
    },
    "public.ticket_categories": {
      "name": "ticket_categories",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "color": {
          "name": "color",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_ticket_categories_tenant_name_uniq": {
          "name": "idx_ticket_categories_tenant_name_uniq",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "name",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "ticket_categories_tenant_id_tenants_id_fk": {
          "name": "ticket_categories_tenant_id_tenants_id_fk",
          "tableFrom": "ticket_categories",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.ticket_message_attachments": {
      "name": "ticket_message_attachments",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "message_id": {
          "name": "message_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "filename": {
          "name": "filename",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "r2_key": {
          "name": "r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "url": {
          "name": "url",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "size_bytes": {
          "name": "size_bytes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "mime_type": {
          "name": "mime_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_ticket_message_attachments_message": {
          "name": "idx_ticket_message_attachments_message",
          "columns": [
            {
              "expression": "message_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "ticket_message_attachments_message_id_ticket_messages_id_fk": {
          "name": "ticket_message_attachments_message_id_ticket_messages_id_fk",
          "tableFrom": "ticket_message_attachments",
          "tableTo": "ticket_messages",
          "columnsFrom": [
            "message_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "ticket_message_attachments_tenant_id_tenants_id_fk": {
          "name": "ticket_message_attachments_tenant_id_tenants_id_fk",
          "tableFrom": "ticket_message_attachments",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.ticket_messages": {
      "name": "ticket_messages",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "ticket_id": {
          "name": "ticket_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "author_type": {
          "name": "author_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "author_id": {
          "name": "author_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "author_name": {
          "name": "author_name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "content": {
          "name": "content",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'web'"
        },
        "deleted_at": {
          "name": "deleted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_ticket_messages_ticket_created": {
          "name": "idx_ticket_messages_ticket_created",
          "columns": [
            {
              "expression": "ticket_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_ticket_messages_tenant": {
          "name": "idx_ticket_messages_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "ticket_messages_ticket_id_tickets_id_fk": {
          "name": "ticket_messages_ticket_id_tickets_id_fk",
          "tableFrom": "ticket_messages",
          "tableTo": "tickets",
          "columnsFrom": [
            "ticket_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "ticket_messages_tenant_id_tenants_id_fk": {
          "name": "ticket_messages_tenant_id_tenants_id_fk",
          "tableFrom": "ticket_messages",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "ticket_messages_author_id_users_id_fk": {
          "name": "ticket_messages_author_id_users_id_fk",
          "tableFrom": "ticket_messages",
          "tableTo": "users",
          "columnsFrom": [
            "author_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "ticket_messages_author_type_check": {
          "name": "ticket_messages_author_type_check",
          "value": "\"ticket_messages\".\"author_type\" IN ('staff','customer','system')"
        },
        "ticket_messages_source_check": {
          "name": "ticket_messages_source_check",
          "value": "\"ticket_messages\".\"source\" IN ('web','email','telegram','whatsapp','portal')"
        }
      },
      "isRLSEnabled": false
    },
    "public.tickets": {
      "name": "tickets",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "contact_id": {
          "name": "contact_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "''"
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'open'"
        },
        "priority": {
          "name": "priority",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'medium'"
        },
        "category_id": {
          "name": "category_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "assignee_id": {
          "name": "assignee_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'web'"
        },
        "external_id": {
          "name": "external_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "external_thread_id": {
          "name": "external_thread_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "resolved_at": {
          "name": "resolved_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "closed_at": {
          "name": "closed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "deleted_at": {
          "name": "deleted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_tickets_tenant_status": {
          "name": "idx_tickets_tenant_status",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tickets_tenant_assignee": {
          "name": "idx_tickets_tenant_assignee",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "assignee_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tickets_tenant_customer": {
          "name": "idx_tickets_tenant_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_tickets_tenant_source": {
          "name": "idx_tickets_tenant_source",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "source",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "tickets_tenant_id_tenants_id_fk": {
          "name": "tickets_tenant_id_tenants_id_fk",
          "tableFrom": "tickets",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "tickets_customer_id_customers_id_fk": {
          "name": "tickets_customer_id_customers_id_fk",
          "tableFrom": "tickets",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "tickets_contact_id_customer_contacts_id_fk": {
          "name": "tickets_contact_id_customer_contacts_id_fk",
          "tableFrom": "tickets",
          "tableTo": "customer_contacts",
          "columnsFrom": [
            "contact_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "tickets_category_id_ticket_categories_id_fk": {
          "name": "tickets_category_id_ticket_categories_id_fk",
          "tableFrom": "tickets",
          "tableTo": "ticket_categories",
          "columnsFrom": [
            "category_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "tickets_assignee_id_users_id_fk": {
          "name": "tickets_assignee_id_users_id_fk",
          "tableFrom": "tickets",
          "tableTo": "users",
          "columnsFrom": [
            "assignee_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "tickets_status_check": {
          "name": "tickets_status_check",
          "value": "\"tickets\".\"status\" IN ('open','in_progress','pending_customer','resolved','closed')"
        },
        "tickets_priority_check": {
          "name": "tickets_priority_check",
          "value": "\"tickets\".\"priority\" IN ('low','medium','high','urgent')"
        },
        "tickets_source_check": {
          "name": "tickets_source_check",
          "value": "\"tickets\".\"source\" IN ('web','email','telegram','whatsapp','portal')"
        }
      },
      "isRLSEnabled": false
    }
  },
  "enums": {},
  "schemas": {},
  "sequences": {},
  "roles": {},
  "policies": {},
  "views": {},
  "_meta": {
    "columns": {},
    "schemas": {},
    "tables": {}
  }
}