{
	"id": "33b8ecab-5cf5-4268-b96a-d6a0d1e0eed5",
	"prevId": "f87e0185-b4db-42b9-9ed5-cd44aef1220e",
	"version": "7",
	"dialect": "postgresql",
	"tables": {
		"public.admin_roles": {
			"name": "admin_roles",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"name": {
					"name": "name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"permissions": {
					"name": "permissions",
					"type": "text[]",
					"primaryKey": false,
					"notNull": true,
					"default": "'{}'::text[]"
				},
				"is_system_role": {
					"name": "is_system_role",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"admin_roles_name_unique": {
					"name": "admin_roles_name_unique",
					"nullsNotDistinct": false,
					"columns": [
						"name"
					]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.admin_users": {
			"name": "admin_users",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"email": {
					"name": "email",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"password_hash": {
					"name": "password_hash",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"totp_secret": {
					"name": "totp_secret",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'active'"
				},
				"role_id": {
					"name": "role_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"admin_users_email_unique": {
					"name": "admin_users_email_unique",
					"nullsNotDistinct": false,
					"columns": [
						"email"
					]
				}
			},
			"policies": {},
			"checkConstraints": {
				"admin_users_status_check": {
					"name": "admin_users_status_check",
					"value": "\"admin_users\".\"status\" IN ('active', 'suspended')"
				}
			},
			"isRLSEnabled": false
		},
		"public.ai_chat_messages": {
			"name": "ai_chat_messages",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"session_id": {
					"name": "session_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"role": {
					"name": "role",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"content": {
					"name": "content",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"tokens_used": {
					"name": "tokens_used",
					"type": "integer",
					"primaryKey": false,
					"notNull": false
				},
				"metadata": {
					"name": "metadata",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'{}'::jsonb"
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"ai_chat_messages_session": {
					"name": "ai_chat_messages_session",
					"columns": [
						{
							"expression": "session_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "created_at",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"ai_chat_messages_session_id_ai_chat_sessions_id_fk": {
					"name": "ai_chat_messages_session_id_ai_chat_sessions_id_fk",
					"tableFrom": "ai_chat_messages",
					"tableTo": "ai_chat_sessions",
					"columnsFrom": [
						"session_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"ai_chat_messages_tenant_id_tenants_id_fk": {
					"name": "ai_chat_messages_tenant_id_tenants_id_fk",
					"tableFrom": "ai_chat_messages",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"ai_chat_messages_role_check": {
					"name": "ai_chat_messages_role_check",
					"value": "\"ai_chat_messages\".\"role\" IN ('user', 'assistant', 'system')"
				}
			},
			"isRLSEnabled": false
		},
		"public.ai_chat_sessions": {
			"name": "ai_chat_sessions",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"title": {
					"name": "title",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"channel": {
					"name": "channel",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'in_app'"
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"ai_chat_sessions_user": {
					"name": "ai_chat_sessions_user",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "user_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "created_at",
							"isExpression": false,
							"asc": false,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"ai_chat_sessions_tenant_id_tenants_id_fk": {
					"name": "ai_chat_sessions_tenant_id_tenants_id_fk",
					"tableFrom": "ai_chat_sessions",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"ai_chat_sessions_user_id_users_id_fk": {
					"name": "ai_chat_sessions_user_id_users_id_fk",
					"tableFrom": "ai_chat_sessions",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"ai_chat_sessions_channel_check": {
					"name": "ai_chat_sessions_channel_check",
					"value": "\"ai_chat_sessions\".\"channel\" IN ('in_app', 'telegram', 'whatsapp')"
				},
				"ai_chat_sessions_user_id_in_app_check": {
					"name": "ai_chat_sessions_user_id_in_app_check",
					"value": "\"ai_chat_sessions\".\"channel\" <> 'in_app' OR \"ai_chat_sessions\".\"user_id\" IS NOT NULL"
				}
			},
			"isRLSEnabled": false
		},
		"public.ai_credit_purchases": {
			"name": "ai_credit_purchases",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"amount_usd": {
					"name": "amount_usd",
					"type": "numeric(10, 2)",
					"primaryKey": false,
					"notNull": true
				},
				"tokens_granted": {
					"name": "tokens_granted",
					"type": "bigint",
					"primaryKey": false,
					"notNull": true
				},
				"tokens_remaining": {
					"name": "tokens_remaining",
					"type": "bigint",
					"primaryKey": false,
					"notNull": true
				},
				"payment_reference": {
					"name": "payment_reference",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"expires_at": {
					"name": "expires_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {
				"ai_credit_purchases_tenant_id_tenants_id_fk": {
					"name": "ai_credit_purchases_tenant_id_tenants_id_fk",
					"tableFrom": "ai_credit_purchases",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.ai_global_config": {
			"name": "ai_global_config",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"main_model_id": {
					"name": "main_model_id",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"backup_model_ids": {
					"name": "backup_model_ids",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'[]'::jsonb"
				},
				"use_case_prompts": {
					"name": "use_case_prompts",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'{}'::jsonb"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_by": {
					"name": "updated_by",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				}
			},
			"indexes": {
				"ai_global_config_singleton": {
					"name": "ai_global_config_singleton",
					"columns": [
						{
							"expression": "(true)",
							"asc": true,
							"isExpression": true,
							"nulls": "last"
						}
					],
					"isUnique": true,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"ai_global_config_main_model_id_ai_model_pricing_model_id_fk": {
					"name": "ai_global_config_main_model_id_ai_model_pricing_model_id_fk",
					"tableFrom": "ai_global_config",
					"tableTo": "ai_model_pricing",
					"columnsFrom": [
						"main_model_id"
					],
					"columnsTo": [
						"model_id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				},
				"ai_global_config_updated_by_admin_users_id_fk": {
					"name": "ai_global_config_updated_by_admin_users_id_fk",
					"tableFrom": "ai_global_config",
					"tableTo": "admin_users",
					"columnsFrom": [
						"updated_by"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.ai_model_pricing": {
			"name": "ai_model_pricing",
			"schema": "",
			"columns": {
				"model_id": {
					"name": "model_id",
					"type": "text",
					"primaryKey": true,
					"notNull": true
				},
				"provider": {
					"name": "provider",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"label": {
					"name": "label",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"input_cost_per_1m": {
					"name": "input_cost_per_1m",
					"type": "numeric(12, 6)",
					"primaryKey": false,
					"notNull": true
				},
				"output_cost_per_1m": {
					"name": "output_cost_per_1m",
					"type": "numeric(12, 6)",
					"primaryKey": false,
					"notNull": true
				},
				"is_vision_capable": {
					"name": "is_vision_capable",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"active": {
					"name": "active",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"ai_model_pricing_provider_check": {
					"name": "ai_model_pricing_provider_check",
					"value": "\"ai_model_pricing\".\"provider\" IN ('anthropic', 'openai', 'google')"
				}
			},
			"isRLSEnabled": false
		},
		"public.ai_tenant_settings": {
			"name": "ai_tenant_settings",
			"schema": "",
			"columns": {
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true
				},
				"personality_prompt": {
					"name": "personality_prompt",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"use_case_overrides": {
					"name": "use_case_overrides",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'{}'::jsonb"
				},
				"extra_usage_enabled": {
					"name": "extra_usage_enabled",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"extra_spend_limit_usd": {
					"name": "extra_spend_limit_usd",
					"type": "numeric(10, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"auto_reload_enabled": {
					"name": "auto_reload_enabled",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"auto_reload_amount_usd": {
					"name": "auto_reload_amount_usd",
					"type": "numeric(10, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {
				"ai_tenant_settings_tenant_id_tenants_id_fk": {
					"name": "ai_tenant_settings_tenant_id_tenants_id_fk",
					"tableFrom": "ai_tenant_settings",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.ai_tier_quotas": {
			"name": "ai_tier_quotas",
			"schema": "",
			"columns": {
				"tier": {
					"name": "tier",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"model_id": {
					"name": "model_id",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"monthly_tokens": {
					"name": "monthly_tokens",
					"type": "bigint",
					"primaryKey": false,
					"notNull": true
				},
				"extra_allowed": {
					"name": "extra_allowed",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"extra_max_usd": {
					"name": "extra_max_usd",
					"type": "numeric(10, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"effective_from": {
					"name": "effective_from",
					"type": "date",
					"primaryKey": false,
					"notNull": true
				},
				"effective_to": {
					"name": "effective_to",
					"type": "date",
					"primaryKey": false,
					"notNull": false
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {
				"ai_tier_quotas_tier_effective_from_pk": {
					"name": "ai_tier_quotas_tier_effective_from_pk",
					"columns": [
						"tier",
						"effective_from"
					]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"ai_tier_quotas_tier_check": {
					"name": "ai_tier_quotas_tier_check",
					"value": "\"ai_tier_quotas\".\"tier\" IN ('freelancer', 'business', 'enterprise', 'white_label')"
				}
			},
			"isRLSEnabled": false
		},
		"public.ai_usage_log": {
			"name": "ai_usage_log",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"use_case": {
					"name": "use_case",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"model_id": {
					"name": "model_id",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"provider": {
					"name": "provider",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"input_tokens": {
					"name": "input_tokens",
					"type": "integer",
					"primaryKey": false,
					"notNull": true
				},
				"output_tokens": {
					"name": "output_tokens",
					"type": "integer",
					"primaryKey": false,
					"notNull": true
				},
				"total_tokens": {
					"name": "total_tokens",
					"type": "integer",
					"primaryKey": false,
					"notNull": true
				},
				"cost_usd": {
					"name": "cost_usd",
					"type": "numeric(12, 6)",
					"primaryKey": false,
					"notNull": true
				},
				"billed_from": {
					"name": "billed_from",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"duration_ms": {
					"name": "duration_ms",
					"type": "integer",
					"primaryKey": false,
					"notNull": true
				},
				"entity_type": {
					"name": "entity_type",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"entity_id": {
					"name": "entity_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"error": {
					"name": "error",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"ai_usage_log_tenant_period": {
					"name": "ai_usage_log_tenant_period",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "created_at",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"ai_usage_log_use_case": {
					"name": "ai_usage_log_use_case",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "use_case",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "created_at",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"ai_usage_log_tenant_id_tenants_id_fk": {
					"name": "ai_usage_log_tenant_id_tenants_id_fk",
					"tableFrom": "ai_usage_log",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"ai_usage_log_user_id_users_id_fk": {
					"name": "ai_usage_log_user_id_users_id_fk",
					"tableFrom": "ai_usage_log",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"ai_usage_log_provider_check": {
					"name": "ai_usage_log_provider_check",
					"value": "\"ai_usage_log\".\"provider\" IN ('anthropic', 'openai', 'google')"
				},
				"ai_usage_log_billed_from_check": {
					"name": "ai_usage_log_billed_from_check",
					"value": "\"ai_usage_log\".\"billed_from\" IN ('quota', 'extra', 'purchased')"
				}
			},
			"isRLSEnabled": false
		},
		"public.tenant_audit_log": {
			"name": "tenant_audit_log",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"actor_name": {
					"name": "actor_name",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"actor_email": {
					"name": "actor_email",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"event_type": {
					"name": "event_type",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"entity_type": {
					"name": "entity_type",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"entity_id": {
					"name": "entity_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"entity_label": {
					"name": "entity_label",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"metadata": {
					"name": "metadata",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": false
				},
				"ip_address": {
					"name": "ip_address",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_tal_tenant_time": {
					"name": "idx_tal_tenant_time",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "created_at",
							"isExpression": false,
							"asc": false,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_tal_entity": {
					"name": "idx_tal_entity",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "entity_type",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "entity_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_tal_user": {
					"name": "idx_tal_user",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "user_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_tal_event_type": {
					"name": "idx_tal_event_type",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "event_type",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"tenant_audit_log_tenant_id_tenants_id_fk": {
					"name": "tenant_audit_log_tenant_id_tenants_id_fk",
					"tableFrom": "tenant_audit_log",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"tenant_audit_log_user_id_users_id_fk": {
					"name": "tenant_audit_log_user_id_users_id_fk",
					"tableFrom": "tenant_audit_log",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "set null",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.invitations": {
			"name": "invitations",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"email": {
					"name": "email",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"role_id": {
					"name": "role_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"token_hash": {
					"name": "token_hash",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"expires_at": {
					"name": "expires_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true
				},
				"accepted_at": {
					"name": "accepted_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"invitations_token_hash_idx": {
					"name": "invitations_token_hash_idx",
					"columns": [
						{
							"expression": "token_hash",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"invitations_tenant_id_tenants_id_fk": {
					"name": "invitations_tenant_id_tenants_id_fk",
					"tableFrom": "invitations",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"invitations_role_id_roles_id_fk": {
					"name": "invitations_role_id_roles_id_fk",
					"tableFrom": "invitations",
					"tableTo": "roles",
					"columnsFrom": [
						"role_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"invitations_token_hash_unique": {
					"name": "invitations_token_hash_unique",
					"nullsNotDistinct": false,
					"columns": [
						"token_hash"
					]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.oauth_accounts": {
			"name": "oauth_accounts",
			"schema": "",
			"columns": {
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"provider": {
					"name": "provider",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"provider_user_id": {
					"name": "provider_user_id",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {
				"oauth_accounts_user_id_users_id_fk": {
					"name": "oauth_accounts_user_id_users_id_fk",
					"tableFrom": "oauth_accounts",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {
				"oauth_accounts_user_id_provider_pk": {
					"name": "oauth_accounts_user_id_provider_pk",
					"columns": [
						"user_id",
						"provider"
					]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.refresh_tokens": {
			"name": "refresh_tokens",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"token_hash": {
					"name": "token_hash",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"expires_at": {
					"name": "expires_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true
				},
				"revoked_at": {
					"name": "revoked_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"refresh_tokens_token_hash_idx": {
					"name": "refresh_tokens_token_hash_idx",
					"columns": [
						{
							"expression": "token_hash",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"refresh_tokens_user_id_users_id_fk": {
					"name": "refresh_tokens_user_id_users_id_fk",
					"tableFrom": "refresh_tokens",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"refresh_tokens_tenant_id_tenants_id_fk": {
					"name": "refresh_tokens_tenant_id_tenants_id_fk",
					"tableFrom": "refresh_tokens",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"refresh_tokens_token_hash_unique": {
					"name": "refresh_tokens_token_hash_unique",
					"nullsNotDistinct": false,
					"columns": [
						"token_hash"
					]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.adapter_credentials": {
			"name": "adapter_credentials",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"adapter_id": {
					"name": "adapter_id",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"ciphertext": {
					"name": "ciphertext",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"iv": {
					"name": "iv",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"auth_tag": {
					"name": "auth_tag",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"metadata": {
					"name": "metadata",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'{}'::jsonb"
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_adapter_credentials_tenant": {
					"name": "idx_adapter_credentials_tenant",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"adapter_credentials_tenant_id_tenants_id_fk": {
					"name": "adapter_credentials_tenant_id_tenants_id_fk",
					"tableFrom": "adapter_credentials",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"adapter_credentials_tenant_adapter_unique": {
					"name": "adapter_credentials_tenant_adapter_unique",
					"nullsNotDistinct": false,
					"columns": [
						"tenant_id",
						"adapter_id"
					]
				}
			},
			"policies": {},
			"checkConstraints": {
				"adapter_credentials_adapter_id_check": {
					"name": "adapter_credentials_adapter_id_check",
					"value": "\"adapter_credentials\".\"adapter_id\" IN ('gmail','outlook','telegram','slack','whatsapp','smtp','trello','asana','jira','monday','clickup')"
				}
			},
			"isRLSEnabled": false
		},
		"public.notifications": {
			"name": "notifications",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"type": {
					"name": "type",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"title_key": {
					"name": "title_key",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"body_key": {
					"name": "body_key",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"params": {
					"name": "params",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'{}'::jsonb"
				},
				"entity_type": {
					"name": "entity_type",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"entity_id": {
					"name": "entity_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"read_at": {
					"name": "read_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"notifications_inbox": {
					"name": "notifications_inbox",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "user_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "read_at",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "created_at",
							"isExpression": false,
							"asc": false,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"notifications_tenant_id_tenants_id_fk": {
					"name": "notifications_tenant_id_tenants_id_fk",
					"tableFrom": "notifications",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"notifications_user_id_users_id_fk": {
					"name": "notifications_user_id_users_id_fk",
					"tableFrom": "notifications",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.push_subscriptions": {
			"name": "push_subscriptions",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"endpoint": {
					"name": "endpoint",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"p256dh": {
					"name": "p256dh",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"auth": {
					"name": "auth",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"user_agent": {
					"name": "user_agent",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"last_used_at": {
					"name": "last_used_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				}
			},
			"indexes": {
				"idx_push_subs_user": {
					"name": "idx_push_subs_user",
					"columns": [
						{
							"expression": "user_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"push_subscriptions_user_id_users_id_fk": {
					"name": "push_subscriptions_user_id_users_id_fk",
					"tableFrom": "push_subscriptions",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"push_subscriptions_tenant_id_tenants_id_fk": {
					"name": "push_subscriptions_tenant_id_tenants_id_fk",
					"tableFrom": "push_subscriptions",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"push_subscriptions_endpoint_unique": {
					"name": "push_subscriptions_endpoint_unique",
					"nullsNotDistinct": false,
					"columns": [
						"endpoint"
					]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.customer_communications": {
			"name": "customer_communications",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"customer_id": {
					"name": "customer_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"direction": {
					"name": "direction",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"channel": {
					"name": "channel",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"subject": {
					"name": "subject",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"body": {
					"name": "body",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"from_address": {
					"name": "from_address",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"to_address": {
					"name": "to_address",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"related_id": {
					"name": "related_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"related_type": {
					"name": "related_type",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"sent_at": {
					"name": "sent_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"created_by": {
					"name": "created_by",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_customer_comms_customer": {
					"name": "idx_customer_comms_customer",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "customer_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "sent_at",
							"isExpression": false,
							"asc": false,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"customer_communications_tenant_id_tenants_id_fk": {
					"name": "customer_communications_tenant_id_tenants_id_fk",
					"tableFrom": "customer_communications",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"customer_communications_customer_id_customers_id_fk": {
					"name": "customer_communications_customer_id_customers_id_fk",
					"tableFrom": "customer_communications",
					"tableTo": "customers",
					"columnsFrom": [
						"customer_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"customer_communications_created_by_users_id_fk": {
					"name": "customer_communications_created_by_users_id_fk",
					"tableFrom": "customer_communications",
					"tableTo": "users",
					"columnsFrom": [
						"created_by"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"customer_communications_direction_check": {
					"name": "customer_communications_direction_check",
					"value": "\"customer_communications\".\"direction\" IN ('outbound', 'inbound', 'internal')"
				},
				"customer_communications_channel_check": {
					"name": "customer_communications_channel_check",
					"value": "\"customer_communications\".\"channel\" IN ('email', 'telegram', 'ticket', 'note', 'system')"
				}
			},
			"isRLSEnabled": false
		},
		"public.customer_contacts": {
			"name": "customer_contacts",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"customer_id": {
					"name": "customer_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"name": {
					"name": "name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"email": {
					"name": "email",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"phone": {
					"name": "phone",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"role": {
					"name": "role",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"is_primary": {
					"name": "is_primary",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_customer_contacts_customer": {
					"name": "idx_customer_contacts_customer",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "customer_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"customer_contacts_customer_id_customers_id_fk": {
					"name": "customer_contacts_customer_id_customers_id_fk",
					"tableFrom": "customer_contacts",
					"tableTo": "customers",
					"columnsFrom": [
						"customer_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"customer_contacts_tenant_id_tenants_id_fk": {
					"name": "customer_contacts_tenant_id_tenants_id_fk",
					"tableFrom": "customer_contacts",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.customer_portal_users": {
			"name": "customer_portal_users",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"customer_id": {
					"name": "customer_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"contact_id": {
					"name": "contact_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"portal_role": {
					"name": "portal_role",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'customer_viewer'"
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'active'"
				},
				"invited_at": {
					"name": "invited_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"accepted_at": {
					"name": "accepted_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_customer_portal_users_customer": {
					"name": "idx_customer_portal_users_customer",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "customer_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"customer_portal_users_customer_id_customers_id_fk": {
					"name": "customer_portal_users_customer_id_customers_id_fk",
					"tableFrom": "customer_portal_users",
					"tableTo": "customers",
					"columnsFrom": [
						"customer_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"customer_portal_users_tenant_id_tenants_id_fk": {
					"name": "customer_portal_users_tenant_id_tenants_id_fk",
					"tableFrom": "customer_portal_users",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"customer_portal_users_contact_id_customer_contacts_id_fk": {
					"name": "customer_portal_users_contact_id_customer_contacts_id_fk",
					"tableFrom": "customer_portal_users",
					"tableTo": "customer_contacts",
					"columnsFrom": [
						"contact_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"customer_portal_users_user_id_users_id_fk": {
					"name": "customer_portal_users_user_id_users_id_fk",
					"tableFrom": "customer_portal_users",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"customer_portal_users_status_check": {
					"name": "customer_portal_users_status_check",
					"value": "\"customer_portal_users\".\"status\" IN ('active', 'frozen')"
				}
			},
			"isRLSEnabled": false
		},
		"public.customers": {
			"name": "customers",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"name": {
					"name": "name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"company": {
					"name": "company",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"email": {
					"name": "email",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"phone": {
					"name": "phone",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"address": {
					"name": "address",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": false
				},
				"notes": {
					"name": "notes",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'active'"
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_customers_tenant_status": {
					"name": "idx_customers_tenant_status",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "status",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "created_at",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_customers_tenant_name": {
					"name": "idx_customers_tenant_name",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "name",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"customers_tenant_id_tenants_id_fk": {
					"name": "customers_tenant_id_tenants_id_fk",
					"tableFrom": "customers",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"customers_status_check": {
					"name": "customers_status_check",
					"value": "\"customers\".\"status\" IN ('active', 'archived')"
				}
			},
			"isRLSEnabled": false
		},
		"public.expense_corrections": {
			"name": "expense_corrections",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"expense_id": {
					"name": "expense_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"field_name": {
					"name": "field_name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"original_value": {
					"name": "original_value",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"corrected_value": {
					"name": "corrected_value",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_expense_corrections_expense": {
					"name": "idx_expense_corrections_expense",
					"columns": [
						{
							"expression": "expense_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"expense_corrections_expense_id_expenses_id_fk": {
					"name": "expense_corrections_expense_id_expenses_id_fk",
					"tableFrom": "expense_corrections",
					"tableTo": "expenses",
					"columnsFrom": [
						"expense_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"expense_corrections_user_id_users_id_fk": {
					"name": "expense_corrections_user_id_users_id_fk",
					"tableFrom": "expense_corrections",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.expenses": {
			"name": "expenses",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"project_id": {
					"name": "project_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"created_by": {
					"name": "created_by",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"r2_key": {
					"name": "r2_key",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"file_name": {
					"name": "file_name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"file_type": {
					"name": "file_type",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"file_size_bytes": {
					"name": "file_size_bytes",
					"type": "integer",
					"primaryKey": false,
					"notNull": true
				},
				"vendor_name": {
					"name": "vendor_name",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"vendor_tax_id": {
					"name": "vendor_tax_id",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"invoice_number": {
					"name": "invoice_number",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"invoice_total": {
					"name": "invoice_total",
					"type": "numeric(12, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"vat_amount": {
					"name": "vat_amount",
					"type": "numeric(12, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"currency": {
					"name": "currency",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'ILS'"
				},
				"allocation_number": {
					"name": "allocation_number",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"raw_ocr_text": {
					"name": "raw_ocr_text",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"expense_date": {
					"name": "expense_date",
					"type": "date",
					"primaryKey": false,
					"notNull": false
				},
				"amount": {
					"name": "amount",
					"type": "numeric(12, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"vat_deductible": {
					"name": "vat_deductible",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": true
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'PENDING'"
				},
				"ocr_confidence": {
					"name": "ocr_confidence",
					"type": "numeric(3, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"processing_started_at": {
					"name": "processing_started_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"processed_at": {
					"name": "processed_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"processing_error": {
					"name": "processing_error",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"expense_category": {
					"name": "expense_category",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"deduction_pct": {
					"name": "deduction_pct",
					"type": "integer",
					"primaryKey": false,
					"notNull": false
				},
				"deduction_confidence": {
					"name": "deduction_confidence",
					"type": "numeric(3, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"deduction_reasoning_he": {
					"name": "deduction_reasoning_he",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"deduction_reasoning_en": {
					"name": "deduction_reasoning_en",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"evaluated_at": {
					"name": "evaluated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"is_per_diem": {
					"name": "is_per_diem",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"per_diem_days": {
					"name": "per_diem_days",
					"type": "numeric(5, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"per_diem_rate_ils": {
					"name": "per_diem_rate_ils",
					"type": "numeric(10, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"source": {
					"name": "source",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'upload'"
				},
				"source_metadata": {
					"name": "source_metadata",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": false
				},
				"notes": {
					"name": "notes",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"deleted_at": {
					"name": "deleted_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_expenses_report": {
					"name": "idx_expenses_report",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "status",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "expense_date",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_expenses_cursor": {
					"name": "idx_expenses_cursor",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "created_at",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_expenses_project": {
					"name": "idx_expenses_project",
					"columns": [
						{
							"expression": "project_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"expenses_tenant_id_tenants_id_fk": {
					"name": "expenses_tenant_id_tenants_id_fk",
					"tableFrom": "expenses",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"expenses_project_id_projects_id_fk": {
					"name": "expenses_project_id_projects_id_fk",
					"tableFrom": "expenses",
					"tableTo": "projects",
					"columnsFrom": [
						"project_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "set null",
					"onUpdate": "no action"
				},
				"expenses_created_by_users_id_fk": {
					"name": "expenses_created_by_users_id_fk",
					"tableFrom": "expenses",
					"tableTo": "users",
					"columnsFrom": [
						"created_by"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"expenses_file_type_check": {
					"name": "expenses_file_type_check",
					"value": "\"expenses\".\"file_type\" IN ('pdf','jpg','png','heic')"
				},
				"expenses_status_check": {
					"name": "expenses_status_check",
					"value": "\"expenses\".\"status\" IN ('PENDING','PROCESSING','COMPLETED','FAILED','NEEDS_REVIEW')"
				},
				"expenses_category_check": {
					"name": "expenses_category_check",
					"value": "\"expenses\".\"expense_category\" IS NULL OR \"expenses\".\"expense_category\" IN ('office','marketing','professional','vehicle','equipment','finance','welfare','exceptional','travel')"
				},
				"expenses_deduction_pct_check": {
					"name": "expenses_deduction_pct_check",
					"value": "\"expenses\".\"deduction_pct\" IS NULL OR (\"expenses\".\"deduction_pct\" >= 0 AND \"expenses\".\"deduction_pct\" <= 100)"
				},
				"expenses_source_check": {
					"name": "expenses_source_check",
					"value": "\"expenses\".\"source\" IN ('upload','email','whatsapp','telegram')"
				}
			},
			"isRLSEnabled": false
		},
		"public.status_subscribers": {
			"name": "status_subscribers",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"email": {
					"name": "email",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"subscribed_at": {
					"name": "subscribed_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"unsubscribe_token": {
					"name": "unsubscribe_token",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"status_subscribers_email_unique": {
					"name": "status_subscribers_email_unique",
					"nullsNotDistinct": false,
					"columns": [
						"email"
					]
				},
				"status_subscribers_unsubscribe_token_unique": {
					"name": "status_subscribers_unsubscribe_token_unique",
					"nullsNotDistinct": false,
					"columns": [
						"unsubscribe_token"
					]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.system_incident_updates": {
			"name": "system_incident_updates",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"incident_id": {
					"name": "incident_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"body": {
					"name": "body",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"created_by": {
					"name": "created_by",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				}
			},
			"indexes": {
				"idx_system_incident_updates_incident": {
					"name": "idx_system_incident_updates_incident",
					"columns": [
						{
							"expression": "incident_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "created_at",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"system_incident_updates_incident_id_system_incidents_id_fk": {
					"name": "system_incident_updates_incident_id_system_incidents_id_fk",
					"tableFrom": "system_incident_updates",
					"tableTo": "system_incidents",
					"columnsFrom": [
						"incident_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"system_incident_updates_status_check": {
					"name": "system_incident_updates_status_check",
					"value": "\"system_incident_updates\".\"status\" IN ('investigating','identified','monitoring','resolved')"
				}
			},
			"isRLSEnabled": false
		},
		"public.system_incidents": {
			"name": "system_incidents",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"title": {
					"name": "title",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"impact": {
					"name": "impact",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"affected_services": {
					"name": "affected_services",
					"type": "text[]",
					"primaryKey": false,
					"notNull": true,
					"default": "'{}'::text[]"
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"resolved_at": {
					"name": "resolved_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_by": {
					"name": "created_by",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				}
			},
			"indexes": {
				"idx_system_incidents_resolved_at": {
					"name": "idx_system_incidents_resolved_at",
					"columns": [
						{
							"expression": "resolved_at",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"system_incidents_status_check": {
					"name": "system_incidents_status_check",
					"value": "\"system_incidents\".\"status\" IN ('investigating','identified','monitoring','resolved')"
				},
				"system_incidents_impact_check": {
					"name": "system_incidents_impact_check",
					"value": "\"system_incidents\".\"impact\" IN ('minor','major','critical')"
				}
			},
			"isRLSEnabled": false
		},
		"public.users": {
			"name": "users",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"email": {
					"name": "email",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"password_hash": {
					"name": "password_hash",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"name": {
					"name": "name",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"avatar_url": {
					"name": "avatar_url",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"email_verified_at": {
					"name": "email_verified_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'active'"
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"two_factor_enabled": {
					"name": "two_factor_enabled",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"two_factor_phone": {
					"name": "two_factor_phone",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"two_factor_phone_suffix": {
					"name": "two_factor_phone_suffix",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"last_login_at": {
					"name": "last_login_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				}
			},
			"indexes": {
				"users_email_idx": {
					"name": "users_email_idx",
					"columns": [
						{
							"expression": "email",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_users_last_login": {
					"name": "idx_users_last_login",
					"columns": [
						{
							"expression": "last_login_at",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"users_email_unique": {
					"name": "users_email_unique",
					"nullsNotDistinct": false,
					"columns": [
						"email"
					]
				}
			},
			"policies": {},
			"checkConstraints": {
				"users_status_check": {
					"name": "users_status_check",
					"value": "\"users\".\"status\" IN ('active', 'suspended')"
				}
			},
			"isRLSEnabled": false
		},
		"public.tenant_settings": {
			"name": "tenant_settings",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"filing_cadence": {
					"name": "filing_cadence",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'monthly'"
				},
				"tax_basis": {
					"name": "tax_basis",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'cash'"
				},
				"business_category": {
					"name": "business_category",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"per_diem_rates": {
					"name": "per_diem_rates",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'{\"domestic_full_day\":100,\"domestic_half_day\":50,\"international_full_day\":250,\"international_half_day\":125}'::jsonb"
				},
				"expense_default_category": {
					"name": "expense_default_category",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'exceptional'"
				},
				"expense_auto_approve_threshold_ils": {
					"name": "expense_auto_approve_threshold_ils",
					"type": "integer",
					"primaryKey": false,
					"notNull": true,
					"default": 0
				},
				"expense_receipt_reminder_enabled": {
					"name": "expense_receipt_reminder_enabled",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"expense_receipt_reminder_days": {
					"name": "expense_receipt_reminder_days",
					"type": "integer",
					"primaryKey": false,
					"notNull": true,
					"default": 7
				},
				"expense_approval_threshold_ils": {
					"name": "expense_approval_threshold_ils",
					"type": "integer",
					"primaryKey": false,
					"notNull": true,
					"default": 0
				},
				"expense_approver_role": {
					"name": "expense_approver_role",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'any_admin'"
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {
				"tenant_settings_tenant_id_tenants_id_fk": {
					"name": "tenant_settings_tenant_id_tenants_id_fk",
					"tableFrom": "tenant_settings",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"tenant_settings_tenant_id_unique": {
					"name": "tenant_settings_tenant_id_unique",
					"nullsNotDistinct": false,
					"columns": [
						"tenant_id"
					]
				}
			},
			"policies": {},
			"checkConstraints": {
				"tenant_settings_filing_cadence_check": {
					"name": "tenant_settings_filing_cadence_check",
					"value": "\"tenant_settings\".\"filing_cadence\" IN ('monthly','bimonthly')"
				},
				"tenant_settings_tax_basis_check": {
					"name": "tenant_settings_tax_basis_check",
					"value": "\"tenant_settings\".\"tax_basis\" IN ('cash','accrual')"
				}
			},
			"isRLSEnabled": false
		},
		"public.tenants": {
			"name": "tenants",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"slug": {
					"name": "slug",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"name": {
					"name": "name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"tier": {
					"name": "tier",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'freelancer'"
				},
				"require_approval": {
					"name": "require_approval",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"enforce_2fa": {
					"name": "enforce_2fa",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"disable_2fa_remember_device": {
					"name": "disable_2fa_remember_device",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"country_code": {
					"name": "country_code",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'IL'"
				},
				"default_currency": {
					"name": "default_currency",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'ILS'"
				},
				"default_timezone": {
					"name": "default_timezone",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'Asia/Jerusalem'"
				},
				"logo_url": {
					"name": "logo_url",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"settings": {
					"name": "settings",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'{}'::jsonb"
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"tenants_slug_idx": {
					"name": "tenants_slug_idx",
					"columns": [
						{
							"expression": "slug",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"tenants_slug_unique": {
					"name": "tenants_slug_unique",
					"nullsNotDistinct": false,
					"columns": [
						"slug"
					]
				}
			},
			"policies": {},
			"checkConstraints": {
				"tenants_tier_check": {
					"name": "tenants_tier_check",
					"value": "\"tenants\".\"tier\" IN ('freelancer', 'business', 'enterprise', 'white_label')"
				},
				"tenants_country_code_check": {
					"name": "tenants_country_code_check",
					"value": "\"tenants\".\"country_code\" IN ('IL')"
				}
			},
			"isRLSEnabled": false
		},
		"public.permissions": {
			"name": "permissions",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"key": {
					"name": "key",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"description": {
					"name": "description",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"permissions_key_unique": {
					"name": "permissions_key_unique",
					"nullsNotDistinct": false,
					"columns": [
						"key"
					]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.role_permissions": {
			"name": "role_permissions",
			"schema": "",
			"columns": {
				"role_id": {
					"name": "role_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"permission_id": {
					"name": "permission_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				}
			},
			"indexes": {},
			"foreignKeys": {
				"role_permissions_role_id_roles_id_fk": {
					"name": "role_permissions_role_id_roles_id_fk",
					"tableFrom": "role_permissions",
					"tableTo": "roles",
					"columnsFrom": [
						"role_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"role_permissions_permission_id_permissions_id_fk": {
					"name": "role_permissions_permission_id_permissions_id_fk",
					"tableFrom": "role_permissions",
					"tableTo": "permissions",
					"columnsFrom": [
						"permission_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {
				"role_permissions_role_id_permission_id_pk": {
					"name": "role_permissions_role_id_permission_id_pk",
					"columns": [
						"role_id",
						"permission_id"
					]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.roles": {
			"name": "roles",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"name": {
					"name": "name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"is_system_role": {
					"name": "is_system_role",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {
				"roles_tenant_id_tenants_id_fk": {
					"name": "roles_tenant_id_tenants_id_fk",
					"tableFrom": "roles",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"roles_tenant_name_unique": {
					"name": "roles_tenant_name_unique",
					"nullsNotDistinct": false,
					"columns": [
						"tenant_id",
						"name"
					]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.tenant_memberships": {
			"name": "tenant_memberships",
			"schema": "",
			"columns": {
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"role_id": {
					"name": "role_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'active'"
				},
				"freeze_reason": {
					"name": "freeze_reason",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"tenant_memberships_tenant_id_idx": {
					"name": "tenant_memberships_tenant_id_idx",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"tenant_memberships_user_id_users_id_fk": {
					"name": "tenant_memberships_user_id_users_id_fk",
					"tableFrom": "tenant_memberships",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"tenant_memberships_tenant_id_tenants_id_fk": {
					"name": "tenant_memberships_tenant_id_tenants_id_fk",
					"tableFrom": "tenant_memberships",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"tenant_memberships_role_id_roles_id_fk": {
					"name": "tenant_memberships_role_id_roles_id_fk",
					"tableFrom": "tenant_memberships",
					"tableTo": "roles",
					"columnsFrom": [
						"role_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {
				"tenant_memberships_user_id_tenant_id_pk": {
					"name": "tenant_memberships_user_id_tenant_id_pk",
					"columns": [
						"user_id",
						"tenant_id"
					]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"tenant_memberships_status_check": {
					"name": "tenant_memberships_status_check",
					"value": "\"tenant_memberships\".\"status\" IN ('active', 'frozen', 'pending_approval')"
				}
			},
			"isRLSEnabled": false
		},
		"public.usage_counters": {
			"name": "usage_counters",
			"schema": "",
			"columns": {
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"counter_key": {
					"name": "counter_key",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"period": {
					"name": "period",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"count": {
					"name": "count",
					"type": "integer",
					"primaryKey": false,
					"notNull": true,
					"default": 0
				}
			},
			"indexes": {},
			"foreignKeys": {
				"usage_counters_tenant_id_tenants_id_fk": {
					"name": "usage_counters_tenant_id_tenants_id_fk",
					"tableFrom": "usage_counters",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {
				"usage_counters_tenant_id_counter_key_period_pk": {
					"name": "usage_counters_tenant_id_counter_key_period_pk",
					"columns": [
						"tenant_id",
						"counter_key",
						"period"
					]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.user_preferences": {
			"name": "user_preferences",
			"schema": "",
			"columns": {
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"notification_channels": {
					"name": "notification_channels",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'{\"email\":[],\"telegram\":[]}'::jsonb"
				},
				"sidebar_collapsed": {
					"name": "sidebar_collapsed",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"default_currency": {
					"name": "default_currency",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"timezone": {
					"name": "timezone",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'Asia/Jerusalem'"
				},
				"locale": {
					"name": "locale",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"default_timer_project_id": {
					"name": "default_timer_project_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"dashboard_widgets": {
					"name": "dashboard_widgets",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'[]'::jsonb"
				},
				"ui_theme": {
					"name": "ui_theme",
					"type": "text",
					"primaryKey": false,
					"notNull": false,
					"default": "'dark'"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {
				"user_preferences_user_id_users_id_fk": {
					"name": "user_preferences_user_id_users_id_fk",
					"tableFrom": "user_preferences",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"user_preferences_tenant_id_tenants_id_fk": {
					"name": "user_preferences_tenant_id_tenants_id_fk",
					"tableFrom": "user_preferences",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {
				"user_preferences_user_id_tenant_id_pk": {
					"name": "user_preferences_user_id_tenant_id_pk",
					"columns": [
						"user_id",
						"tenant_id"
					]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"user_preferences_ui_theme_check": {
					"name": "user_preferences_ui_theme_check",
					"value": "ui_theme IN ('dark','light','system')"
				}
			},
			"isRLSEnabled": false
		},
		"public.user_2fa_backup_codes": {
			"name": "user_2fa_backup_codes",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"code_hash": {
					"name": "code_hash",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"used_at": {
					"name": "used_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_2fa_backup_codes_user": {
					"name": "idx_2fa_backup_codes_user",
					"columns": [
						{
							"expression": "user_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"where": "\"user_2fa_backup_codes\".\"used_at\" is null",
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"user_2fa_backup_codes_user_id_users_id_fk": {
					"name": "user_2fa_backup_codes_user_id_users_id_fk",
					"tableFrom": "user_2fa_backup_codes",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.user_trusted_devices": {
			"name": "user_trusted_devices",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"token_hash": {
					"name": "token_hash",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"user_agent": {
					"name": "user_agent",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"ip_address": {
					"name": "ip_address",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"expires_at": {
					"name": "expires_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true
				},
				"revoked_at": {
					"name": "revoked_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_trusted_devices_user": {
					"name": "idx_trusted_devices_user",
					"columns": [
						{
							"expression": "user_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"user_trusted_devices_user_id_users_id_fk": {
					"name": "user_trusted_devices_user_id_users_id_fk",
					"tableFrom": "user_trusted_devices",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"user_trusted_devices_tenant_id_tenants_id_fk": {
					"name": "user_trusted_devices_tenant_id_tenants_id_fk",
					"tableFrom": "user_trusted_devices",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"user_trusted_devices_token_hash_unique": {
					"name": "user_trusted_devices_token_hash_unique",
					"nullsNotDistinct": false,
					"columns": [
						"token_hash"
					]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.tenant_modules": {
			"name": "tenant_modules",
			"schema": "",
			"columns": {
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"module_id": {
					"name": "module_id",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"enabled": {
					"name": "enabled",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": true
				},
				"enabled_at": {
					"name": "enabled_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"disabled_at": {
					"name": "disabled_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"disabled_by": {
					"name": "disabled_by",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"override_by_system_admin": {
					"name": "override_by_system_admin",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_tenant_modules_tenant_id": {
					"name": "idx_tenant_modules_tenant_id",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"tenant_modules_tenant_id_tenants_id_fk": {
					"name": "tenant_modules_tenant_id_tenants_id_fk",
					"tableFrom": "tenant_modules",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"tenant_modules_disabled_by_users_id_fk": {
					"name": "tenant_modules_disabled_by_users_id_fk",
					"tableFrom": "tenant_modules",
					"tableTo": "users",
					"columnsFrom": [
						"disabled_by"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "set null",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {
				"tenant_modules_tenant_id_module_id_pk": {
					"name": "tenant_modules_tenant_id_module_id_pk",
					"columns": [
						"tenant_id",
						"module_id"
					]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"module_id_valid": {
					"name": "module_id_valid",
					"value": "\"tenant_modules\".\"module_id\" IN (\n        'system','crm','customers','time_management','projects','tasks',\n        'invoices','expenses','billing','calendar','marketing','reports',\n        'kb','contractor_payouts','ai_assistant'\n      )"
				}
			},
			"isRLSEnabled": false
		},
		"public.vat_rates": {
			"name": "vat_rates",
			"schema": "",
			"columns": {
				"country_code": {
					"name": "country_code",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"effective_from": {
					"name": "effective_from",
					"type": "date",
					"primaryKey": false,
					"notNull": true
				},
				"rate": {
					"name": "rate",
					"type": "numeric(5, 4)",
					"primaryKey": false,
					"notNull": true
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {
				"vat_rates_country_code_effective_from_pk": {
					"name": "vat_rates_country_code_effective_from_pk",
					"columns": [
						"country_code",
						"effective_from"
					]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.tax_rates": {
			"name": "tax_rates",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"country_code": {
					"name": "country_code",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"tax_type": {
					"name": "tax_type",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"rate": {
					"name": "rate",
					"type": "numeric(6, 4)",
					"primaryKey": false,
					"notNull": true
				},
				"effective_from": {
					"name": "effective_from",
					"type": "date",
					"primaryKey": false,
					"notNull": true
				},
				"threshold_ils": {
					"name": "threshold_ils",
					"type": "numeric",
					"primaryKey": false,
					"notNull": false
				},
				"notes": {
					"name": "notes",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"created_by": {
					"name": "created_by",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"tax_rates_country_code_idx": {
					"name": "tax_rates_country_code_idx",
					"columns": [
						{
							"expression": "country_code",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"tax_rates_created_by_admin_users_id_fk": {
					"name": "tax_rates_created_by_admin_users_id_fk",
					"tableFrom": "tax_rates",
					"tableTo": "admin_users",
					"columnsFrom": [
						"created_by"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"tax_rates_country_type_from_unique": {
					"name": "tax_rates_country_type_from_unique",
					"nullsNotDistinct": false,
					"columns": [
						"country_code",
						"tax_type",
						"effective_from"
					]
				}
			},
			"policies": {},
			"checkConstraints": {
				"tax_rates_tax_type_check": {
					"name": "tax_rates_tax_type_check",
					"value": "\"tax_rates\".\"tax_type\" IN (\n        'corporate_income',\n        'personal_bracket_1','personal_bracket_2','personal_bracket_3',\n        'personal_bracket_4','personal_bracket_5','personal_bracket_6',\n        'withholding_default'\n      )"
				}
			},
			"isRLSEnabled": false
		},
		"public.kb_articles": {
			"name": "kb_articles",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"space_id": {
					"name": "space_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"parent_id": {
					"name": "parent_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"title": {
					"name": "title",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"slug": {
					"name": "slug",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"content": {
					"name": "content",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'DRAFT'"
				},
				"position": {
					"name": "position",
					"type": "numeric",
					"primaryKey": false,
					"notNull": true
				},
				"view_count": {
					"name": "view_count",
					"type": "integer",
					"primaryKey": false,
					"notNull": true,
					"default": 0
				},
				"published_at": {
					"name": "published_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_by": {
					"name": "created_by",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"updated_by": {
					"name": "updated_by",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"content_text": {
					"name": "content_text",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				}
			},
			"indexes": {
				"idx_kb_articles_space": {
					"name": "idx_kb_articles_space",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "space_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_kb_articles_tree": {
					"name": "idx_kb_articles_tree",
					"columns": [
						{
							"expression": "space_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "parent_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "position",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"kb_articles_space_slug_uniq": {
					"name": "kb_articles_space_slug_uniq",
					"columns": [
						{
							"expression": "space_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "slug",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": true,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"kb_articles_tenant_id_tenants_id_fk": {
					"name": "kb_articles_tenant_id_tenants_id_fk",
					"tableFrom": "kb_articles",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"kb_articles_space_id_kb_spaces_id_fk": {
					"name": "kb_articles_space_id_kb_spaces_id_fk",
					"tableFrom": "kb_articles",
					"tableTo": "kb_spaces",
					"columnsFrom": [
						"space_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"kb_articles_created_by_users_id_fk": {
					"name": "kb_articles_created_by_users_id_fk",
					"tableFrom": "kb_articles",
					"tableTo": "users",
					"columnsFrom": [
						"created_by"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				},
				"kb_articles_updated_by_users_id_fk": {
					"name": "kb_articles_updated_by_users_id_fk",
					"tableFrom": "kb_articles",
					"tableTo": "users",
					"columnsFrom": [
						"updated_by"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"kb_articles_status_check": {
					"name": "kb_articles_status_check",
					"value": "\"kb_articles\".\"status\" IN ('DRAFT', 'PUBLISHED')"
				}
			},
			"isRLSEnabled": false
		},
		"public.kb_attachments": {
			"name": "kb_attachments",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"article_id": {
					"name": "article_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"filename": {
					"name": "filename",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"r2_key": {
					"name": "r2_key",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"file_type": {
					"name": "file_type",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"file_size_bytes": {
					"name": "file_size_bytes",
					"type": "integer",
					"primaryKey": false,
					"notNull": true
				},
				"created_by": {
					"name": "created_by",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_kb_attachments_article": {
					"name": "idx_kb_attachments_article",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "article_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"kb_attachments_tenant_id_tenants_id_fk": {
					"name": "kb_attachments_tenant_id_tenants_id_fk",
					"tableFrom": "kb_attachments",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"kb_attachments_article_id_kb_articles_id_fk": {
					"name": "kb_attachments_article_id_kb_articles_id_fk",
					"tableFrom": "kb_attachments",
					"tableTo": "kb_articles",
					"columnsFrom": [
						"article_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"kb_attachments_created_by_users_id_fk": {
					"name": "kb_attachments_created_by_users_id_fk",
					"tableFrom": "kb_attachments",
					"tableTo": "users",
					"columnsFrom": [
						"created_by"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.kb_spaces": {
			"name": "kb_spaces",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"name": {
					"name": "name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"slug": {
					"name": "slug",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"type": {
					"name": "type",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'internal'"
				},
				"customer_id": {
					"name": "customer_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"icon": {
					"name": "icon",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"is_public": {
					"name": "is_public",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"description": {
					"name": "description",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"created_by": {
					"name": "created_by",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_kb_spaces_tenant": {
					"name": "idx_kb_spaces_tenant",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_kb_spaces_customer": {
					"name": "idx_kb_spaces_customer",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "customer_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"kb_spaces_tenant_slug_uniq": {
					"name": "kb_spaces_tenant_slug_uniq",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "slug",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": true,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"kb_spaces_tenant_id_tenants_id_fk": {
					"name": "kb_spaces_tenant_id_tenants_id_fk",
					"tableFrom": "kb_spaces",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"kb_spaces_customer_id_customers_id_fk": {
					"name": "kb_spaces_customer_id_customers_id_fk",
					"tableFrom": "kb_spaces",
					"tableTo": "customers",
					"columnsFrom": [
						"customer_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"kb_spaces_created_by_users_id_fk": {
					"name": "kb_spaces_created_by_users_id_fk",
					"tableFrom": "kb_spaces",
					"tableTo": "users",
					"columnsFrom": [
						"created_by"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"kb_spaces_type_check": {
					"name": "kb_spaces_type_check",
					"value": "\"kb_spaces\".\"type\" IN ('internal', 'vault')"
				}
			},
			"isRLSEnabled": false
		},
		"public.project_members": {
			"name": "project_members",
			"schema": "",
			"columns": {
				"project_id": {
					"name": "project_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"role": {
					"name": "role",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'member'"
				},
				"hourly_rate": {
					"name": "hourly_rate",
					"type": "numeric(10, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_project_members_tenant_user": {
					"name": "idx_project_members_tenant_user",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "user_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"project_members_project_id_projects_id_fk": {
					"name": "project_members_project_id_projects_id_fk",
					"tableFrom": "project_members",
					"tableTo": "projects",
					"columnsFrom": [
						"project_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"project_members_user_id_users_id_fk": {
					"name": "project_members_user_id_users_id_fk",
					"tableFrom": "project_members",
					"tableTo": "users",
					"columnsFrom": [
						"user_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"project_members_tenant_id_tenants_id_fk": {
					"name": "project_members_tenant_id_tenants_id_fk",
					"tableFrom": "project_members",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {
				"project_members_project_id_user_id_pk": {
					"name": "project_members_project_id_user_id_pk",
					"columns": [
						"project_id",
						"user_id"
					]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"project_members_role_check": {
					"name": "project_members_role_check",
					"value": "\"project_members\".\"role\" IN ('owner', 'member', 'viewer')"
				}
			},
			"isRLSEnabled": false
		},
		"public.projects": {
			"name": "projects",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"customer_id": {
					"name": "customer_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"name": {
					"name": "name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"description": {
					"name": "description",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'active'"
				},
				"billing_type": {
					"name": "billing_type",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"billing_config": {
					"name": "billing_config",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": false
				},
				"currency": {
					"name": "currency",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'ILS'"
				},
				"start_date": {
					"name": "start_date",
					"type": "date",
					"primaryKey": false,
					"notNull": false
				},
				"end_date": {
					"name": "end_date",
					"type": "date",
					"primaryKey": false,
					"notNull": false
				},
				"created_by": {
					"name": "created_by",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_projects_tenant_status": {
					"name": "idx_projects_tenant_status",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "status",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "updated_at",
							"isExpression": false,
							"asc": false,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_projects_tenant_customer": {
					"name": "idx_projects_tenant_customer",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "customer_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_projects_tenant_billing": {
					"name": "idx_projects_tenant_billing",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "billing_type",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_projects_tenant_name": {
					"name": "idx_projects_tenant_name",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "name",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"projects_tenant_id_tenants_id_fk": {
					"name": "projects_tenant_id_tenants_id_fk",
					"tableFrom": "projects",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"projects_customer_id_customers_id_fk": {
					"name": "projects_customer_id_customers_id_fk",
					"tableFrom": "projects",
					"tableTo": "customers",
					"columnsFrom": [
						"customer_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "set null",
					"onUpdate": "no action"
				},
				"projects_created_by_users_id_fk": {
					"name": "projects_created_by_users_id_fk",
					"tableFrom": "projects",
					"tableTo": "users",
					"columnsFrom": [
						"created_by"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "no action",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"projects_status_check": {
					"name": "projects_status_check",
					"value": "\"projects\".\"status\" IN ('active', 'on_hold', 'completed', 'archived')"
				},
				"projects_billing_type_check": {
					"name": "projects_billing_type_check",
					"value": "\"projects\".\"billing_type\" IN ('fixed', 'hourly', 'retainer')"
				}
			},
			"isRLSEnabled": false
		},
		"public.retainer_months": {
			"name": "retainer_months",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"project_id": {
					"name": "project_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"month": {
					"name": "month",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"hours_included": {
					"name": "hours_included",
					"type": "numeric(6, 2)",
					"primaryKey": false,
					"notNull": false
				},
				"hours_used": {
					"name": "hours_used",
					"type": "numeric(6, 2)",
					"primaryKey": false,
					"notNull": true,
					"default": "'0'"
				},
				"hours_rolled_over": {
					"name": "hours_rolled_over",
					"type": "numeric(6, 2)",
					"primaryKey": false,
					"notNull": true,
					"default": "'0'"
				},
				"invoice_triggered_at": {
					"name": "invoice_triggered_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_retainer_months_project_month_uniq": {
					"name": "idx_retainer_months_project_month_uniq",
					"columns": [
						{
							"expression": "project_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "month",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": true,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_retainer_months_project": {
					"name": "idx_retainer_months_project",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "project_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "month",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"retainer_months_project_id_projects_id_fk": {
					"name": "retainer_months_project_id_projects_id_fk",
					"tableFrom": "retainer_months",
					"tableTo": "projects",
					"columnsFrom": [
						"project_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"retainer_months_tenant_id_tenants_id_fk": {
					"name": "retainer_months_tenant_id_tenants_id_fk",
					"tableFrom": "retainer_months",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.zync_subscriptions": {
			"name": "zync_subscriptions",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"tenant_id": {
					"name": "tenant_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"tier": {
					"name": "tier",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'freelancer'"
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'active'"
				},
				"period": {
					"name": "period",
					"type": "text",
					"primaryKey": false,
					"notNull": false,
					"default": "NULL"
				},
				"adapter": {
					"name": "adapter",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'null'"
				},
				"adapter_subscription_id": {
					"name": "adapter_subscription_id",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"adapter_customer_id": {
					"name": "adapter_customer_id",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"current_period_start": {
					"name": "current_period_start",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"current_period_end": {
					"name": "current_period_end",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"trial_ends_at": {
					"name": "trial_ends_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"canceled_at": {
					"name": "canceled_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"grace_period_started_at": {
					"name": "grace_period_started_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"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
				},
				"source": {
					"name": "source",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'manual'"
				},
				"external_id": {
					"name": "external_id",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"position": {
					"name": "position",
					"type": "numeric",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"idx_tasks_tenant_project_status": {
					"name": "idx_tasks_tenant_project_status",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "project_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "status_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_tasks_tenant_status_position": {
					"name": "idx_tasks_tenant_status_position",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "status_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "position",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				},
				"idx_tasks_tenant_assignee": {
					"name": "idx_tasks_tenant_assignee",
					"columns": [
						{
							"expression": "tenant_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						},
						{
							"expression": "assignee_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"tasks_tenant_id_tenants_id_fk": {
					"name": "tasks_tenant_id_tenants_id_fk",
					"tableFrom": "tasks",
					"tableTo": "tenants",
					"columnsFrom": [
						"tenant_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"tasks_project_id_projects_id_fk": {
					"name": "tasks_project_id_projects_id_fk",
					"tableFrom": "tasks",
					"tableTo": "projects",
					"columnsFrom": [
						"project_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "set null",
					"onUpdate": "no action"
				},
				"tasks_status_id_task_statuses_id_fk": {
					"name": "tasks_status_id_task_statuses_id_fk",
					"tableFrom": "tasks",
					"tableTo": "task_statuses",
					"columnsFrom": [
						"status_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "restrict",
					"onUpdate": "no action"
				},
				"tasks_assignee_id_users_id_fk": {
					"name": "tasks_assignee_id_users_id_fk",
					"tableFrom": "tasks",
					"tableTo": "users",
					"columnsFrom": [
						"assignee_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "set null",
					"onUpdate": "no action"
				},
				"tasks_reporter_id_users_id_fk": {
					"name": "tasks_reporter_id_users_id_fk",
					"tableFrom": "tasks",
					"tableTo": "users",
					"columnsFrom": [
						"reporter_id"
					],
					"columnsTo": [
						"id"
					],
					"onDelete": "restrict",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {
				"tasks_priority_check": {
					"name": "tasks_priority_check",
					"value": "\"tasks\".\"priority\" IN ('low','medium','high','urgent')"
				},
				"tasks_source_check": {
					"name": "tasks_source_check",
					"value": "\"tasks\".\"source\" IN ('manual','email','telegram','slack','whatsapp','trello','asana','jira','monday','clickup')"
				}
			},
			"isRLSEnabled": false
		}
	},
	"enums": {},
	"schemas": {},
	"sequences": {},
	"roles": {},
	"policies": {},
	"views": {},
	"_meta": {
		"columns": {},
		"schemas": {},
		"tables": {}
	}
}
