{
  "id": "d72b18a9-855f-453e-bcc7-942b91b79655",
  "prevId": "c5ad70f2-e431-40a1-b509-0fea18eb0c22",
  "version": "7",
  "dialect": "postgresql",
  "tables": {
    "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'"
        },
        "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_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.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.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')"
        }
      },
      "isRLSEnabled": false
    },
    "public.notifications": {
      "name": "notifications",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "type": {
          "name": "type",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "title_key": {
          "name": "title_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "body_key": {
          "name": "body_key",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "params": {
          "name": "params",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": true,
          "default": "'{}'::jsonb"
        },
        "entity_type": {
          "name": "entity_type",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "entity_id": {
          "name": "entity_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "read_at": {
          "name": "read_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "notifications_inbox": {
          "name": "notifications_inbox",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "user_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "read_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "notifications_tenant_id_tenants_id_fk": {
          "name": "notifications_tenant_id_tenants_id_fk",
          "tableFrom": "notifications",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "notifications_user_id_users_id_fk": {
          "name": "notifications_user_id_users_id_fk",
          "tableFrom": "notifications",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.push_subscriptions": {
      "name": "push_subscriptions",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "endpoint": {
          "name": "endpoint",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "p256dh": {
          "name": "p256dh",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "auth": {
          "name": "auth",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "user_agent": {
          "name": "user_agent",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "last_used_at": {
          "name": "last_used_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {
        "idx_push_subs_user": {
          "name": "idx_push_subs_user",
          "columns": [
            {
              "expression": "user_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "push_subscriptions_user_id_users_id_fk": {
          "name": "push_subscriptions_user_id_users_id_fk",
          "tableFrom": "push_subscriptions",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "push_subscriptions_tenant_id_tenants_id_fk": {
          "name": "push_subscriptions_tenant_id_tenants_id_fk",
          "tableFrom": "push_subscriptions",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "push_subscriptions_endpoint_unique": {
          "name": "push_subscriptions_endpoint_unique",
          "nullsNotDistinct": false,
          "columns": [
            "endpoint"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.customer_communications": {
      "name": "customer_communications",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "direction": {
          "name": "direction",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "channel": {
          "name": "channel",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "subject": {
          "name": "subject",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "body": {
          "name": "body",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "from_address": {
          "name": "from_address",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "to_address": {
          "name": "to_address",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "related_id": {
          "name": "related_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "related_type": {
          "name": "related_type",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "sent_at": {
          "name": "sent_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "created_by": {
          "name": "created_by",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_customer_comms_customer": {
          "name": "idx_customer_comms_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "sent_at",
              "isExpression": false,
              "asc": false,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "customer_communications_tenant_id_tenants_id_fk": {
          "name": "customer_communications_tenant_id_tenants_id_fk",
          "tableFrom": "customer_communications",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_communications_customer_id_customers_id_fk": {
          "name": "customer_communications_customer_id_customers_id_fk",
          "tableFrom": "customer_communications",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_communications_created_by_users_id_fk": {
          "name": "customer_communications_created_by_users_id_fk",
          "tableFrom": "customer_communications",
          "tableTo": "users",
          "columnsFrom": [
            "created_by"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "customer_communications_direction_check": {
          "name": "customer_communications_direction_check",
          "value": "\"customer_communications\".\"direction\" IN ('outbound', 'inbound', 'internal')"
        },
        "customer_communications_channel_check": {
          "name": "customer_communications_channel_check",
          "value": "\"customer_communications\".\"channel\" IN ('email', 'telegram', 'ticket', 'note', 'system')"
        }
      },
      "isRLSEnabled": false
    },
    "public.customer_contacts": {
      "name": "customer_contacts",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "phone": {
          "name": "phone",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "role": {
          "name": "role",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "is_primary": {
          "name": "is_primary",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_customer_contacts_customer": {
          "name": "idx_customer_contacts_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "customer_contacts_customer_id_customers_id_fk": {
          "name": "customer_contacts_customer_id_customers_id_fk",
          "tableFrom": "customer_contacts",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_contacts_tenant_id_tenants_id_fk": {
          "name": "customer_contacts_tenant_id_tenants_id_fk",
          "tableFrom": "customer_contacts",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.customer_portal_users": {
      "name": "customer_portal_users",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "customer_id": {
          "name": "customer_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "contact_id": {
          "name": "contact_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "portal_role": {
          "name": "portal_role",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'customer_viewer'"
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "invited_at": {
          "name": "invited_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "accepted_at": {
          "name": "accepted_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_customer_portal_users_customer": {
          "name": "idx_customer_portal_users_customer",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "customer_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "customer_portal_users_customer_id_customers_id_fk": {
          "name": "customer_portal_users_customer_id_customers_id_fk",
          "tableFrom": "customer_portal_users",
          "tableTo": "customers",
          "columnsFrom": [
            "customer_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_portal_users_tenant_id_tenants_id_fk": {
          "name": "customer_portal_users_tenant_id_tenants_id_fk",
          "tableFrom": "customer_portal_users",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_portal_users_contact_id_customer_contacts_id_fk": {
          "name": "customer_portal_users_contact_id_customer_contacts_id_fk",
          "tableFrom": "customer_portal_users",
          "tableTo": "customer_contacts",
          "columnsFrom": [
            "contact_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        },
        "customer_portal_users_user_id_users_id_fk": {
          "name": "customer_portal_users_user_id_users_id_fk",
          "tableFrom": "customer_portal_users",
          "tableTo": "users",
          "columnsFrom": [
            "user_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "customer_portal_users_status_check": {
          "name": "customer_portal_users_status_check",
          "value": "\"customer_portal_users\".\"status\" IN ('active', 'frozen')"
        }
      },
      "isRLSEnabled": false
    },
    "public.customers": {
      "name": "customers",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "company": {
          "name": "company",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "phone": {
          "name": "phone",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "address": {
          "name": "address",
          "type": "jsonb",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'active'"
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp with time zone",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {
        "idx_customers_tenant_status": {
          "name": "idx_customers_tenant_status",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "status",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "created_at",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        },
        "idx_customers_tenant_name": {
          "name": "idx_customers_tenant_name",
          "columns": [
            {
              "expression": "tenant_id",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            },
            {
              "expression": "name",
              "isExpression": false,
              "asc": true,
              "nulls": "last"
            }
          ],
          "isUnique": false,
          "concurrently": false,
          "method": "btree",
          "with": {}
        }
      },
      "foreignKeys": {
        "customers_tenant_id_tenants_id_fk": {
          "name": "customers_tenant_id_tenants_id_fk",
          "tableFrom": "customers",
          "tableTo": "tenants",
          "columnsFrom": [
            "tenant_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {
        "customers_status_check": {
          "name": "customers_status_check",
          "value": "\"customers\".\"status\" IN ('active', 'archived')"
        }
      },
      "isRLSEnabled": false
    },
    "public.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
        }
      },
      "indexes": {
        "users_email_idx": {
          "name": "users_email_idx",
          "columns": [
            {
              "expression": "email",
              "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
        },
        "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": {},
      "isRLSEnabled": false
    },
    "public.tenants": {
      "name": "tenants",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "slug": {
          "name": "slug",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "tier": {
          "name": "tier",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'freelancer'"
        },
        "require_approval": {
          "name": "require_approval",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "enforce_2fa": {
          "name": "enforce_2fa",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "disable_2fa_remember_device": {
          "name": "disable_2fa_remember_device",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "country_code": {
          "name": "country_code",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'IL'"
        },
        "default_currency": {
          "name": "default_currency",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'ILS'"
        },
        "default_timezone": {
          "name": "default_timezone",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "'Asia/Jerusalem'"
        },
        "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
    }
  },
  "enums": {},
  "schemas": {},
  "sequences": {},
  "roles": {},
  "policies": {},
  "views": {},
  "_meta": {
    "columns": {},
    "schemas": {},
    "tables": {}
  }
}