{
  "id": "9e1f36a1-21ae-4134-8c80-9b51fd356c3f",
  "prevId": "b45c6481-e3c9-4258-990a-b15983295458",
  "version": "7",
  "dialect": "postgresql",
  "tables": {
    "public.customer_activities": {
      "name": "customer_activities",
      "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
        },
        "actor_id": {
          "name": "actor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "actor_type": {
          "name": "actor_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'user'"
        },
        "event_type": {
          "name": "event_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "metadata": {
          "name": "metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "note": {
          "name": "note",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "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": {},
      "foreignKeys": {
        "customer_activities_tenant_id_tenants_id_fk": {
          "name": "customer_activities_tenant_id_tenants_id_fk",
          "tableFrom": "customer_activities",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_activities_customer_id_customers_id_fk": {
          "name": "customer_activities_customer_id_customers_id_fk",
          "tableFrom": "customer_activities",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_activities_actor_id_users_id_fk": {
          "name": "customer_activities_actor_id_users_id_fk",
          "tableFrom": "customer_activities",
          "tableTo": "users",
          "columnsFrom": [
            "actor_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "customer_activities_actor_type_check": {
          "name": "customer_activities_actor_type_check",
          "value": "\"customer_activities\".\"actor_type\" IN ('user','system','customer')"
        },
        "customer_activities_event_type_check": {
          "name": "customer_activities_event_type_check",
          "value": "\"customer_activities\".\"event_type\" IN ('created','updated','archived','note_added','portal_user_invited','portal_user_activated','lead_converted')"
        }
      },
      "isRLSEnabled": false
    },
    "public.invoice_activities": {
      "name": "invoice_activities",
      "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
        },
        "invoice_id": {
          "name": "invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "actor_id": {
          "name": "actor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "actor_type": {
          "name": "actor_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'user'"
        },
        "event_type": {
          "name": "event_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "metadata": {
          "name": "metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "note": {
          "name": "note",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "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": {},
      "foreignKeys": {
        "invoice_activities_tenant_id_tenants_id_fk": {
          "name": "invoice_activities_tenant_id_tenants_id_fk",
          "tableFrom": "invoice_activities",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "invoice_activities_invoice_id_invoices_id_fk": {
          "name": "invoice_activities_invoice_id_invoices_id_fk",
          "tableFrom": "invoice_activities",
          "tableTo": "invoices",
          "columnsFrom": [
            "invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "invoice_activities_actor_id_users_id_fk": {
          "name": "invoice_activities_actor_id_users_id_fk",
          "tableFrom": "invoice_activities",
          "tableTo": "users",
          "columnsFrom": [
            "actor_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "invoice_activities_actor_type_check": {
          "name": "invoice_activities_actor_type_check",
          "value": "\"invoice_activities\".\"actor_type\" IN ('user','system','customer')"
        },
        "invoice_activities_event_type_check": {
          "name": "invoice_activities_event_type_check",
          "value": "\"invoice_activities\".\"event_type\" IN ('created','sent','approved','rejected','tax_issued','paid','voided','credit_noted','note_added','email_sent','viewed_by_customer','payment_initiated')"
        }
      },
      "isRLSEnabled": false
    },
    "public.project_activities": {
      "name": "project_activities",
      "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": true
        },
        "actor_id": {
          "name": "actor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "actor_type": {
          "name": "actor_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'user'"
        },
        "event_type": {
          "name": "event_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "metadata": {
          "name": "metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "note": {
          "name": "note",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "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": {},
      "foreignKeys": {
        "project_activities_tenant_id_tenants_id_fk": {
          "name": "project_activities_tenant_id_tenants_id_fk",
          "tableFrom": "project_activities",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "project_activities_project_id_projects_id_fk": {
          "name": "project_activities_project_id_projects_id_fk",
          "tableFrom": "project_activities",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "project_activities_actor_id_users_id_fk": {
          "name": "project_activities_actor_id_users_id_fk",
          "tableFrom": "project_activities",
          "tableTo": "users",
          "columnsFrom": [
            "actor_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "project_activities_actor_type_check": {
          "name": "project_activities_actor_type_check",
          "value": "\"project_activities\".\"actor_type\" IN ('user','system','customer')"
        },
        "project_activities_event_type_check": {
          "name": "project_activities_event_type_check",
          "value": "\"project_activities\".\"event_type\" IN ('created','status_changed','member_added','member_removed','note_added','invoice_linked','time_logged')"
        }
      },
      "isRLSEnabled": false
    },
    "public.vendor_activities": {
      "name": "vendor_activities",
      "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
        },
        "vendor_id": {
          "name": "vendor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "actor_id": {
          "name": "actor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "actor_type": {
          "name": "actor_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'user'"
        },
        "event_type": {
          "name": "event_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "metadata": {
          "name": "metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "note": {
          "name": "note",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "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": {},
      "foreignKeys": {
        "vendor_activities_tenant_id_tenants_id_fk": {
          "name": "vendor_activities_tenant_id_tenants_id_fk",
          "tableFrom": "vendor_activities",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "vendor_activities_vendor_id_vendors_id_fk": {
          "name": "vendor_activities_vendor_id_vendors_id_fk",
          "tableFrom": "vendor_activities",
          "tableTo": "vendors",
          "columnsFrom": [
            "vendor_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "vendor_activities_actor_id_users_id_fk": {
          "name": "vendor_activities_actor_id_users_id_fk",
          "tableFrom": "vendor_activities",
          "tableTo": "users",
          "columnsFrom": [
            "actor_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "vendor_activities_actor_type_check": {
          "name": "vendor_activities_actor_type_check",
          "value": "\"vendor_activities\".\"actor_type\" IN ('user','system','customer')"
        },
        "vendor_activities_event_type_check": {
          "name": "vendor_activities_event_type_check",
          "value": "\"vendor_activities\".\"event_type\" IN ('created','updated','withholding_cert_uploaded','withholding_cert_expiring','archived','note_added')"
        }
      },
      "isRLSEnabled": false
    },
    "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.attachments": {
      "name": "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
        },
        "uploader_id": {
          "name": "uploader_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "entity_type": {
          "name": "entity_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "entity_id": {
          "name": "entity_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "filename": {
          "name": "filename",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "mime_type": {
          "name": "mime_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "size_bytes": {
          "name": "size_bytes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "r2_key": {
          "name": "r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "signed_url": {
          "name": "signed_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "deleted_at": {
          "name": "deleted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "deleted_by": {
          "name": "deleted_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_attachments_tenant_created": {
          "name": "idx_attachments_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": {
        "attachments_tenant_id_tenants_id_fk": {
          "name": "attachments_tenant_id_tenants_id_fk",
          "tableFrom": "attachments",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "attachments_uploader_id_users_id_fk": {
          "name": "attachments_uploader_id_users_id_fk",
          "tableFrom": "attachments",
          "tableTo": "users",
          "columnsFrom": [
            "uploader_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "attachments_deleted_by_users_id_fk": {
          "name": "attachments_deleted_by_users_id_fk",
          "tableFrom": "attachments",
          "tableTo": "users",
          "columnsFrom": [
            "deleted_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "attachments_entity_type_check": {
          "name": "attachments_entity_type_check",
          "value": "\"attachments\".\"entity_type\" IN ('task_message','expense','ticket_message','kb_article','vendor')"
        }
      },
      "isRLSEnabled": false
    },
    "public.audit_log": {
      "name": "audit_log",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "actor_id": {
          "name": "actor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "actor_type": {
          "name": "actor_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'user'"
        },
        "api_key_id": {
          "name": "api_key_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "entity_type": {
          "name": "entity_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "entity_id": {
          "name": "entity_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "action": {
          "name": "action",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "changes": {
          "name": "changes",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "request_id": {
          "name": "request_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "ip": {
          "name": "ip",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "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()"
        },
        "before_state": {
          "name": "before_state",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "after_state": {
          "name": "after_state",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        }
      },
      "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.bad_debt_vat_reclaims": {
      "name": "bad_debt_vat_reclaims",
      "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
        },
        "invoice_id": {
          "name": "invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "vat_amount": {
          "name": "vat_amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'pending'"
        },
        "registered_letter_sent_at": {
          "name": "registered_letter_sent_at",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "ita_submission_date": {
          "name": "ita_submission_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "ita_reference": {
          "name": "ita_reference",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "resolved_at": {
          "name": "resolved_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "reversed_at": {
          "name": "reversed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "bad_debt_vat_reclaims_tenant_id_tenants_id_fk": {
          "name": "bad_debt_vat_reclaims_tenant_id_tenants_id_fk",
          "tableFrom": "bad_debt_vat_reclaims",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "bad_debt_vat_reclaims_invoice_id_invoices_id_fk": {
          "name": "bad_debt_vat_reclaims_invoice_id_invoices_id_fk",
          "tableFrom": "bad_debt_vat_reclaims",
          "tableTo": "invoices",
          "columnsFrom": [
            "invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "bad_debt_vat_reclaims_status_check": {
          "name": "bad_debt_vat_reclaims_status_check",
          "value": "\"bad_debt_vat_reclaims\".\"status\" IN ('pending','submitted','approved','rejected','reversed','cancelled')"
        }
      },
      "isRLSEnabled": false
    },
    "public.billing_plans": {
      "name": "billing_plans",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "tier": {
          "name": "tier",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "price_monthly": {
          "name": "price_monthly",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "price_annual": {
          "name": "price_annual",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "features": {
          "name": "features",
          "type": "text[]",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::text[]"
        },
        "max_users": {
          "name": "max_users",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "max_projects": {
          "name": "max_projects",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "archived_at": {
          "name": "archived_at",
          "type": "timestamp with time zone",
          "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": {
        "billing_plans_tier_idx": {
          "name": "billing_plans_tier_idx",
          "columns": [
            {
              "expression": "tier",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "billing_plans_active_idx": {
          "name": "billing_plans_active_idx",
          "columns": [
            {
              "expression": "archived_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "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.catalog_items": {
      "name": "catalog_items",
      "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
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "sku": {
          "name": "sku",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "unit_price": {
          "name": "unit_price",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "unit": {
          "name": "unit",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "default": "'unit'"
        },
        "category": {
          "name": "category",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "metadata": {
          "name": "metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_catalog_items_tenant": {
          "name": "idx_catalog_items_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_catalog_items_tenant_category": {
          "name": "idx_catalog_items_tenant_category",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "category",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.catalog_shares": {
      "name": "catalog_shares",
      "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
        },
        "template_id": {
          "name": "template_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "public_token": {
          "name": "public_token",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "settings": {
          "name": "settings",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "utm_source": {
          "name": "utm_source",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_medium": {
          "name": "utm_medium",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_campaign": {
          "name": "utm_campaign",
          "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_catalog_shares_tenant": {
          "name": "idx_catalog_shares_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_catalog_shares_public_token": {
          "name": "idx_catalog_shares_public_token",
          "columns": [
            {
              "expression": "public_token",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "catalog_shares_tenant_id_tenants_id_fk": {
          "name": "catalog_shares_tenant_id_tenants_id_fk",
          "tableFrom": "catalog_shares",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "catalog_shares_template_id_catalog_templates_id_fk": {
          "name": "catalog_shares_template_id_catalog_templates_id_fk",
          "tableFrom": "catalog_shares",
          "tableTo": "catalog_templates",
          "columnsFrom": [
            "template_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "catalog_shares_public_token_unique": {
          "name": "catalog_shares_public_token_unique",
          "nullsNotDistinct": false,
          "columns": [
            "public_token"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.catalog_templates": {
      "name": "catalog_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
        },
        "content": {
          "name": "content",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "is_active": {
          "name": "is_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": {
        "idx_catalog_templates_tenant": {
          "name": "idx_catalog_templates_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "catalog_templates_tenant_id_tenants_id_fk": {
          "name": "catalog_templates_tenant_id_tenants_id_fk",
          "tableFrom": "catalog_templates",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "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') OR \"adapter_credentials\".\"adapter_id\" LIKE 'invoice:%'"
        }
      },
      "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.contractor_assignments": {
      "name": "contractor_assignments",
      "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
        },
        "contractor_id": {
          "name": "contractor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "role": {
          "name": "role",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "rate_override": {
          "name": "rate_override",
          "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": {
        "contractor_assignments_contractor_project_idx": {
          "name": "contractor_assignments_contractor_project_idx",
          "columns": [
            {
              "expression": "contractor_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "project_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "contractor_assignments_tenant_contractor_idx": {
          "name": "contractor_assignments_tenant_contractor_idx",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "contractor_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "contractor_assignments_tenant_id_tenants_id_fk": {
          "name": "contractor_assignments_tenant_id_tenants_id_fk",
          "tableFrom": "contractor_assignments",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "contractor_assignments_contractor_id_contractors_id_fk": {
          "name": "contractor_assignments_contractor_id_contractors_id_fk",
          "tableFrom": "contractor_assignments",
          "tableTo": "contractors",
          "columnsFrom": [
            "contractor_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "contractor_assignments_project_id_projects_id_fk": {
          "name": "contractor_assignments_project_id_projects_id_fk",
          "tableFrom": "contractor_assignments",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.contractors": {
      "name": "contractors",
      "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
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "phone": {
          "name": "phone",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "tax_id": {
          "name": "tax_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "billing_type": {
          "name": "billing_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'hourly'"
        },
        "hourly_rate": {
          "name": "hourly_rate",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "active": {
          "name": "active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "withholding_tax_rate": {
          "name": "withholding_tax_rate",
          "type": "numeric(5, 4)",
          "primaryKey": false,
          "notNull": false
        },
        "withholding_certificate_number": {
          "name": "withholding_certificate_number",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "withholding_certificate_expiry": {
          "name": "withholding_certificate_expiry",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "withholding_certificate_r2_key": {
          "name": "withholding_certificate_r2_key",
          "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": {
        "contractors_tenant_idx": {
          "name": "contractors_tenant_idx",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "contractors_tenant_active_idx": {
          "name": "contractors_tenant_active_idx",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "active",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "contractors_tenant_id_tenants_id_fk": {
          "name": "contractors_tenant_id_tenants_id_fk",
          "tableFrom": "contractors",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "contractors_billing_type_check": {
          "name": "contractors_billing_type_check",
          "value": "\"contractors\".\"billing_type\" IN ('hourly','fixed','retainer')"
        },
        "contractors_withholding_rate_check": {
          "name": "contractors_withholding_rate_check",
          "value": "\"contractors\".\"withholding_tax_rate\" IS NULL OR (\"contractors\".\"withholding_tax_rate\" >= 0 AND \"contractors\".\"withholding_tax_rate\" <= 1)"
        }
      },
      "isRLSEnabled": false
    },
    "public.payout_bill_lines": {
      "name": "payout_bill_lines",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "bill_id": {
          "name": "bill_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "time_entry_id": {
          "name": "time_entry_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "hours": {
          "name": "hours",
          "type": "numeric(8, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "rate": {
          "name": "rate",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "line_total": {
          "name": "line_total",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "position": {
          "name": "position",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        }
      },
      "indexes": {
        "payout_bill_lines_bill_idx": {
          "name": "payout_bill_lines_bill_idx",
          "columns": [
            {
              "expression": "bill_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "payout_bill_lines_time_entry_idx": {
          "name": "payout_bill_lines_time_entry_idx",
          "columns": [
            {
              "expression": "time_entry_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "payout_bill_lines_bill_id_payout_bills_id_fk": {
          "name": "payout_bill_lines_bill_id_payout_bills_id_fk",
          "tableFrom": "payout_bill_lines",
          "tableTo": "payout_bills",
          "columnsFrom": [
            "bill_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "payout_bill_lines_tenant_id_tenants_id_fk": {
          "name": "payout_bill_lines_tenant_id_tenants_id_fk",
          "tableFrom": "payout_bill_lines",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "payout_bill_lines_project_id_projects_id_fk": {
          "name": "payout_bill_lines_project_id_projects_id_fk",
          "tableFrom": "payout_bill_lines",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.payout_bills": {
      "name": "payout_bills",
      "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
        },
        "contractor_id": {
          "name": "contractor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "period_start": {
          "name": "period_start",
          "type": "date",
          "primaryKey": false,
          "notNull": true
        },
        "period_end": {
          "name": "period_end",
          "type": "date",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'DRAFT'"
        },
        "total_hours": {
          "name": "total_hours",
          "type": "numeric(8, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "amount": {
          "name": "amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "withholding_rate": {
          "name": "withholding_rate",
          "type": "numeric(5, 4)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        },
        "withholding_amount": {
          "name": "withholding_amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        },
        "net_amount": {
          "name": "net_amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "paid_at": {
          "name": "paid_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "payment_method": {
          "name": "payment_method",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "payment_reference": {
          "name": "payment_reference",
          "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
        },
        "void_reason": {
          "name": "void_reason",
          "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": {
        "payout_bills_tenant_contractor_idx": {
          "name": "payout_bills_tenant_contractor_idx",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "contractor_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "payout_bills_tenant_status_idx": {
          "name": "payout_bills_tenant_status_idx",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "payout_bills_period_idx": {
          "name": "payout_bills_period_idx",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "period_start",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "period_end",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "payout_bills_tenant_id_tenants_id_fk": {
          "name": "payout_bills_tenant_id_tenants_id_fk",
          "tableFrom": "payout_bills",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "payout_bills_contractor_id_contractors_id_fk": {
          "name": "payout_bills_contractor_id_contractors_id_fk",
          "tableFrom": "payout_bills",
          "tableTo": "contractors",
          "columnsFrom": [
            "contractor_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "payout_bills_voided_by_users_id_fk": {
          "name": "payout_bills_voided_by_users_id_fk",
          "tableFrom": "payout_bills",
          "tableTo": "users",
          "columnsFrom": [
            "voided_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "payout_bills_created_by_users_id_fk": {
          "name": "payout_bills_created_by_users_id_fk",
          "tableFrom": "payout_bills",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "payout_bills_status_check": {
          "name": "payout_bills_status_check",
          "value": "\"payout_bills\".\"status\" IN ('DRAFT','SENT','APPROVED','PAID','VOID')"
        },
        "payout_bills_payment_method_check": {
          "name": "payout_bills_payment_method_check",
          "value": "\"payout_bills\".\"payment_method\" IS NULL OR \"payout_bills\".\"payment_method\" IN ('bank_transfer','check','other')"
        },
        "payout_bills_void_consistency_check": {
          "name": "payout_bills_void_consistency_check",
          "value": "(\"payout_bills\".\"status\" = 'VOID') = (\"payout_bills\".\"voided_at\" IS NOT NULL)"
        },
        "payout_bills_paid_consistency_check": {
          "name": "payout_bills_paid_consistency_check",
          "value": "(\"payout_bills\".\"status\" = 'PAID') = (\"payout_bills\".\"paid_at\" IS NOT NULL)"
        }
      },
      "isRLSEnabled": false
    },
    "public.withholding_tax_certificates": {
      "name": "withholding_tax_certificates",
      "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
        },
        "contractor_id": {
          "name": "contractor_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "certificate_number": {
          "name": "certificate_number",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "tax_year": {
          "name": "tax_year",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "withholding_rate": {
          "name": "withholding_rate",
          "type": "numeric(5, 4)",
          "primaryKey": false,
          "notNull": true
        },
        "expiry_date": {
          "name": "expiry_date",
          "type": "date",
          "primaryKey": false,
          "notNull": true
        },
        "r2_key": {
          "name": "r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "uploaded_by": {
          "name": "uploaded_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "uploaded_at": {
          "name": "uploaded_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "withholding_tax_certs_contractor_idx": {
          "name": "withholding_tax_certs_contractor_idx",
          "columns": [
            {
              "expression": "contractor_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "withholding_tax_certs_tenant_year_idx": {
          "name": "withholding_tax_certs_tenant_year_idx",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "tax_year",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "withholding_tax_certificates_tenant_id_tenants_id_fk": {
          "name": "withholding_tax_certificates_tenant_id_tenants_id_fk",
          "tableFrom": "withholding_tax_certificates",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "withholding_tax_certificates_contractor_id_contractors_id_fk": {
          "name": "withholding_tax_certificates_contractor_id_contractors_id_fk",
          "tableFrom": "withholding_tax_certificates",
          "tableTo": "contractors",
          "columnsFrom": [
            "contractor_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "withholding_tax_certificates_uploaded_by_users_id_fk": {
          "name": "withholding_tax_certificates_uploaded_by_users_id_fk",
          "tableFrom": "withholding_tax_certificates",
          "tableTo": "users",
          "columnsFrom": [
            "uploaded_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "withholding_tax_certs_rate_check": {
          "name": "withholding_tax_certs_rate_check",
          "value": "\"withholding_tax_certificates\".\"withholding_rate\" >= 0 AND \"withholding_tax_certificates\".\"withholding_rate\" <= 1"
        }
      },
      "isRLSEnabled": false
    },
    "public.contract_audit_log": {
      "name": "contract_audit_log",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "contract_id": {
          "name": "contract_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "event": {
          "name": "event",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "actor_type": {
          "name": "actor_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "actor_id": {
          "name": "actor_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "ip_address": {
          "name": "ip_address",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "user_agent": {
          "name": "user_agent",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "metadata": {
          "name": "metadata",
          "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": {
        "idx_contract_audit_log_contract": {
          "name": "idx_contract_audit_log_contract",
          "columns": [
            {
              "expression": "contract_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "contract_audit_log_contract_id_contracts_id_fk": {
          "name": "contract_audit_log_contract_id_contracts_id_fk",
          "tableFrom": "contract_audit_log",
          "tableTo": "contracts",
          "columnsFrom": [
            "contract_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "contract_audit_log_tenant_id_tenants_id_fk": {
          "name": "contract_audit_log_tenant_id_tenants_id_fk",
          "tableFrom": "contract_audit_log",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "contract_audit_log_event_check": {
          "name": "contract_audit_log_event_check",
          "value": "\"contract_audit_log\".\"event\" IN ('sent','viewed','signed','declined','voided','downloaded','reminder_sent','link_resent','signatory_replaced')"
        },
        "contract_audit_log_actor_type_check": {
          "name": "contract_audit_log_actor_type_check",
          "value": "\"contract_audit_log\".\"actor_type\" IN ('staff','signatory','system')"
        }
      },
      "isRLSEnabled": false
    },
    "public.contract_signatories": {
      "name": "contract_signatories",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "contract_id": {
          "name": "contract_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "token": {
          "name": "token",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "token_expires_at": {
          "name": "token_expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "signed_at": {
          "name": "signed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "declined_at": {
          "name": "declined_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "signature_data": {
          "name": "signature_data",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "signature_type": {
          "name": "signature_type",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "signer_ip": {
          "name": "signer_ip",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "signer_user_agent": {
          "name": "signer_user_agent",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "signing_order": {
          "name": "signing_order",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "order": {
          "name": "order",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 1
        },
        "reminder_sent_at": {
          "name": "reminder_sent_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "reminder_count": {
          "name": "reminder_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_signatories_contract": {
          "name": "idx_signatories_contract",
          "columns": [
            {
              "expression": "contract_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_signatories_token": {
          "name": "idx_signatories_token",
          "columns": [
            {
              "expression": "token",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "contract_signatories_contract_id_contracts_id_fk": {
          "name": "contract_signatories_contract_id_contracts_id_fk",
          "tableFrom": "contract_signatories",
          "tableTo": "contracts",
          "columnsFrom": [
            "contract_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "contract_signatories_tenant_id_tenants_id_fk": {
          "name": "contract_signatories_tenant_id_tenants_id_fk",
          "tableFrom": "contract_signatories",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "contract_signatories_token_unique": {
          "name": "contract_signatories_token_unique",
          "nullsNotDistinct": false,
          "columns": [
            "token"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "contract_signatories_signature_type_check": {
          "name": "contract_signatories_signature_type_check",
          "value": "\"contract_signatories\".\"signature_type\" IS NULL OR \"contract_signatories\".\"signature_type\" IN ('draw','type')"
        }
      },
      "isRLSEnabled": false
    },
    "public.contracts": {
      "name": "contracts",
      "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
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "content": {
          "name": "content",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'draft'"
        },
        "signer_email": {
          "name": "signer_email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "signer_name": {
          "name": "signer_name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "sent_at": {
          "name": "sent_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "signed_at": {
          "name": "signed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "voided_at": {
          "name": "voided_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "signature_data": {
          "name": "signature_data",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "metadata": {
          "name": "metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false,
          "default": "'{}'::jsonb"
        },
        "signing_deadline": {
          "name": "signing_deadline",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "signed_pdf_r2_key": {
          "name": "signed_pdf_r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "renewed_from_id": {
          "name": "renewed_from_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "amended_from_id": {
          "name": "amended_from_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "effective_date": {
          "name": "effective_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "expiry_date": {
          "name": "expiry_date",
          "type": "date",
          "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_contracts_tenant_status": {
          "name": "idx_contracts_tenant_status",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "contracts_tenant_id_tenants_id_fk": {
          "name": "contracts_tenant_id_tenants_id_fk",
          "tableFrom": "contracts",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "contracts_renewed_from_id_contracts_id_fk": {
          "name": "contracts_renewed_from_id_contracts_id_fk",
          "tableFrom": "contracts",
          "tableTo": "contracts",
          "columnsFrom": [
            "renewed_from_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        },
        "contracts_amended_from_id_contracts_id_fk": {
          "name": "contracts_amended_from_id_contracts_id_fk",
          "tableFrom": "contracts",
          "tableTo": "contracts",
          "columnsFrom": [
            "amended_from_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "contracts_status_check": {
          "name": "contracts_status_check",
          "value": "\"contracts\".\"status\" IN ('draft','sent','signed','voided')"
        }
      },
      "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_merge_suggestions": {
      "name": "customer_merge_suggestions",
      "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
        },
        "primary_customer_id": {
          "name": "primary_customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "duplicate_customer_id": {
          "name": "duplicate_customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "reason": {
          "name": "reason",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "match_metadata": {
          "name": "match_metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'pending'"
        },
        "resolved_by": {
          "name": "resolved_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "resolved_at": {
          "name": "resolved_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_cms_tenant_pair": {
          "name": "idx_cms_tenant_pair",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "primary_customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "duplicate_customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "customer_merge_suggestions_tenant_id_tenants_id_fk": {
          "name": "customer_merge_suggestions_tenant_id_tenants_id_fk",
          "tableFrom": "customer_merge_suggestions",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_merge_suggestions_primary_customer_id_customers_id_fk": {
          "name": "customer_merge_suggestions_primary_customer_id_customers_id_fk",
          "tableFrom": "customer_merge_suggestions",
          "tableTo": "customers",
          "columnsFrom": [
            "primary_customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_merge_suggestions_duplicate_customer_id_customers_id_fk": {
          "name": "customer_merge_suggestions_duplicate_customer_id_customers_id_fk",
          "tableFrom": "customer_merge_suggestions",
          "tableTo": "customers",
          "columnsFrom": [
            "duplicate_customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_merge_suggestions_resolved_by_users_id_fk": {
          "name": "customer_merge_suggestions_resolved_by_users_id_fk",
          "tableFrom": "customer_merge_suggestions",
          "tableTo": "users",
          "columnsFrom": [
            "resolved_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "customer_merge_suggestions_status_check": {
          "name": "customer_merge_suggestions_status_check",
          "value": "\"customer_merge_suggestions\".\"status\" IN ('pending', 'merged', 'dismissed')"
        },
        "customer_merge_suggestions_reason_check": {
          "name": "customer_merge_suggestions_reason_check",
          "value": "\"customer_merge_suggestions\".\"reason\" IN ('email_match', 'name_similarity')"
        }
      },
      "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'"
        },
        "modules_enabled": {
          "name": "modules_enabled",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'[]'::jsonb"
        },
        "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
        },
        "last_login_at": {
          "name": "last_login_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.export_jobs": {
      "name": "export_jobs",
      "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
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'pending'"
        },
        "download_url": {
          "name": "download_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "error_message": {
          "name": "error_message",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "completed_at": {
          "name": "completed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_export_jobs_tenant_created": {
          "name": "idx_export_jobs_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": {
        "export_jobs_tenant_id_tenants_id_fk": {
          "name": "export_jobs_tenant_id_tenants_id_fk",
          "tableFrom": "export_jobs",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "export_jobs_created_by_users_id_fk": {
          "name": "export_jobs_created_by_users_id_fk",
          "tableFrom": "export_jobs",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "export_jobs_status_check": {
          "name": "export_jobs_status_check",
          "value": "\"export_jobs\".\"status\" IN ('pending','processing','completed','failed')"
        }
      },
      "isRLSEnabled": false
    },
    "public.import_job_results": {
      "name": "import_job_results",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "import_job_id": {
          "name": "import_job_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "row_number": {
          "name": "row_number",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "message": {
          "name": "message",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "original_data": {
          "name": "original_data",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "entity_id": {
          "name": "entity_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_import_job_results_job": {
          "name": "idx_import_job_results_job",
          "columns": [
            {
              "expression": "import_job_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "row_number",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "import_job_results_import_job_id_import_jobs_id_fk": {
          "name": "import_job_results_import_job_id_import_jobs_id_fk",
          "tableFrom": "import_job_results",
          "tableTo": "import_jobs",
          "columnsFrom": [
            "import_job_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "import_job_results_status_check": {
          "name": "import_job_results_status_check",
          "value": "\"import_job_results\".\"status\" IN ('success','skipped','error')"
        }
      },
      "isRLSEnabled": false
    },
    "public.import_jobs": {
      "name": "import_jobs",
      "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
        },
        "type": {
          "name": "type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'pending'"
        },
        "r2_key": {
          "name": "r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "original_filename": {
          "name": "original_filename",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "mime_type": {
          "name": "mime_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "file_size_bytes": {
          "name": "file_size_bytes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "column_mapping": {
          "name": "column_mapping",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "total_rows": {
          "name": "total_rows",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "rows_processed": {
          "name": "rows_processed",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "success_count": {
          "name": "success_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "skipped_count": {
          "name": "skipped_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "error_count": {
          "name": "error_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "started_at": {
          "name": "started_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "completed_at": {
          "name": "completed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "error_message": {
          "name": "error_message",
          "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_import_jobs_tenant_status": {
          "name": "idx_import_jobs_tenant_status",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "import_jobs_tenant_id_tenants_id_fk": {
          "name": "import_jobs_tenant_id_tenants_id_fk",
          "tableFrom": "import_jobs",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "import_jobs_created_by_users_id_fk": {
          "name": "import_jobs_created_by_users_id_fk",
          "tableFrom": "import_jobs",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "import_jobs_type_check": {
          "name": "import_jobs_type_check",
          "value": "\"import_jobs\".\"type\" IN ('customers','invoices','products','time_entries','bulk_action')"
        },
        "import_jobs_status_check": {
          "name": "import_jobs_status_check",
          "value": "\"import_jobs\".\"status\" IN ('pending','processing','completed','failed')"
        }
      },
      "isRLSEnabled": false
    },
    "public.dunning_log": {
      "name": "dunning_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
        },
        "invoice_id": {
          "name": "invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "offset_days": {
          "name": "offset_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "action": {
          "name": "action",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "sent_at": {
          "name": "sent_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "result": {
          "name": "result",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "error_msg": {
          "name": "error_msg",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_dunning_log_invoice": {
          "name": "idx_dunning_log_invoice",
          "columns": [
            {
              "expression": "invoice_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_dunning_log_tenant": {
          "name": "idx_dunning_log_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "dunning_log_tenant_id_tenants_id_fk": {
          "name": "dunning_log_tenant_id_tenants_id_fk",
          "tableFrom": "dunning_log",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "dunning_log_invoice_id_invoices_id_fk": {
          "name": "dunning_log_invoice_id_invoices_id_fk",
          "tableFrom": "dunning_log",
          "tableTo": "invoices",
          "columnsFrom": [
            "invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "dunning_log_result_check": {
          "name": "dunning_log_result_check",
          "value": "\"dunning_log\".\"result\" IN ('sent','skipped','error')"
        }
      },
      "isRLSEnabled": false
    },
    "public.dunning_schedules": {
      "name": "dunning_schedules",
      "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
        },
        "offset_days": {
          "name": "offset_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "action": {
          "name": "action",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "email_template_id": {
          "name": "email_template_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": {
        "dunning_schedules_tenant_id_tenants_id_fk": {
          "name": "dunning_schedules_tenant_id_tenants_id_fk",
          "tableFrom": "dunning_schedules",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "dunning_schedules_tenant_offset_uniq": {
          "name": "dunning_schedules_tenant_offset_uniq",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id",
            "offset_days"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "dunning_schedules_action_check": {
          "name": "dunning_schedules_action_check",
          "value": "\"dunning_schedules\".\"action\" IN ('email_reminder','suspend_access','flag_for_review')"
        }
      },
      "isRLSEnabled": false
    },
    "public.einvoice_submissions": {
      "name": "einvoice_submissions",
      "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
        },
        "invoice_id": {
          "name": "invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "ack_number": {
          "name": "ack_number",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'submitted'"
        },
        "error_message": {
          "name": "error_message",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "submitted_by": {
          "name": "submitted_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "submitted_at": {
          "name": "submitted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_einvoice_submissions_tenant": {
          "name": "idx_einvoice_submissions_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "submitted_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "einvoice_submissions_tenant_id_tenants_id_fk": {
          "name": "einvoice_submissions_tenant_id_tenants_id_fk",
          "tableFrom": "einvoice_submissions",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "einvoice_submissions_invoice_id_invoices_id_fk": {
          "name": "einvoice_submissions_invoice_id_invoices_id_fk",
          "tableFrom": "einvoice_submissions",
          "tableTo": "invoices",
          "columnsFrom": [
            "invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "einvoice_submissions_submitted_by_users_id_fk": {
          "name": "einvoice_submissions_submitted_by_users_id_fk",
          "tableFrom": "einvoice_submissions",
          "tableTo": "users",
          "columnsFrom": [
            "submitted_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "einvoice_submissions_tenant_invoice_unique": {
          "name": "einvoice_submissions_tenant_invoice_unique",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id",
            "invoice_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "einvoice_submissions_status_check": {
          "name": "einvoice_submissions_status_check",
          "value": "\"einvoice_submissions\".\"status\" IN ('submitted','failed')"
        }
      },
      "isRLSEnabled": false
    },
    "public.exchange_rates": {
      "name": "exchange_rates",
      "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
        },
        "from_currency": {
          "name": "from_currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "to_currency": {
          "name": "to_currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "rate": {
          "name": "rate",
          "type": "numeric(18, 8)",
          "primaryKey": false,
          "notNull": true
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "default": "'manual'"
        },
        "effective_date": {
          "name": "effective_date",
          "type": "date",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "exchange_rates_pair_date_uniq": {
          "name": "exchange_rates_pair_date_uniq",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "from_currency",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "to_currency",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "effective_date",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "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
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "billable": {
          "name": "billable",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "invoice_id": {
          "name": "invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "billed_at": {
          "name": "billed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "business_percent": {
          "name": "business_percent",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 100
        },
        "approval_status": {
          "name": "approval_status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'not_required'"
        },
        "approved_by": {
          "name": "approved_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "approved_at": {
          "name": "approved_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "approval_note": {
          "name": "approval_note",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "vendor_id": {
          "name": "vendor_id",
          "type": "uuid",
          "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_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"
        },
        "expenses_customer_id_customers_id_fk": {
          "name": "expenses_customer_id_customers_id_fk",
          "tableFrom": "expenses",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "expenses_invoice_id_invoices_id_fk": {
          "name": "expenses_invoice_id_invoices_id_fk",
          "tableFrom": "expenses",
          "tableTo": "invoices",
          "columnsFrom": [
            "invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "expenses_approved_by_users_id_fk": {
          "name": "expenses_approved_by_users_id_fk",
          "tableFrom": "expenses",
          "tableTo": "users",
          "columnsFrom": [
            "approved_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.field_permission_rules": {
      "name": "field_permission_rules",
      "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
        },
        "entity_type": {
          "name": "entity_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "field_name": {
          "name": "field_name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "role": {
          "name": "role",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "permission": {
          "name": "permission",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'visible'"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_fpr_unique": {
          "name": "idx_fpr_unique",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "entity_type",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "field_name",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "role",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_fpr_tenant": {
          "name": "idx_fpr_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "entity_type",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "field_permission_rules_tenant_id_tenants_id_fk": {
          "name": "field_permission_rules_tenant_id_tenants_id_fk",
          "tableFrom": "field_permission_rules",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "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
        },
        "sla_enabled": {
          "name": "sla_enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "project_default_billing_type": {
          "name": "project_default_billing_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'fixed'"
        },
        "project_default_hourly_rate": {
          "name": "project_default_hourly_rate",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0'"
        },
        "project_default_currency": {
          "name": "project_default_currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "project_default_time_tracking": {
          "name": "project_default_time_tracking",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "project_default_time_rounding_minutes": {
          "name": "project_default_time_rounding_minutes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "project_default_budget_alert_pct": {
          "name": "project_default_budget_alert_pct",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 80
        },
        "project_budget_alert_email": {
          "name": "project_budget_alert_email",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "project_budget_alert_in_app": {
          "name": "project_budget_alert_in_app",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "portal_enabled": {
          "name": "portal_enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "portal_access_method": {
          "name": "portal_access_method",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'magic_link'"
        },
        "portal_name": {
          "name": "portal_name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "portal_welcome_text": {
          "name": "portal_welcome_text",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "portal_primary_color_hex": {
          "name": "portal_primary_color_hex",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "portal_logo_url": {
          "name": "portal_logo_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "portal_can_submit_tickets": {
          "name": "portal_can_submit_tickets",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "portal_can_upload_files": {
          "name": "portal_can_upload_files",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "portal_show_team_members": {
          "name": "portal_show_team_members",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "portal_visibility": {
          "name": "portal_visibility",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false,
          "default": "'{}'::jsonb"
        },
        "customer_default_currency": {
          "name": "customer_default_currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "customer_auto_invite_portal": {
          "name": "customer_auto_invite_portal",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'never'"
        },
        "customer_default_portal_role": {
          "name": "customer_default_portal_role",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'customer_viewer'"
        },
        "dunning_suspend_access": {
          "name": "dunning_suspend_access",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "invoice_pdf_layout": {
          "name": "invoice_pdf_layout",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'classic'"
        },
        "invoice_pdf_show_project": {
          "name": "invoice_pdf_show_project",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "invoice_pdf_show_sku": {
          "name": "invoice_pdf_show_sku",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "invoice_pdf_date_format": {
          "name": "invoice_pdf_date_format",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'dd.MM.yyyy'"
        },
        "invoice_pdf_accent_hex": {
          "name": "invoice_pdf_accent_hex",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "contractor_portal_enabled": {
          "name": "contractor_portal_enabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "contractor_portal_show_billing": {
          "name": "contractor_portal_show_billing",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "contractor_approval_deadline_days": {
          "name": "contractor_approval_deadline_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 7
        },
        "contractor_payout_period": {
          "name": "contractor_payout_period",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'monthly'"
        },
        "contractor_withholding_note": {
          "name": "contractor_withholding_note",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "proposal_default_valid_days": {
          "name": "proposal_default_valid_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "bad_debt_threshold_days": {
          "name": "bad_debt_threshold_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 90
        },
        "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')"
        },
        "tenant_settings_project_default_billing_type_check": {
          "name": "tenant_settings_project_default_billing_type_check",
          "value": "\"tenant_settings\".\"project_default_billing_type\" IN ('fixed','hourly','retainer')"
        },
        "tenant_settings_project_default_time_rounding_check": {
          "name": "tenant_settings_project_default_time_rounding_check",
          "value": "\"tenant_settings\".\"project_default_time_rounding_minutes\" IN (0,5,15,30)"
        },
        "tenant_settings_project_default_budget_alert_pct_check": {
          "name": "tenant_settings_project_default_budget_alert_pct_check",
          "value": "\"tenant_settings\".\"project_default_budget_alert_pct\" BETWEEN 1 AND 100"
        },
        "tenant_settings_portal_access_method_check": {
          "name": "tenant_settings_portal_access_method_check",
          "value": "\"tenant_settings\".\"portal_access_method\" IN ('magic_link', 'password')"
        },
        "tenant_settings_customer_auto_invite_portal_check": {
          "name": "tenant_settings_customer_auto_invite_portal_check",
          "value": "\"tenant_settings\".\"customer_auto_invite_portal\" IN ('never', 'on_creation', 'on_first_invoice')"
        },
        "tenant_settings_customer_default_portal_role_check": {
          "name": "tenant_settings_customer_default_portal_role_check",
          "value": "\"tenant_settings\".\"customer_default_portal_role\" IN ('customer_viewer')"
        },
        "tenant_settings_invoice_pdf_layout_check": {
          "name": "tenant_settings_invoice_pdf_layout_check",
          "value": "\"tenant_settings\".\"invoice_pdf_layout\" IN ('classic','modern','minimal')"
        },
        "tenant_settings_invoice_pdf_date_format_check": {
          "name": "tenant_settings_invoice_pdf_date_format_check",
          "value": "\"tenant_settings\".\"invoice_pdf_date_format\" IN ('dd.MM.yyyy','yyyy-MM-dd','MMMM d, yyyy')"
        }
      },
      "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
        },
        "checklist_dismissed_at": {
          "name": "checklist_dismissed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "onboarding_completed": {
          "name": "onboarding_completed",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "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
        },
        "meta_title": {
          "name": "meta_title",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "meta_description": {
          "name": "meta_description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "deleted_at": {
          "name": "deleted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "search_text": {
          "name": "search_text",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "generated": {
            "as": "title || ' ' || COALESCE(meta_title, '') || ' ' || COALESCE(meta_description, '')",
            "type": "stored"
          }
        }
      },
      "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()"
        },
        "completed_at": {
          "name": "completed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "archived_at": {
          "name": "archived_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        }
      },
      "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
        },
        "cancel_reason": {
          "name": "cancel_reason",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "cancel_feedback": {
          "name": "cancel_feedback",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "cancel_intent_at": {
          "name": "cancel_intent_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "cancel_at_period_end": {
          "name": "cancel_at_period_end",
          "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_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','api')"
        }
      },
      "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_approval_requests": {
      "name": "time_approval_requests",
      "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
        },
        "submitter_id": {
          "name": "submitter_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "manager_id": {
          "name": "manager_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "period_start": {
          "name": "period_start",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "period_end": {
          "name": "period_end",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "entry_ids": {
          "name": "entry_ids",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'pending'"
        },
        "submitted_at": {
          "name": "submitted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "reviewed_at": {
          "name": "reviewed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "reviewed_by": {
          "name": "reviewed_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "comments": {
          "name": "comments",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_time_approval_requests_tenant": {
          "name": "idx_time_approval_requests_tenant",
          "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": {}
        },
        "idx_time_approval_requests_submitter": {
          "name": "idx_time_approval_requests_submitter",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "submitter_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "time_approval_requests_tenant_id_tenants_id_fk": {
          "name": "time_approval_requests_tenant_id_tenants_id_fk",
          "tableFrom": "time_approval_requests",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "time_approval_requests_status_check": {
          "name": "time_approval_requests_status_check",
          "value": "\"time_approval_requests\".\"status\" IN ('pending','approved','rejected')"
        }
      },
      "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_by": {
          "name": "locked_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "locked_reason": {
          "name": "locked_reason",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "invoice_id": {
          "name": "invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "billed_at": {
          "name": "billed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "submitted_at": {
          "name": "submitted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "approved_at": {
          "name": "approved_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "approved_by": {
          "name": "approved_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "rejected_at": {
          "name": "rejected_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "rejection_reason": {
          "name": "rejection_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"
        },
        "time_entries_invoice_id_invoices_id_fk": {
          "name": "time_entries_invoice_id_invoices_id_fk",
          "tableFrom": "time_entries",
          "tableTo": "invoices",
          "columnsFrom": [
            "invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "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
        },
        "expense_id": {
          "name": "expense_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "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"
        },
        "invoice_lines_expense_id_expenses_id_fk": {
          "name": "invoice_lines_expense_id_expenses_id_fk",
          "tableFrom": "invoice_lines",
          "tableTo": "expenses",
          "columnsFrom": [
            "expense_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "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','credit_note')"
        }
      },
      "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": false
        },
        "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'"
        },
        "overpayment_amount": {
          "name": "overpayment_amount",
          "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
        },
        "approved_by": {
          "name": "approved_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "approval_note": {
          "name": "approval_note",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "rejection_reason": {
          "name": "rejection_reason",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "rejection_notify_customer": {
          "name": "rejection_notify_customer",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "is_template": {
          "name": "is_template",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "recurring_template_id": {
          "name": "recurring_template_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "proposal_id": {
          "name": "proposal_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "bad_debt_at": {
          "name": "bad_debt_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "bad_debt_reason": {
          "name": "bad_debt_reason",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "bad_debt_note": {
          "name": "bad_debt_note",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "payment_link_sent_at": {
          "name": "payment_link_sent_at",
          "type": "timestamp with time zone",
          "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_approved_by_users_id_fk": {
          "name": "invoices_approved_by_users_id_fk",
          "tableFrom": "invoices",
          "tableTo": "users",
          "columnsFrom": [
            "approved_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "invoices_recurring_template_id_recurring_invoice_templates_id_fk": {
          "name": "invoices_recurring_template_id_recurring_invoice_templates_id_fk",
          "tableFrom": "invoices",
          "tableTo": "recurring_invoice_templates",
          "columnsFrom": [
            "recurring_template_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')"
        },
        "chk_invoice_requires_customer": {
          "name": "chk_invoice_requires_customer",
          "value": "\"invoices\".\"is_template\" = true OR \"invoices\".\"customer_id\" IS NOT NULL"
        },
        "invoices_bad_debt_reason_check": {
          "name": "invoices_bad_debt_reason_check",
          "value": "\"invoices\".\"bad_debt_reason\" IS NULL OR \"invoices\".\"bad_debt_reason\" IN ('bankruptcy','collection_failed','other')"
        }
      },
      "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
        },
        "due_at": {
          "name": "due_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "first_response_at": {
          "name": "first_response_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "sla_breached": {
          "name": "sla_breached",
          "type": "boolean",
          "primaryKey": false,
          "notNull": false,
          "default": 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
    },
    "public.recurring_invoice_templates": {
      "name": "recurring_invoice_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
        },
        "customer_id": {
          "name": "customer_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
        },
        "line_items": {
          "name": "line_items",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'[]'::jsonb"
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "vat_rate": {
          "name": "vat_rate",
          "type": "numeric(5, 4)",
          "primaryKey": false,
          "notNull": true,
          "default": "'0.18'"
        },
        "frequency": {
          "name": "frequency",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "frequency_day": {
          "name": "frequency_day",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "payment_terms_days": {
          "name": "payment_terms_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 30
        },
        "start_date": {
          "name": "start_date",
          "type": "date",
          "primaryKey": false,
          "notNull": true
        },
        "end_date": {
          "name": "end_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "auto_send": {
          "name": "auto_send",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "auto_charge": {
          "name": "auto_charge",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "next_generation_date": {
          "name": "next_generation_date",
          "type": "date",
          "primaryKey": false,
          "notNull": true
        },
        "last_generated_at": {
          "name": "last_generated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "generated_count": {
          "name": "generated_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "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": {},
      "foreignKeys": {
        "recurring_invoice_templates_tenant_id_tenants_id_fk": {
          "name": "recurring_invoice_templates_tenant_id_tenants_id_fk",
          "tableFrom": "recurring_invoice_templates",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "recurring_invoice_templates_customer_id_customers_id_fk": {
          "name": "recurring_invoice_templates_customer_id_customers_id_fk",
          "tableFrom": "recurring_invoice_templates",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "recurring_invoice_templates_created_by_users_id_fk": {
          "name": "recurring_invoice_templates_created_by_users_id_fk",
          "tableFrom": "recurring_invoice_templates",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "rit_frequency_check": {
          "name": "rit_frequency_check",
          "value": "\"recurring_invoice_templates\".\"frequency\" IN ('weekly','monthly','quarterly','yearly')"
        },
        "rit_status_check": {
          "name": "rit_status_check",
          "value": "\"recurring_invoice_templates\".\"status\" IN ('active','paused','completed','cancelled')"
        }
      },
      "isRLSEnabled": false
    },
    "public.project_milestones": {
      "name": "project_milestones",
      "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": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "amount": {
          "name": "amount",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "invoice_id": {
          "name": "invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'pending'"
        },
        "due_date": {
          "name": "due_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "completed_at": {
          "name": "completed_at",
          "type": "timestamp with time zone",
          "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_project_milestones_project": {
          "name": "idx_project_milestones_project",
          "columns": [
            {
              "expression": "project_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_project_milestones_tenant_project": {
          "name": "idx_project_milestones_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": {}
        }
      },
      "foreignKeys": {
        "project_milestones_tenant_id_tenants_id_fk": {
          "name": "project_milestones_tenant_id_tenants_id_fk",
          "tableFrom": "project_milestones",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "project_milestones_project_id_projects_id_fk": {
          "name": "project_milestones_project_id_projects_id_fk",
          "tableFrom": "project_milestones",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "project_milestones_created_by_users_id_fk": {
          "name": "project_milestones_created_by_users_id_fk",
          "tableFrom": "project_milestones",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "project_milestones_status_check": {
          "name": "project_milestones_status_check",
          "value": "\"project_milestones\".\"status\" IN ('pending', 'in_progress', 'completed', 'cancelled')"
        }
      },
      "isRLSEnabled": false
    },
    "public.lead_activities": {
      "name": "lead_activities",
      "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
        },
        "lead_id": {
          "name": "lead_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "type": {
          "name": "type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "content": {
          "name": "content",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "metadata": {
          "name": "metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_lead_activities_tenant_lead": {
          "name": "idx_lead_activities_tenant_lead",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "lead_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "lead_activities_tenant_id_tenants_id_fk": {
          "name": "lead_activities_tenant_id_tenants_id_fk",
          "tableFrom": "lead_activities",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "lead_activities_lead_id_leads_id_fk": {
          "name": "lead_activities_lead_id_leads_id_fk",
          "tableFrom": "lead_activities",
          "tableTo": "leads",
          "columnsFrom": [
            "lead_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "lead_activities_user_id_users_id_fk": {
          "name": "lead_activities_user_id_users_id_fk",
          "tableFrom": "lead_activities",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "lead_activities_type_check": {
          "name": "lead_activities_type_check",
          "value": "\"lead_activities\".\"type\" IN ('note','email_sent','call_logged','stage_changed','form_submitted','webhook_received','converted','contract_linked')"
        }
      },
      "isRLSEnabled": false
    },
    "public.lead_form_submissions": {
      "name": "lead_form_submissions",
      "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
        },
        "form_id": {
          "name": "form_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "lead_id": {
          "name": "lead_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "payload": {
          "name": "payload",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true
        },
        "ip": {
          "name": "ip",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "user_agent": {
          "name": "user_agent",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "referrer": {
          "name": "referrer",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_source": {
          "name": "utm_source",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_medium": {
          "name": "utm_medium",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_campaign": {
          "name": "utm_campaign",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_content": {
          "name": "utm_content",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_term": {
          "name": "utm_term",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_lead_form_submissions_form": {
          "name": "idx_lead_form_submissions_form",
          "columns": [
            {
              "expression": "form_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_lead_form_submissions_lead": {
          "name": "idx_lead_form_submissions_lead",
          "columns": [
            {
              "expression": "lead_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "lead_form_submissions_tenant_id_tenants_id_fk": {
          "name": "lead_form_submissions_tenant_id_tenants_id_fk",
          "tableFrom": "lead_form_submissions",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "lead_form_submissions_form_id_lead_forms_id_fk": {
          "name": "lead_form_submissions_form_id_lead_forms_id_fk",
          "tableFrom": "lead_form_submissions",
          "tableTo": "lead_forms",
          "columnsFrom": [
            "form_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "lead_form_submissions_lead_id_leads_id_fk": {
          "name": "lead_form_submissions_lead_id_leads_id_fk",
          "tableFrom": "lead_form_submissions",
          "tableTo": "leads",
          "columnsFrom": [
            "lead_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.lead_forms": {
      "name": "lead_forms",
      "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
        },
        "fields": {
          "name": "fields",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true
        },
        "redirect_url": {
          "name": "redirect_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "notify_email": {
          "name": "notify_email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "style": {
          "name": "style",
          "type": "jsonb",
          "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_lead_forms_tenant_slug_uniq": {
          "name": "idx_lead_forms_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": {
        "lead_forms_tenant_id_tenants_id_fk": {
          "name": "lead_forms_tenant_id_tenants_id_fk",
          "tableFrom": "lead_forms",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "lead_forms_created_by_users_id_fk": {
          "name": "lead_forms_created_by_users_id_fk",
          "tableFrom": "lead_forms",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.lead_webhooks": {
      "name": "lead_webhooks",
      "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
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "secret": {
          "name": "secret",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "field_mapping": {
          "name": "field_mapping",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "last_received_at": {
          "name": "last_received_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_lead_webhooks_tenant": {
          "name": "idx_lead_webhooks_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "lead_webhooks_tenant_id_tenants_id_fk": {
          "name": "lead_webhooks_tenant_id_tenants_id_fk",
          "tableFrom": "lead_webhooks",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "lead_webhooks_source_check": {
          "name": "lead_webhooks_source_check",
          "value": "\"lead_webhooks\".\"source\" IN ('facebook','google','linkedin','instagram','zapier','make','generic')"
        }
      },
      "isRLSEnabled": false
    },
    "public.leads": {
      "name": "leads",
      "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
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "phone": {
          "name": "phone",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "company": {
          "name": "company",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "stage": {
          "name": "stage",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'NEW'"
        },
        "stage_position": {
          "name": "stage_position",
          "type": "numeric",
          "primaryKey": false,
          "notNull": true
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'manual'"
        },
        "source_metadata": {
          "name": "source_metadata",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "assigned_to": {
          "name": "assigned_to",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "contract_id": {
          "name": "contract_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "lost_reason": {
          "name": "lost_reason",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "estimated_value": {
          "name": "estimated_value",
          "type": "numeric",
          "primaryKey": false,
          "notNull": false
        },
        "utm_source": {
          "name": "utm_source",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_medium": {
          "name": "utm_medium",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_campaign": {
          "name": "utm_campaign",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_content": {
          "name": "utm_content",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_term": {
          "name": "utm_term",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "archived_at": {
          "name": "archived_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_leads_tenant_created": {
          "name": "idx_leads_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": {
        "leads_tenant_id_tenants_id_fk": {
          "name": "leads_tenant_id_tenants_id_fk",
          "tableFrom": "leads",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "leads_assigned_to_users_id_fk": {
          "name": "leads_assigned_to_users_id_fk",
          "tableFrom": "leads",
          "tableTo": "users",
          "columnsFrom": [
            "assigned_to"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "leads_customer_id_customers_id_fk": {
          "name": "leads_customer_id_customers_id_fk",
          "tableFrom": "leads",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "leads_stage_check": {
          "name": "leads_stage_check",
          "value": "\"leads\".\"stage\" IN ('NEW','CONTACTED','QUALIFIED','PROPOSAL','WON','LOST')"
        },
        "leads_source_check": {
          "name": "leads_source_check",
          "value": "\"leads\".\"source\" IN ('manual','form','webhook','facebook','google','linkedin','instagram','zapier','make','referral','cold_outreach')"
        }
      },
      "isRLSEnabled": false
    },
    "public.pipeline_stages": {
      "name": "pipeline_stages",
      "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
        },
        "color": {
          "name": "color",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "position": {
          "name": "position",
          "type": "numeric",
          "primaryKey": false,
          "notNull": true
        },
        "is_system": {
          "name": "is_system",
          "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_pipeline_stages_tenant_slug_uniq": {
          "name": "idx_pipeline_stages_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": {}
        },
        "idx_pipeline_stages_tenant_position": {
          "name": "idx_pipeline_stages_tenant_position",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "position",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "pipeline_stages_tenant_id_tenants_id_fk": {
          "name": "pipeline_stages_tenant_id_tenants_id_fk",
          "tableFrom": "pipeline_stages",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.sla_policies": {
      "name": "sla_policies",
      "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
        },
        "priority": {
          "name": "priority",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "first_response_hours": {
          "name": "first_response_hours",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "resolution_hours": {
          "name": "resolution_hours",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "escalation_email": {
          "name": "escalation_email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "notify_email": {
          "name": "notify_email",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "notify_in_app": {
          "name": "notify_in_app",
          "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": {
        "sla_policies_tenant_id_tenants_id_fk": {
          "name": "sla_policies_tenant_id_tenants_id_fk",
          "tableFrom": "sla_policies",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "sla_policies_tenant_priority_uniq": {
          "name": "sla_policies_tenant_priority_uniq",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id",
            "priority"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "sla_policies_priority_check": {
          "name": "sla_policies_priority_check",
          "value": "\"sla_policies\".\"priority\" IN ('low','medium','high','urgent')"
        }
      },
      "isRLSEnabled": false
    },
    "public.integration_sync_logs": {
      "name": "integration_sync_logs",
      "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
        },
        "entity_type": {
          "name": "entity_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "entity_id": {
          "name": "entity_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "external_id": {
          "name": "external_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "direction": {
          "name": "direction",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "http_status": {
          "name": "http_status",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "error_payload": {
          "name": "error_payload",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "duration_ms": {
          "name": "duration_ms",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "triggered_by": {
          "name": "triggered_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_isl_tenant": {
          "name": "idx_isl_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "provider",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "integration_sync_logs_tenant_id_tenants_id_fk": {
          "name": "integration_sync_logs_tenant_id_tenants_id_fk",
          "tableFrom": "integration_sync_logs",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "integration_sync_logs_triggered_by_users_id_fk": {
          "name": "integration_sync_logs_triggered_by_users_id_fk",
          "tableFrom": "integration_sync_logs",
          "tableTo": "users",
          "columnsFrom": [
            "triggered_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "integration_sync_logs_provider_check": {
          "name": "integration_sync_logs_provider_check",
          "value": "\"integration_sync_logs\".\"provider\" IN ('morning','icount','rivhit','invoice4u','easycount')"
        },
        "integration_sync_logs_entity_type_check": {
          "name": "integration_sync_logs_entity_type_check",
          "value": "\"integration_sync_logs\".\"entity_type\" IN ('invoice','customer')"
        },
        "integration_sync_logs_direction_check": {
          "name": "integration_sync_logs_direction_check",
          "value": "\"integration_sync_logs\".\"direction\" IN ('push','pull')"
        },
        "integration_sync_logs_status_check": {
          "name": "integration_sync_logs_status_check",
          "value": "\"integration_sync_logs\".\"status\" IN ('success','failure','skipped')"
        }
      },
      "isRLSEnabled": false
    },
    "public.saved_filters": {
      "name": "saved_filters",
      "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
        },
        "entity_type": {
          "name": "entity_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "filters": {
          "name": "filters",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true
        },
        "is_shared": {
          "name": "is_shared",
          "type": "boolean",
          "primaryKey": false,
          "notNull": false,
          "default": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "saved_filters_entity_type_check": {
          "name": "saved_filters_entity_type_check",
          "value": "\"saved_filters\".\"entity_type\" IN ('invoices','customers','projects','expenses','tasks')"
        }
      },
      "isRLSEnabled": false
    },
    "public.telegram_chats": {
      "name": "telegram_chats",
      "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
        },
        "chat_id": {
          "name": "chat_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "chat_type": {
          "name": "chat_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "chat_title": {
          "name": "chat_title",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "linked_user_id": {
          "name": "linked_user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": false,
          "default": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "telegram_chats_tenant_id_tenants_id_fk": {
          "name": "telegram_chats_tenant_id_tenants_id_fk",
          "tableFrom": "telegram_chats",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "telegram_chats_tenant_chat_uniq": {
          "name": "telegram_chats_tenant_chat_uniq",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id",
            "chat_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "telegram_chats_chat_type_check": {
          "name": "telegram_chats_chat_type_check",
          "value": "\"telegram_chats\".\"chat_type\" IN ('private','group','supergroup','channel')"
        }
      },
      "isRLSEnabled": false
    },
    "public.campaigns": {
      "name": "campaigns",
      "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
        },
        "type": {
          "name": "type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'email'"
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'draft'"
        },
        "target_segment": {
          "name": "target_segment",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "scheduled_at": {
          "name": "scheduled_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "sent_count": {
          "name": "sent_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "is_active": {
          "name": "is_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": {
        "idx_campaigns_tenant": {
          "name": "idx_campaigns_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_campaigns_tenant_status": {
          "name": "idx_campaigns_tenant_status",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "campaigns_type_check": {
          "name": "campaigns_type_check",
          "value": "\"campaigns\".\"type\" IN ('email','sms','push')"
        },
        "campaigns_status_check": {
          "name": "campaigns_status_check",
          "value": "\"campaigns\".\"status\" IN ('draft','active','completed')"
        }
      },
      "isRLSEnabled": false
    },
    "public.email_sequence_enrollments": {
      "name": "email_sequence_enrollments",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "sequence_id": {
          "name": "sequence_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "contact_email": {
          "name": "contact_email",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "lead_id": {
          "name": "lead_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "current_step": {
          "name": "current_step",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "enrolled_at": {
          "name": "enrolled_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "next_send_at": {
          "name": "next_send_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_email_sequence_enrollments_sequence": {
          "name": "idx_email_sequence_enrollments_sequence",
          "columns": [
            {
              "expression": "sequence_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_email_sequence_enrollments_tenant": {
          "name": "idx_email_sequence_enrollments_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_email_sequence_enrollments_next_send": {
          "name": "idx_email_sequence_enrollments_next_send",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "next_send_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "email_sequence_enrollments_sequence_id_email_sequences_id_fk": {
          "name": "email_sequence_enrollments_sequence_id_email_sequences_id_fk",
          "tableFrom": "email_sequence_enrollments",
          "tableTo": "email_sequences",
          "columnsFrom": [
            "sequence_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "email_sequence_enrollments_status_check": {
          "name": "email_sequence_enrollments_status_check",
          "value": "\"email_sequence_enrollments\".\"status\" IN ('active','completed','unsubscribed')"
        }
      },
      "isRLSEnabled": false
    },
    "public.email_sequence_steps": {
      "name": "email_sequence_steps",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "sequence_id": {
          "name": "sequence_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "step_number": {
          "name": "step_number",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "delay_days": {
          "name": "delay_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "subject": {
          "name": "subject",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "body_html": {
          "name": "body_html",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_email_sequence_steps_sequence": {
          "name": "idx_email_sequence_steps_sequence",
          "columns": [
            {
              "expression": "sequence_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_email_sequence_steps_tenant": {
          "name": "idx_email_sequence_steps_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "email_sequence_steps_sequence_id_email_sequences_id_fk": {
          "name": "email_sequence_steps_sequence_id_email_sequences_id_fk",
          "tableFrom": "email_sequence_steps",
          "tableTo": "email_sequences",
          "columnsFrom": [
            "sequence_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.email_sequences": {
      "name": "email_sequences",
      "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
        },
        "trigger_type": {
          "name": "trigger_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'manual'"
        },
        "is_active": {
          "name": "is_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()"
        }
      },
      "indexes": {
        "idx_email_sequences_tenant": {
          "name": "idx_email_sequences_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "email_sequences_trigger_check": {
          "name": "email_sequences_trigger_check",
          "value": "\"email_sequences\".\"trigger_type\" IN ('manual','lead_created','proposal_sent','invoice_overdue')"
        }
      },
      "isRLSEnabled": false
    },
    "public.proposal_view_events": {
      "name": "proposal_view_events",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "proposal_id": {
          "name": "proposal_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "ip": {
          "name": "ip",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "user_agent": {
          "name": "user_agent",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "referrer": {
          "name": "referrer",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_source": {
          "name": "utm_source",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_medium": {
          "name": "utm_medium",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "utm_campaign": {
          "name": "utm_campaign",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_proposal_view_events_proposal": {
          "name": "idx_proposal_view_events_proposal",
          "columns": [
            {
              "expression": "proposal_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_proposal_view_events_tenant": {
          "name": "idx_proposal_view_events_tenant",
          "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": {
        "proposal_view_events_proposal_id_proposals_id_fk": {
          "name": "proposal_view_events_proposal_id_proposals_id_fk",
          "tableFrom": "proposal_view_events",
          "tableTo": "proposals",
          "columnsFrom": [
            "proposal_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.proposals": {
      "name": "proposals",
      "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
        },
        "lead_id": {
          "name": "lead_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "contract_id": {
          "name": "contract_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "title": {
          "name": "title",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'draft'"
        },
        "content": {
          "name": "content",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "line_items": {
          "name": "line_items",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true
        },
        "subtotal": {
          "name": "subtotal",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "discount": {
          "name": "discount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "total": {
          "name": "total",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "total_amount": {
          "name": "total_amount",
          "type": "numeric(10, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "valid_until": {
          "name": "valid_until",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "sent_at": {
          "name": "sent_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "public_token": {
          "name": "public_token",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "view_count": {
          "name": "view_count",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 0
        },
        "first_viewed_at": {
          "name": "first_viewed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "last_viewed_at": {
          "name": "last_viewed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "locale": {
          "name": "locale",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "default": "'he'"
        },
        "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_proposals_tenant": {
          "name": "idx_proposals_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_proposals_tenant_status": {
          "name": "idx_proposals_tenant_status",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_proposals_tenant_customer": {
          "name": "idx_proposals_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_proposals_public_token": {
          "name": "idx_proposals_public_token",
          "columns": [
            {
              "expression": "public_token",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "proposals_public_token_unique": {
          "name": "proposals_public_token_unique",
          "nullsNotDistinct": false,
          "columns": [
            "public_token"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "proposals_status_check": {
          "name": "proposals_status_check",
          "value": "\"proposals\".\"status\" IN ('draft','sent','viewed','accepted','rejected','expired')"
        },
        "proposals_locale_check": {
          "name": "proposals_locale_check",
          "value": "\"proposals\".\"locale\" IN ('he','en')"
        }
      },
      "isRLSEnabled": false
    },
    "public.white_label_configs": {
      "name": "white_label_configs",
      "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
        },
        "custom_domain": {
          "name": "custom_domain",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "ssl_status": {
          "name": "ssl_status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'pending'"
        },
        "brand_name": {
          "name": "brand_name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "logo_url": {
          "name": "logo_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "primary_color": {
          "name": "primary_color",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "favicon_url": {
          "name": "favicon_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "custom_css": {
          "name": "custom_css",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "api_domain": {
          "name": "api_domain",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "portal_domain": {
          "name": "portal_domain",
          "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_white_label_tenant": {
          "name": "idx_white_label_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_white_label_domain": {
          "name": "idx_white_label_domain",
          "columns": [
            {
              "expression": "custom_domain",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "white_label_configs_tenant_id_tenants_id_fk": {
          "name": "white_label_configs_tenant_id_tenants_id_fk",
          "tableFrom": "white_label_configs",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "white_label_configs_tenant_id_unique": {
          "name": "white_label_configs_tenant_id_unique",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id"
          ]
        },
        "white_label_configs_custom_domain_unique": {
          "name": "white_label_configs_custom_domain_unique",
          "nullsNotDistinct": false,
          "columns": [
            "custom_domain"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "white_label_configs_ssl_status_check": {
          "name": "white_label_configs_ssl_status_check",
          "value": "\"white_label_configs\".\"ssl_status\" IN ('pending', 'active', 'failed')"
        }
      },
      "isRLSEnabled": false
    },
    "public.recurring_expense_templates": {
      "name": "recurring_expense_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
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "amount": {
          "name": "amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "category_id": {
          "name": "category_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "vendor_name": {
          "name": "vendor_name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "interval": {
          "name": "interval",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "day_of_month": {
          "name": "day_of_month",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "next_due_at": {
          "name": "next_due_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "is_active": {
          "name": "is_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()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "recurring_expense_templates_tenant_id_tenants_id_fk": {
          "name": "recurring_expense_templates_tenant_id_tenants_id_fk",
          "tableFrom": "recurring_expense_templates",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "recurring_expense_templates_created_by_users_id_fk": {
          "name": "recurring_expense_templates_created_by_users_id_fk",
          "tableFrom": "recurring_expense_templates",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "recurring_expense_templates_interval_check": {
          "name": "recurring_expense_templates_interval_check",
          "value": "\"recurring_expense_templates\".\"interval\" IN ('daily','weekly','monthly','yearly')"
        },
        "recurring_expense_templates_day_of_month_check": {
          "name": "recurring_expense_templates_day_of_month_check",
          "value": "\"recurring_expense_templates\".\"day_of_month\" IS NULL OR (\"recurring_expense_templates\".\"day_of_month\" >= 1 AND \"recurring_expense_templates\".\"day_of_month\" <= 31)"
        },
        "recurring_expense_templates_amount_check": {
          "name": "recurring_expense_templates_amount_check",
          "value": "\"recurring_expense_templates\".\"amount\" > 0"
        }
      },
      "isRLSEnabled": false
    },
    "public.mileage_entries": {
      "name": "mileage_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": true
        },
        "date": {
          "name": "date",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "from_location": {
          "name": "from_location",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "to_location": {
          "name": "to_location",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "distance_km": {
          "name": "distance_km",
          "type": "numeric(8, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "purpose": {
          "name": "purpose",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "vehicle_id": {
          "name": "vehicle_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "is_business_trip": {
          "name": "is_business_trip",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "project_id": {
          "name": "project_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "reimbursement_amount": {
          "name": "reimbursement_amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "mileage_entries_tenant_id_tenants_id_fk": {
          "name": "mileage_entries_tenant_id_tenants_id_fk",
          "tableFrom": "mileage_entries",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "mileage_entries_user_id_users_id_fk": {
          "name": "mileage_entries_user_id_users_id_fk",
          "tableFrom": "mileage_entries",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "mileage_entries_customer_id_customers_id_fk": {
          "name": "mileage_entries_customer_id_customers_id_fk",
          "tableFrom": "mileage_entries",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "mileage_entries_project_id_projects_id_fk": {
          "name": "mileage_entries_project_id_projects_id_fk",
          "tableFrom": "mileage_entries",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "mileage_entries_distance_check": {
          "name": "mileage_entries_distance_check",
          "value": "\"mileage_entries\".\"distance_km\" > 0"
        }
      },
      "isRLSEnabled": false
    },
    "public.payment_gateway_configs": {
      "name": "payment_gateway_configs",
      "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
        },
        "gateway": {
          "name": "gateway",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "encrypted_config": {
          "name": "encrypted_config",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "test_mode": {
          "name": "test_mode",
          "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": {
        "idx_payment_gateway_configs_tenant": {
          "name": "idx_payment_gateway_configs_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "payment_gateway_configs_tenant_id_tenants_id_fk": {
          "name": "payment_gateway_configs_tenant_id_tenants_id_fk",
          "tableFrom": "payment_gateway_configs",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "payment_gateway_configs_tenant_unique": {
          "name": "payment_gateway_configs_tenant_unique",
          "nullsNotDistinct": false,
          "columns": [
            "tenant_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "payment_gateway_configs_gateway_check": {
          "name": "payment_gateway_configs_gateway_check",
          "value": "\"payment_gateway_configs\".\"gateway\" IN ('cardcom','payplus','stripe')"
        }
      },
      "isRLSEnabled": false
    },
    "public.invoice_payments": {
      "name": "invoice_payments",
      "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
        },
        "invoice_id": {
          "name": "invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "amount": {
          "name": "amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "paid_at": {
          "name": "paid_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'manual'"
        },
        "reference": {
          "name": "reference",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "recorded_by": {
          "name": "recorded_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "note": {
          "name": "note",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "receipt_id": {
          "name": "receipt_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_invoice_payments_invoice": {
          "name": "idx_invoice_payments_invoice",
          "columns": [
            {
              "expression": "invoice_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_invoice_payments_tenant": {
          "name": "idx_invoice_payments_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "paid_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "invoice_payments_tenant_id_tenants_id_fk": {
          "name": "invoice_payments_tenant_id_tenants_id_fk",
          "tableFrom": "invoice_payments",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "invoice_payments_invoice_id_invoices_id_fk": {
          "name": "invoice_payments_invoice_id_invoices_id_fk",
          "tableFrom": "invoice_payments",
          "tableTo": "invoices",
          "columnsFrom": [
            "invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "invoice_payments_recorded_by_users_id_fk": {
          "name": "invoice_payments_recorded_by_users_id_fk",
          "tableFrom": "invoice_payments",
          "tableTo": "users",
          "columnsFrom": [
            "recorded_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "invoice_payments_amount_check": {
          "name": "invoice_payments_amount_check",
          "value": "\"invoice_payments\".\"amount\" > 0"
        },
        "invoice_payments_source_check": {
          "name": "invoice_payments_source_check",
          "value": "\"invoice_payments\".\"source\" IN ('manual','gateway','bank_transfer','auto_billing')"
        }
      },
      "isRLSEnabled": false
    },
    "public.portal_files": {
      "name": "portal_files",
      "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
        },
        "uploaded_by": {
          "name": "uploaded_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "uploaded_by_portal_user": {
          "name": "uploaded_by_portal_user",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "r2_key": {
          "name": "r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "filename": {
          "name": "filename",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "file_size_bytes": {
          "name": "file_size_bytes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "mime_type": {
          "name": "mime_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "visible_to_portal": {
          "name": "visible_to_portal",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_portal_files_customer": {
          "name": "idx_portal_files_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "portal_files_tenant_id_tenants_id_fk": {
          "name": "portal_files_tenant_id_tenants_id_fk",
          "tableFrom": "portal_files",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "portal_files_customer_id_customers_id_fk": {
          "name": "portal_files_customer_id_customers_id_fk",
          "tableFrom": "portal_files",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "portal_files_project_id_projects_id_fk": {
          "name": "portal_files_project_id_projects_id_fk",
          "tableFrom": "portal_files",
          "tableTo": "projects",
          "columnsFrom": [
            "project_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "portal_files_uploaded_by_users_id_fk": {
          "name": "portal_files_uploaded_by_users_id_fk",
          "tableFrom": "portal_files",
          "tableTo": "users",
          "columnsFrom": [
            "uploaded_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "portal_files_r2_key_unique": {
          "name": "portal_files_r2_key_unique",
          "nullsNotDistinct": false,
          "columns": [
            "r2_key"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.proposal_templates": {
      "name": "proposal_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
        },
        "content": {
          "name": "content",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "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_proposal_templates_tenant": {
          "name": "idx_proposal_templates_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "proposal_templates_tenant_id_tenants_id_fk": {
          "name": "proposal_templates_tenant_id_tenants_id_fk",
          "tableFrom": "proposal_templates",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "proposal_templates_created_by_users_id_fk": {
          "name": "proposal_templates_created_by_users_id_fk",
          "tableFrom": "proposal_templates",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.tenant_api_keys": {
      "name": "tenant_api_keys",
      "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
        },
        "key_prefix": {
          "name": "key_prefix",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "key_hash": {
          "name": "key_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "scopes": {
          "name": "scopes",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'[]'::jsonb"
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "last_used_at": {
          "name": "last_used_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "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()"
        },
        "monthly_quota": {
          "name": "monthly_quota",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_tenant_api_keys_tenant": {
          "name": "idx_tenant_api_keys_tenant",
          "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_tenant_api_keys_hash": {
          "name": "idx_tenant_api_keys_hash",
          "columns": [
            {
              "expression": "key_hash",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "tenant_api_keys_tenant_id_tenants_id_fk": {
          "name": "tenant_api_keys_tenant_id_tenants_id_fk",
          "tableFrom": "tenant_api_keys",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "tenant_api_keys_created_by_users_id_fk": {
          "name": "tenant_api_keys_created_by_users_id_fk",
          "tableFrom": "tenant_api_keys",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "tenant_api_keys_key_hash_unique": {
          "name": "tenant_api_keys_key_hash_unique",
          "nullsNotDistinct": false,
          "columns": [
            "key_hash"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "tenant_api_keys_monthly_quota_nonneg": {
          "name": "tenant_api_keys_monthly_quota_nonneg",
          "value": "\"tenant_api_keys\".\"monthly_quota\" IS NULL OR \"tenant_api_keys\".\"monthly_quota\" >= 0"
        }
      },
      "isRLSEnabled": false
    },
    "public.webhook_deliveries": {
      "name": "webhook_deliveries",
      "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
        },
        "endpoint_id": {
          "name": "endpoint_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "event_type": {
          "name": "event_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'pending'"
        },
        "request_body": {
          "name": "request_body",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "response_status": {
          "name": "response_status",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "response_body": {
          "name": "response_body",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "latency_ms": {
          "name": "latency_ms",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "attempt": {
          "name": "attempt",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 1
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_webhook_deliveries_tenant": {
          "name": "idx_webhook_deliveries_tenant",
          "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": {}
        }
      },
      "foreignKeys": {
        "webhook_deliveries_tenant_id_tenants_id_fk": {
          "name": "webhook_deliveries_tenant_id_tenants_id_fk",
          "tableFrom": "webhook_deliveries",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "webhook_deliveries_endpoint_id_webhook_endpoints_id_fk": {
          "name": "webhook_deliveries_endpoint_id_webhook_endpoints_id_fk",
          "tableFrom": "webhook_deliveries",
          "tableTo": "webhook_endpoints",
          "columnsFrom": [
            "endpoint_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "webhook_deliveries_status_check": {
          "name": "webhook_deliveries_status_check",
          "value": "\"webhook_deliveries\".\"status\" IN ('pending','delivered','failed','test')"
        }
      },
      "isRLSEnabled": false
    },
    "public.webhook_delivery_log": {
      "name": "webhook_delivery_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": false
        },
        "endpoint_id": {
          "name": "endpoint_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "source": {
          "name": "source",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "source_ip": {
          "name": "source_ip",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "event_type": {
          "name": "event_type",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "signature_valid": {
          "name": "signature_valid",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "raw_body": {
          "name": "raw_body",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_wdl_tenant_created": {
          "name": "idx_wdl_tenant_created",
          "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": {}
        }
      },
      "foreignKeys": {
        "webhook_delivery_log_tenant_id_tenants_id_fk": {
          "name": "webhook_delivery_log_tenant_id_tenants_id_fk",
          "tableFrom": "webhook_delivery_log",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "webhook_delivery_log_endpoint_id_webhook_endpoints_id_fk": {
          "name": "webhook_delivery_log_endpoint_id_webhook_endpoints_id_fk",
          "tableFrom": "webhook_delivery_log",
          "tableTo": "webhook_endpoints",
          "columnsFrom": [
            "endpoint_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "webhook_delivery_log_status_check": {
          "name": "webhook_delivery_log_status_check",
          "value": "\"webhook_delivery_log\".\"status\" IN ('accepted','rejected_invalid_signature','rejected_rate_limited')"
        }
      },
      "isRLSEnabled": false
    },
    "public.webhook_endpoints": {
      "name": "webhook_endpoints",
      "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
        },
        "url": {
          "name": "url",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "events": {
          "name": "events",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'[]'::jsonb"
        },
        "secret_encrypted": {
          "name": "secret_encrypted",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "description": {
          "name": "description",
          "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_webhook_endpoints_tenant": {
          "name": "idx_webhook_endpoints_tenant",
          "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": {}
        }
      },
      "foreignKeys": {
        "webhook_endpoints_tenant_id_tenants_id_fk": {
          "name": "webhook_endpoints_tenant_id_tenants_id_fk",
          "tableFrom": "webhook_endpoints",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.tenant_export_jobs": {
      "name": "tenant_export_jobs",
      "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
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'PENDING'"
        },
        "r2_key": {
          "name": "r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "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()"
        },
        "completed_at": {
          "name": "completed_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "tenant_export_jobs_status_check": {
          "name": "tenant_export_jobs_status_check",
          "value": "\"tenant_export_jobs\".\"status\" IN ('PENDING', 'PROCESSING', 'DONE', 'FAILED')"
        }
      },
      "isRLSEnabled": false
    },
    "public.tenant_email_templates": {
      "name": "tenant_email_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
        },
        "template_key": {
          "name": "template_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "subject": {
          "name": "subject",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "body_html": {
          "name": "body_html",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "body_text": {
          "name": "body_text",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "is_active": {
          "name": "is_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": {
        "idx_tenant_email_templates_key": {
          "name": "idx_tenant_email_templates_key",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "template_key",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": true,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "tenant_email_templates_tenant_id_tenants_id_fk": {
          "name": "tenant_email_templates_tenant_id_tenants_id_fk",
          "tableFrom": "tenant_email_templates",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.vendors": {
      "name": "vendors",
      "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
        },
        "tax_id": {
          "name": "tax_id",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "withholding_rate": {
          "name": "withholding_rate",
          "type": "numeric(5, 4)",
          "primaryKey": false,
          "notNull": false
        },
        "withholding_cert_number": {
          "name": "withholding_cert_number",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "withholding_cert_expiry": {
          "name": "withholding_cert_expiry",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "withholding_cert_r2_key": {
          "name": "withholding_cert_r2_key",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "default_category": {
          "name": "default_category",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "default_vat_deductible": {
          "name": "default_vat_deductible",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        },
        "payment_terms_days": {
          "name": "payment_terms_days",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 30
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "phone": {
          "name": "phone",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "address": {
          "name": "address",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "is_archived": {
          "name": "is_archived",
          "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_vendors_tenant": {
          "name": "idx_vendors_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "is_archived",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "name",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "vendors_tenant_id_tenants_id_fk": {
          "name": "vendors_tenant_id_tenants_id_fk",
          "tableFrom": "vendors",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.oauth_access_tokens": {
      "name": "oauth_access_tokens",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "token_hash": {
          "name": "token_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "oauth_client_id": {
          "name": "oauth_client_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "scope": {
          "name": "scope",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "family_id": {
          "name": "family_id",
          "type": "uuid",
          "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": {
        "idx_oauth_at_hash": {
          "name": "idx_oauth_at_hash",
          "columns": [
            {
              "expression": "token_hash",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_oauth_at_family": {
          "name": "idx_oauth_at_family",
          "columns": [
            {
              "expression": "family_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "oauth_access_tokens_oauth_client_id_oauth_clients_id_fk": {
          "name": "oauth_access_tokens_oauth_client_id_oauth_clients_id_fk",
          "tableFrom": "oauth_access_tokens",
          "tableTo": "oauth_clients",
          "columnsFrom": [
            "oauth_client_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "oauth_access_tokens_tenant_id_tenants_id_fk": {
          "name": "oauth_access_tokens_tenant_id_tenants_id_fk",
          "tableFrom": "oauth_access_tokens",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "oauth_access_tokens_user_id_users_id_fk": {
          "name": "oauth_access_tokens_user_id_users_id_fk",
          "tableFrom": "oauth_access_tokens",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "oauth_access_tokens_token_hash_unique": {
          "name": "oauth_access_tokens_token_hash_unique",
          "nullsNotDistinct": false,
          "columns": [
            "token_hash"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.oauth_authorization_codes": {
      "name": "oauth_authorization_codes",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "code": {
          "name": "code",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "oauth_client_id": {
          "name": "oauth_client_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "redirect_uri": {
          "name": "redirect_uri",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "scope": {
          "name": "scope",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "code_challenge": {
          "name": "code_challenge",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "code_challenge_method": {
          "name": "code_challenge_method",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "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_oauth_codes_code": {
          "name": "idx_oauth_codes_code",
          "columns": [
            {
              "expression": "code",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "oauth_authorization_codes_oauth_client_id_oauth_clients_id_fk": {
          "name": "oauth_authorization_codes_oauth_client_id_oauth_clients_id_fk",
          "tableFrom": "oauth_authorization_codes",
          "tableTo": "oauth_clients",
          "columnsFrom": [
            "oauth_client_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "oauth_authorization_codes_tenant_id_tenants_id_fk": {
          "name": "oauth_authorization_codes_tenant_id_tenants_id_fk",
          "tableFrom": "oauth_authorization_codes",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "oauth_authorization_codes_user_id_users_id_fk": {
          "name": "oauth_authorization_codes_user_id_users_id_fk",
          "tableFrom": "oauth_authorization_codes",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "oauth_authorization_codes_code_unique": {
          "name": "oauth_authorization_codes_code_unique",
          "nullsNotDistinct": false,
          "columns": [
            "code"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {
        "oauth_authorization_codes_ccm_check": {
          "name": "oauth_authorization_codes_ccm_check",
          "value": "\"oauth_authorization_codes\".\"code_challenge_method\" IS NULL OR \"oauth_authorization_codes\".\"code_challenge_method\" IN ('S256')"
        }
      },
      "isRLSEnabled": false
    },
    "public.oauth_clients": {
      "name": "oauth_clients",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "client_id": {
          "name": "client_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "client_secret_hash": {
          "name": "client_secret_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "redirect_uris": {
          "name": "redirect_uris",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'[]'::jsonb"
        },
        "scopes": {
          "name": "scopes",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'[]'::jsonb"
        },
        "is_first_party": {
          "name": "is_first_party",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "logo_url": {
          "name": "logo_url",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_oauth_clients_client_id": {
          "name": "idx_oauth_clients_client_id",
          "columns": [
            {
              "expression": "client_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "oauth_clients_client_id_unique": {
          "name": "oauth_clients_client_id_unique",
          "nullsNotDistinct": false,
          "columns": [
            "client_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.oauth_connections": {
      "name": "oauth_connections",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "oauth_client_id": {
          "name": "oauth_client_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "scope": {
          "name": "scope",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "flagged_at": {
          "name": "flagged_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "last_used_at": {
          "name": "last_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_oauth_connections_tenant_user": {
          "name": "idx_oauth_connections_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": {
        "oauth_connections_oauth_client_id_oauth_clients_id_fk": {
          "name": "oauth_connections_oauth_client_id_oauth_clients_id_fk",
          "tableFrom": "oauth_connections",
          "tableTo": "oauth_clients",
          "columnsFrom": [
            "oauth_client_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "oauth_connections_tenant_id_tenants_id_fk": {
          "name": "oauth_connections_tenant_id_tenants_id_fk",
          "tableFrom": "oauth_connections",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "oauth_connections_user_id_users_id_fk": {
          "name": "oauth_connections_user_id_users_id_fk",
          "tableFrom": "oauth_connections",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "oauth_connections_client_tenant_user_key": {
          "name": "oauth_connections_client_tenant_user_key",
          "nullsNotDistinct": false,
          "columns": [
            "oauth_client_id",
            "tenant_id",
            "user_id"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.oauth_refresh_tokens": {
      "name": "oauth_refresh_tokens",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "token_hash": {
          "name": "token_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "oauth_client_id": {
          "name": "oauth_client_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "scope": {
          "name": "scope",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "family_id": {
          "name": "family_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "rotated_to_id": {
          "name": "rotated_to_id",
          "type": "uuid",
          "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_oauth_rt_hash": {
          "name": "idx_oauth_rt_hash",
          "columns": [
            {
              "expression": "token_hash",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_oauth_rt_family": {
          "name": "idx_oauth_rt_family",
          "columns": [
            {
              "expression": "family_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "oauth_refresh_tokens_oauth_client_id_oauth_clients_id_fk": {
          "name": "oauth_refresh_tokens_oauth_client_id_oauth_clients_id_fk",
          "tableFrom": "oauth_refresh_tokens",
          "tableTo": "oauth_clients",
          "columnsFrom": [
            "oauth_client_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "oauth_refresh_tokens_tenant_id_tenants_id_fk": {
          "name": "oauth_refresh_tokens_tenant_id_tenants_id_fk",
          "tableFrom": "oauth_refresh_tokens",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "oauth_refresh_tokens_user_id_users_id_fk": {
          "name": "oauth_refresh_tokens_user_id_users_id_fk",
          "tableFrom": "oauth_refresh_tokens",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "oauth_refresh_tokens_rotated_to_id_oauth_refresh_tokens_id_fk": {
          "name": "oauth_refresh_tokens_rotated_to_id_oauth_refresh_tokens_id_fk",
          "tableFrom": "oauth_refresh_tokens",
          "tableTo": "oauth_refresh_tokens",
          "columnsFrom": [
            "rotated_to_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "oauth_refresh_tokens_token_hash_unique": {
          "name": "oauth_refresh_tokens_token_hash_unique",
          "nullsNotDistinct": false,
          "columns": [
            "token_hash"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.unmatched_payments": {
      "name": "unmatched_payments",
      "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": {
          "name": "amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "paid_at": {
          "name": "paid_at",
          "type": "date",
          "primaryKey": false,
          "notNull": true
        },
        "payment_method": {
          "name": "payment_method",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'bank_transfer'"
        },
        "reference": {
          "name": "reference",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "payer_name": {
          "name": "payer_name",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "matched_to_invoice_id": {
          "name": "matched_to_invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "matched_at": {
          "name": "matched_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "matched_by": {
          "name": "matched_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_unmatched_payments_tenant": {
          "name": "idx_unmatched_payments_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "paid_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "unmatched_payments_tenant_id_tenants_id_fk": {
          "name": "unmatched_payments_tenant_id_tenants_id_fk",
          "tableFrom": "unmatched_payments",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "unmatched_payments_matched_to_invoice_id_invoices_id_fk": {
          "name": "unmatched_payments_matched_to_invoice_id_invoices_id_fk",
          "tableFrom": "unmatched_payments",
          "tableTo": "invoices",
          "columnsFrom": [
            "matched_to_invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "unmatched_payments_matched_by_users_id_fk": {
          "name": "unmatched_payments_matched_by_users_id_fk",
          "tableFrom": "unmatched_payments",
          "tableTo": "users",
          "columnsFrom": [
            "matched_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "unmatched_payments_amount_check": {
          "name": "unmatched_payments_amount_check",
          "value": "\"unmatched_payments\".\"amount\" > 0"
        },
        "unmatched_payments_currency_check": {
          "name": "unmatched_payments_currency_check",
          "value": "\"unmatched_payments\".\"currency\" IN ('ILS','USD','EUR')"
        },
        "unmatched_payments_payment_method_check": {
          "name": "unmatched_payments_payment_method_check",
          "value": "\"unmatched_payments\".\"payment_method\" IN ('bank_transfer','credit_card','check','cash','other')"
        }
      },
      "isRLSEnabled": false
    },
    "public.receipt_payment_lines": {
      "name": "receipt_payment_lines",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "receipt_id": {
          "name": "receipt_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "method": {
          "name": "method",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "amount": {
          "name": "amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "cheque_number": {
          "name": "cheque_number",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "cheque_bank": {
          "name": "cheque_bank",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "cheque_branch": {
          "name": "cheque_branch",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "cheque_account": {
          "name": "cheque_account",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "cheque_due_date": {
          "name": "cheque_due_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "card_last_four": {
          "name": "card_last_four",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "card_brand": {
          "name": "card_brand",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "reference": {
          "name": "reference",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "invoice_payment_id": {
          "name": "invoice_payment_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {},
      "foreignKeys": {
        "receipt_payment_lines_receipt_id_receipts_id_fk": {
          "name": "receipt_payment_lines_receipt_id_receipts_id_fk",
          "tableFrom": "receipt_payment_lines",
          "tableTo": "receipts",
          "columnsFrom": [
            "receipt_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "receipt_payment_lines_invoice_payment_id_invoice_payments_id_fk": {
          "name": "receipt_payment_lines_invoice_payment_id_invoice_payments_id_fk",
          "tableFrom": "receipt_payment_lines",
          "tableTo": "invoice_payments",
          "columnsFrom": [
            "invoice_payment_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "receipt_payment_lines_method_check": {
          "name": "receipt_payment_lines_method_check",
          "value": "\"receipt_payment_lines\".\"method\" IN ('cash','bank_transfer','cheque','credit_card','other')"
        }
      },
      "isRLSEnabled": false
    },
    "public.receipt_sequences": {
      "name": "receipt_sequences",
      "schema": "",
      "columns": {
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "doc_type": {
          "name": "doc_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "prefix": {
          "name": "prefix",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "''"
        },
        "next_number": {
          "name": "next_number",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "default": 1
        }
      },
      "indexes": {},
      "foreignKeys": {
        "receipt_sequences_tenant_id_tenants_id_fk": {
          "name": "receipt_sequences_tenant_id_tenants_id_fk",
          "tableFrom": "receipt_sequences",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {
        "receipt_sequences_tenant_id_doc_type_pk": {
          "name": "receipt_sequences_tenant_id_doc_type_pk",
          "columns": [
            "tenant_id",
            "doc_type"
          ]
        }
      },
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "receipt_sequences_doc_type_check": {
          "name": "receipt_sequences_doc_type_check",
          "value": "\"receipt_sequences\".\"doc_type\" IN ('receipt','invoice_receipt')"
        }
      },
      "isRLSEnabled": false
    },
    "public.receipts": {
      "name": "receipts",
      "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
        },
        "doc_type": {
          "name": "doc_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "receipt_number": {
          "name": "receipt_number",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'DRAFT'"
        },
        "invoice_id": {
          "name": "invoice_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "currency": {
          "name": "currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "amount": {
          "name": "amount",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": true
        },
        "ils_exchange_rate": {
          "name": "ils_exchange_rate",
          "type": "numeric(10, 4)",
          "primaryKey": false,
          "notNull": false
        },
        "amount_ils": {
          "name": "amount_ils",
          "type": "numeric(12, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "issued_at": {
          "name": "issued_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "issued_by": {
          "name": "issued_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "pdf_r2_key": {
          "name": "pdf_r2_key",
          "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
        },
        "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_receipts_tenant": {
          "name": "idx_receipts_tenant",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "issued_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_receipts_invoice": {
          "name": "idx_receipts_invoice",
          "columns": [
            {
              "expression": "invoice_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "receipts_tenant_id_tenants_id_fk": {
          "name": "receipts_tenant_id_tenants_id_fk",
          "tableFrom": "receipts",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "receipts_customer_id_customers_id_fk": {
          "name": "receipts_customer_id_customers_id_fk",
          "tableFrom": "receipts",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "receipts_invoice_id_invoices_id_fk": {
          "name": "receipts_invoice_id_invoices_id_fk",
          "tableFrom": "receipts",
          "tableTo": "invoices",
          "columnsFrom": [
            "invoice_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "receipts_issued_by_users_id_fk": {
          "name": "receipts_issued_by_users_id_fk",
          "tableFrom": "receipts",
          "tableTo": "users",
          "columnsFrom": [
            "issued_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        },
        "receipts_voided_by_users_id_fk": {
          "name": "receipts_voided_by_users_id_fk",
          "tableFrom": "receipts",
          "tableTo": "users",
          "columnsFrom": [
            "voided_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "receipts_doc_type_check": {
          "name": "receipts_doc_type_check",
          "value": "\"receipts\".\"doc_type\" IN ('receipt','invoice_receipt')"
        },
        "receipts_status_check": {
          "name": "receipts_status_check",
          "value": "\"receipts\".\"status\" IN ('DRAFT','ISSUED','VOIDED')"
        }
      },
      "isRLSEnabled": false
    }
  },
  "enums": {},
  "schemas": {},
  "sequences": {},
  "roles": {},
  "policies": {},
  "views": {},
  "_meta": {
    "columns": {},
    "schemas": {},
    "tables": {}
  }
}