{
	"id": "6252768a-7c7f-4dae-9dbd-d3ea9f647cea",
	"prevId": "ab45f75d-f50c-457f-ad40-e62ca27a4e2b",
	"version": "7",
	"dialect": "postgresql",
	"tables": {
		"public.archived_emails": {
			"name": "archived_emails",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"thread_id": {
					"name": "thread_id",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"ingestion_source_id": {
					"name": "ingestion_source_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"user_email": {
					"name": "user_email",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"message_id_header": {
					"name": "message_id_header",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"sent_at": {
					"name": "sent_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true
				},
				"subject": {
					"name": "subject",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"sender_name": {
					"name": "sender_name",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"sender_email": {
					"name": "sender_email",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"recipients": {
					"name": "recipients",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": false
				},
				"storage_path": {
					"name": "storage_path",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"storage_hash_sha256": {
					"name": "storage_hash_sha256",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"size_bytes": {
					"name": "size_bytes",
					"type": "bigint",
					"primaryKey": false,
					"notNull": true
				},
				"is_indexed": {
					"name": "is_indexed",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"has_attachments": {
					"name": "has_attachments",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"is_on_legal_hold": {
					"name": "is_on_legal_hold",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": false
				},
				"archived_at": {
					"name": "archived_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {
				"thread_id_idx": {
					"name": "thread_id_idx",
					"columns": [
						{
							"expression": "thread_id",
							"isExpression": false,
							"asc": true,
							"nulls": "last"
						}
					],
					"isUnique": false,
					"concurrently": false,
					"method": "btree",
					"with": {}
				}
			},
			"foreignKeys": {
				"archived_emails_ingestion_source_id_ingestion_sources_id_fk": {
					"name": "archived_emails_ingestion_source_id_ingestion_sources_id_fk",
					"tableFrom": "archived_emails",
					"tableTo": "ingestion_sources",
					"columnsFrom": ["ingestion_source_id"],
					"columnsTo": ["id"],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.attachments": {
			"name": "attachments",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"filename": {
					"name": "filename",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"mime_type": {
					"name": "mime_type",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"size_bytes": {
					"name": "size_bytes",
					"type": "bigint",
					"primaryKey": false,
					"notNull": true
				},
				"content_hash_sha256": {
					"name": "content_hash_sha256",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"storage_path": {
					"name": "storage_path",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"attachments_content_hash_sha256_unique": {
					"name": "attachments_content_hash_sha256_unique",
					"nullsNotDistinct": false,
					"columns": ["content_hash_sha256"]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.email_attachments": {
			"name": "email_attachments",
			"schema": "",
			"columns": {
				"email_id": {
					"name": "email_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"attachment_id": {
					"name": "attachment_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				}
			},
			"indexes": {},
			"foreignKeys": {
				"email_attachments_email_id_archived_emails_id_fk": {
					"name": "email_attachments_email_id_archived_emails_id_fk",
					"tableFrom": "email_attachments",
					"tableTo": "archived_emails",
					"columnsFrom": ["email_id"],
					"columnsTo": ["id"],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"email_attachments_attachment_id_attachments_id_fk": {
					"name": "email_attachments_attachment_id_attachments_id_fk",
					"tableFrom": "email_attachments",
					"tableTo": "attachments",
					"columnsFrom": ["attachment_id"],
					"columnsTo": ["id"],
					"onDelete": "restrict",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {
				"email_attachments_email_id_attachment_id_pk": {
					"name": "email_attachments_email_id_attachment_id_pk",
					"columns": ["email_id", "attachment_id"]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.audit_logs": {
			"name": "audit_logs",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "bigserial",
					"primaryKey": true,
					"notNull": true
				},
				"timestamp": {
					"name": "timestamp",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"actor_identifier": {
					"name": "actor_identifier",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"action": {
					"name": "action",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"target_type": {
					"name": "target_type",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"target_id": {
					"name": "target_id",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"details": {
					"name": "details",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": false
				},
				"is_tamper_evident": {
					"name": "is_tamper_evident",
					"type": "boolean",
					"primaryKey": false,
					"notNull": false,
					"default": false
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.ediscovery_cases": {
			"name": "ediscovery_cases",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"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": "'open'"
				},
				"created_by_identifier": {
					"name": "created_by_identifier",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"ediscovery_cases_name_unique": {
					"name": "ediscovery_cases_name_unique",
					"nullsNotDistinct": false,
					"columns": ["name"]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.export_jobs": {
			"name": "export_jobs",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"case_id": {
					"name": "case_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"format": {
					"name": "format",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"status": {
					"name": "status",
					"type": "text",
					"primaryKey": false,
					"notNull": true,
					"default": "'pending'"
				},
				"query": {
					"name": "query",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true
				},
				"file_path": {
					"name": "file_path",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"created_by_identifier": {
					"name": "created_by_identifier",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"completed_at": {
					"name": "completed_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				}
			},
			"indexes": {},
			"foreignKeys": {
				"export_jobs_case_id_ediscovery_cases_id_fk": {
					"name": "export_jobs_case_id_ediscovery_cases_id_fk",
					"tableFrom": "export_jobs",
					"tableTo": "ediscovery_cases",
					"columnsFrom": ["case_id"],
					"columnsTo": ["id"],
					"onDelete": "set null",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.legal_holds": {
			"name": "legal_holds",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"case_id": {
					"name": "case_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"custodian_id": {
					"name": "custodian_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": false
				},
				"hold_criteria": {
					"name": "hold_criteria",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": false
				},
				"reason": {
					"name": "reason",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"applied_by_identifier": {
					"name": "applied_by_identifier",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"applied_at": {
					"name": "applied_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"removed_at": {
					"name": "removed_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				}
			},
			"indexes": {},
			"foreignKeys": {
				"legal_holds_case_id_ediscovery_cases_id_fk": {
					"name": "legal_holds_case_id_ediscovery_cases_id_fk",
					"tableFrom": "legal_holds",
					"tableTo": "ediscovery_cases",
					"columnsFrom": ["case_id"],
					"columnsTo": ["id"],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"legal_holds_custodian_id_custodians_id_fk": {
					"name": "legal_holds_custodian_id_custodians_id_fk",
					"tableFrom": "legal_holds",
					"tableTo": "custodians",
					"columnsFrom": ["custodian_id"],
					"columnsTo": ["id"],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.retention_policies": {
			"name": "retention_policies",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"name": {
					"name": "name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"description": {
					"name": "description",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"priority": {
					"name": "priority",
					"type": "integer",
					"primaryKey": false,
					"notNull": true
				},
				"retention_period_days": {
					"name": "retention_period_days",
					"type": "integer",
					"primaryKey": false,
					"notNull": true
				},
				"action_on_expiry": {
					"name": "action_on_expiry",
					"type": "retention_action",
					"typeSchema": "public",
					"primaryKey": false,
					"notNull": true
				},
				"is_enabled": {
					"name": "is_enabled",
					"type": "boolean",
					"primaryKey": false,
					"notNull": true,
					"default": true
				},
				"conditions": {
					"name": "conditions",
					"type": "jsonb",
					"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": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"retention_policies_name_unique": {
					"name": "retention_policies_name_unique",
					"nullsNotDistinct": false,
					"columns": ["name"]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.custodians": {
			"name": "custodians",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"email": {
					"name": "email",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"display_name": {
					"name": "display_name",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"source_type": {
					"name": "source_type",
					"type": "ingestion_provider",
					"typeSchema": "public",
					"primaryKey": false,
					"notNull": true
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"custodians_email_unique": {
					"name": "custodians_email_unique",
					"nullsNotDistinct": false,
					"columns": ["email"]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.ingestion_sources": {
			"name": "ingestion_sources",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "uuid",
					"primaryKey": true,
					"notNull": true,
					"default": "gen_random_uuid()"
				},
				"name": {
					"name": "name",
					"type": "text",
					"primaryKey": false,
					"notNull": true
				},
				"provider": {
					"name": "provider",
					"type": "ingestion_provider",
					"typeSchema": "public",
					"primaryKey": false,
					"notNull": true
				},
				"credentials": {
					"name": "credentials",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"status": {
					"name": "status",
					"type": "ingestion_status",
					"typeSchema": "public",
					"primaryKey": false,
					"notNull": true,
					"default": "'pending_auth'"
				},
				"last_sync_started_at": {
					"name": "last_sync_started_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"last_sync_finished_at": {
					"name": "last_sync_finished_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": false
				},
				"last_sync_status_message": {
					"name": "last_sync_status_message",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"sync_state": {
					"name": "sync_state",
					"type": "jsonb",
					"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": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.roles": {
			"name": "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
				},
				"policies": {
					"name": "policies",
					"type": "jsonb",
					"primaryKey": false,
					"notNull": true,
					"default": "'[]'::jsonb"
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"roles_name_unique": {
					"name": "roles_name_unique",
					"nullsNotDistinct": false,
					"columns": ["name"]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.sessions": {
			"name": "sessions",
			"schema": "",
			"columns": {
				"id": {
					"name": "id",
					"type": "text",
					"primaryKey": true,
					"notNull": true
				},
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"expires_at": {
					"name": "expires_at",
					"type": "timestamp with time zone",
					"primaryKey": false,
					"notNull": true
				}
			},
			"indexes": {},
			"foreignKeys": {
				"sessions_user_id_users_id_fk": {
					"name": "sessions_user_id_users_id_fk",
					"tableFrom": "sessions",
					"tableTo": "users",
					"columnsFrom": ["user_id"],
					"columnsTo": ["id"],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		},
		"public.user_roles": {
			"name": "user_roles",
			"schema": "",
			"columns": {
				"user_id": {
					"name": "user_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				},
				"role_id": {
					"name": "role_id",
					"type": "uuid",
					"primaryKey": false,
					"notNull": true
				}
			},
			"indexes": {},
			"foreignKeys": {
				"user_roles_user_id_users_id_fk": {
					"name": "user_roles_user_id_users_id_fk",
					"tableFrom": "user_roles",
					"tableTo": "users",
					"columnsFrom": ["user_id"],
					"columnsTo": ["id"],
					"onDelete": "cascade",
					"onUpdate": "no action"
				},
				"user_roles_role_id_roles_id_fk": {
					"name": "user_roles_role_id_roles_id_fk",
					"tableFrom": "user_roles",
					"tableTo": "roles",
					"columnsFrom": ["role_id"],
					"columnsTo": ["id"],
					"onDelete": "cascade",
					"onUpdate": "no action"
				}
			},
			"compositePrimaryKeys": {
				"user_roles_user_id_role_id_pk": {
					"name": "user_roles_user_id_role_id_pk",
					"columns": ["user_id", "role_id"]
				}
			},
			"uniqueConstraints": {},
			"policies": {},
			"checkConstraints": {},
			"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
				},
				"first_name": {
					"name": "first_name",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"last_name": {
					"name": "last_name",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"password": {
					"name": "password",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"provider": {
					"name": "provider",
					"type": "text",
					"primaryKey": false,
					"notNull": false,
					"default": "'local'"
				},
				"provider_id": {
					"name": "provider_id",
					"type": "text",
					"primaryKey": false,
					"notNull": false
				},
				"created_at": {
					"name": "created_at",
					"type": "timestamp",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				},
				"updated_at": {
					"name": "updated_at",
					"type": "timestamp",
					"primaryKey": false,
					"notNull": true,
					"default": "now()"
				}
			},
			"indexes": {},
			"foreignKeys": {},
			"compositePrimaryKeys": {},
			"uniqueConstraints": {
				"users_email_unique": {
					"name": "users_email_unique",
					"nullsNotDistinct": false,
					"columns": ["email"]
				}
			},
			"policies": {},
			"checkConstraints": {},
			"isRLSEnabled": false
		}
	},
	"enums": {
		"public.retention_action": {
			"name": "retention_action",
			"schema": "public",
			"values": ["delete_permanently", "notify_admin"]
		},
		"public.ingestion_provider": {
			"name": "ingestion_provider",
			"schema": "public",
			"values": ["google_workspace", "microsoft_365", "generic_imap"]
		},
		"public.ingestion_status": {
			"name": "ingestion_status",
			"schema": "public",
			"values": [
				"active",
				"paused",
				"error",
				"pending_auth",
				"syncing",
				"importing",
				"auth_success"
			]
		}
	},
	"schemas": {},
	"sequences": {},
	"roles": {},
	"policies": {},
	"views": {},
	"_meta": {
		"columns": {},
		"schemas": {},
		"tables": {}
	}
}
