migrate

package
v1.46.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2026 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// WithGlobalUniqueID sets the universal ids options to the migration.
	// If this option is enabled, ent migration will allocate a 1<<32 range
	// for the ids of each entity (table).
	// Note that this option cannot be applied on tables that already exist.
	WithGlobalUniqueID = schema.WithGlobalUniqueID
	// WithDropColumn sets the drop column option to the migration.
	// If this option is enabled, ent migration will drop old columns
	// that were used for both fields and edges. This defaults to false.
	WithDropColumn = schema.WithDropColumn
	// WithDropIndex sets the drop index option to the migration.
	// If this option is enabled, ent migration will drop old indexes
	// that were defined in the schema. This defaults to false.
	// Note that unique constraints are defined using `UNIQUE INDEX`,
	// and therefore, it's recommended to enable this option to get more
	// flexibility in the schema changes.
	WithDropIndex = schema.WithDropIndex
	// WithForeignKeys enables creating foreign-key in schema DDL. This defaults to true.
	WithForeignKeys = schema.WithForeignKeys
)
View Source
var (
	// AnalyticsEventsColumns holds the columns for the "analytics_events" table.
	AnalyticsEventsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeString, Unique: true},
		{Name: "event_name", Type: field.TypeString},
		{Name: "event_category", Type: field.TypeString},
		{Name: "session_id", Type: field.TypeString, Nullable: true},
		{Name: "duration_ms", Type: field.TypeInt64, Nullable: true},
		{Name: "page", Type: field.TypeString, Nullable: true},
		{Name: "component", Type: field.TypeString, Nullable: true},
		{Name: "labels", Type: field.TypeJSON, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
	}
	// AnalyticsEventsTable holds the schema information for the "analytics_events" table.
	AnalyticsEventsTable = &schema.Table{
		Name:       "analytics_events",
		Columns:    AnalyticsEventsColumns,
		PrimaryKey: []*schema.Column{AnalyticsEventsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "analyticsevent_event_name",
				Unique:  false,
				Columns: []*schema.Column{AnalyticsEventsColumns[1]},
			},
			{
				Name:    "analyticsevent_event_category",
				Unique:  false,
				Columns: []*schema.Column{AnalyticsEventsColumns[2]},
			},
			{
				Name:    "analyticsevent_session_id",
				Unique:  false,
				Columns: []*schema.Column{AnalyticsEventsColumns[3]},
			},
			{
				Name:    "analyticsevent_created_at",
				Unique:  false,
				Columns: []*schema.Column{AnalyticsEventsColumns[8]},
			},
			{
				Name:    "analyticsevent_event_name_created_at",
				Unique:  false,
				Columns: []*schema.Column{AnalyticsEventsColumns[1], AnalyticsEventsColumns[8]},
			},
		},
	}
	// ApprovalRulesColumns holds the columns for the "approval_rules" table.
	ApprovalRulesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "rule_id", Type: field.TypeString, Unique: true},
		{Name: "name", Type: field.TypeString},
		{Name: "tool_name", Type: field.TypeString, Nullable: true},
		{Name: "tool_pattern", Type: field.TypeString, Nullable: true},
		{Name: "tool_category", Type: field.TypeString, Nullable: true},
		{Name: "command_pattern", Type: field.TypeString, Nullable: true},
		{Name: "file_pattern", Type: field.TypeString, Nullable: true},
		{Name: "decision", Type: field.TypeInt},
		{Name: "risk_level", Type: field.TypeInt},
		{Name: "reason", Type: field.TypeString, Nullable: true},
		{Name: "alternative", Type: field.TypeString, Nullable: true},
		{Name: "priority", Type: field.TypeInt, Default: 0},
		{Name: "enabled", Type: field.TypeBool, Default: true},
		{Name: "source", Type: field.TypeString, Default: "user"},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
		{Name: "programs", Type: field.TypeJSON, Nullable: true},
		{Name: "subcommands", Type: field.TypeJSON, Nullable: true},
		{Name: "blocked_subcommands", Type: field.TypeJSON, Nullable: true},
		{Name: "required_flags", Type: field.TypeJSON, Nullable: true},
		{Name: "forbidden_flags", Type: field.TypeJSON, Nullable: true},
		{Name: "required_flag_prefixes", Type: field.TypeJSON, Nullable: true},
		{Name: "python_modes", Type: field.TypeJSON, Nullable: true},
		{Name: "safe_python_imports_only", Type: field.TypeBool, Default: false},
		{Name: "require_ci_passing", Type: field.TypeBool, Default: false},
		{Name: "min_session_idle_minutes", Type: field.TypeInt32, Nullable: true, Default: 0},
	}
	// ApprovalRulesTable holds the schema information for the "approval_rules" table.
	ApprovalRulesTable = &schema.Table{
		Name:       "approval_rules",
		Columns:    ApprovalRulesColumns,
		PrimaryKey: []*schema.Column{ApprovalRulesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "approvalrule_rule_id",
				Unique:  false,
				Columns: []*schema.Column{ApprovalRulesColumns[1]},
			},
			{
				Name:    "approvalrule_priority",
				Unique:  false,
				Columns: []*schema.Column{ApprovalRulesColumns[12]},
			},
			{
				Name:    "approvalrule_enabled",
				Unique:  false,
				Columns: []*schema.Column{ApprovalRulesColumns[13]},
			},
		},
	}
	// BacklogActivityNotesColumns holds the columns for the "backlog_activity_notes" table.
	BacklogActivityNotesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "message", Type: field.TypeString},
		{Name: "author_session_uuid", Type: field.TypeString, Nullable: true},
		{Name: "author_session_title", Type: field.TypeString, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "item_id", Type: field.TypeUUID},
	}
	// BacklogActivityNotesTable holds the schema information for the "backlog_activity_notes" table.
	BacklogActivityNotesTable = &schema.Table{
		Name:       "backlog_activity_notes",
		Columns:    BacklogActivityNotesColumns,
		PrimaryKey: []*schema.Column{BacklogActivityNotesColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "backlog_activity_notes_backlog_items_activity_notes",
				Columns:    []*schema.Column{BacklogActivityNotesColumns[5]},
				RefColumns: []*schema.Column{BacklogItemsColumns[0]},
				OnDelete:   schema.Cascade,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "backlogactivitynote_item_id_created_at",
				Unique:  false,
				Columns: []*schema.Column{BacklogActivityNotesColumns[5], BacklogActivityNotesColumns[4]},
			},
		},
	}
	// BacklogItemsColumns holds the columns for the "backlog_items" table.
	BacklogItemsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "title", Type: field.TypeString},
		{Name: "description", Type: field.TypeString, Nullable: true},
		{Name: "acceptance_criteria", Type: field.TypeString, Nullable: true},
		{Name: "priority", Type: field.TypeInt, Default: 3},
		{Name: "status", Type: field.TypeString, Default: "idea"},
		{Name: "repo_path", Type: field.TypeString, Nullable: true},
		{Name: "skip_review_gate", Type: field.TypeBool, Default: false},
		{Name: "skip_planning", Type: field.TypeBool, Default: false},
		{Name: "auto_spawn_session", Type: field.TypeBool, Default: false},
		{Name: "auto_create_pr", Type: field.TypeBool, Default: false},
		{Name: "pipeline_mode", Type: field.TypeString, Default: ""},
		{Name: "category", Type: field.TypeString, Default: ""},
		{Name: "plan_approved", Type: field.TypeBool, Default: false},
		{Name: "plan_approved_at", Type: field.TypeTime, Nullable: true},
		{Name: "queued_at", Type: field.TypeTime, Nullable: true},
		{Name: "queued_autonomous", Type: field.TypeBool, Default: false},
		{Name: "plan_artifacts_path", Type: field.TypeString, Nullable: true},
		{Name: "plan_rejection_reason", Type: field.TypeString, Nullable: true},
		{Name: "plan_rejected_at", Type: field.TypeTime, Nullable: true},
		{Name: "user_modified_fields", Type: field.TypeString, Nullable: true},
		{Name: "notes", Type: field.TypeString, Nullable: true},
		{Name: "external_id", Type: field.TypeString, Nullable: true},
		{Name: "external_url", Type: field.TypeString, Nullable: true},
		{Name: "labels", Type: field.TypeJSON, Nullable: true},
		{Name: "user_modified_status_at", Type: field.TypeTime, Nullable: true},
		{Name: "archived_at", Type: field.TypeTime, Nullable: true},
		{Name: "pr_url", Type: field.TypeString, Nullable: true},
		{Name: "pr_number", Type: field.TypeInt, Nullable: true, Default: 0},
		{Name: "shipped_check_conclusion", Type: field.TypeString, Nullable: true},
		{Name: "shipped_approved_count", Type: field.TypeInt, Nullable: true, Default: 0},
		{Name: "shipped_changes_req_count", Type: field.TypeInt, Nullable: true, Default: 0},
		{Name: "shipped_snapshot_at", Type: field.TypeTime, Nullable: true},
		{Name: "pr_feedback_addressed_at", Type: field.TypeTime, Nullable: true},
		{Name: "github_synced_issue_updated_at", Type: field.TypeTime, Nullable: true},
		{Name: "shipped_file_stats", Type: field.TypeString, Nullable: true},
		{Name: "shipped_snapshot_capture_failed", Type: field.TypeBool, Nullable: true, Default: false},
		{Name: "rework_cap_override", Type: field.TypeInt, Nullable: true},
		{Name: "next_workflow_id", Type: field.TypeUUID, Nullable: true},
		{Name: "chain_fired", Type: field.TypeBool, Default: false},
		{Name: "chained_at", Type: field.TypeTime, Nullable: true},
		{Name: "triggered_by_chain_depth", Type: field.TypeInt, Default: 0},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
		{Name: "item_source_backlog_items", Type: field.TypeUUID, Nullable: true},
	}
	// BacklogItemsTable holds the schema information for the "backlog_items" table.
	BacklogItemsTable = &schema.Table{
		Name:       "backlog_items",
		Columns:    BacklogItemsColumns,
		PrimaryKey: []*schema.Column{BacklogItemsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "backlog_items_item_sources_backlog_items",
				Columns:    []*schema.Column{BacklogItemsColumns[44]},
				RefColumns: []*schema.Column{ItemSourcesColumns[0]},
				OnDelete:   schema.SetNull,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "backlogitem_status_priority",
				Unique:  false,
				Columns: []*schema.Column{BacklogItemsColumns[5], BacklogItemsColumns[4]},
			},
			{
				Name:    "backlogitem_status_updated_at",
				Unique:  false,
				Columns: []*schema.Column{BacklogItemsColumns[5], BacklogItemsColumns[43]},
			},
			{
				Name:    "backlogitem_status_queued_at",
				Unique:  false,
				Columns: []*schema.Column{BacklogItemsColumns[5], BacklogItemsColumns[15]},
			},
			{
				Name:    "backlogitem_external_id",
				Unique:  false,
				Columns: []*schema.Column{BacklogItemsColumns[22]},
			},
			{
				Name:    "backlogitem_status",
				Unique:  false,
				Columns: []*schema.Column{BacklogItemsColumns[5]},
			},
			{
				Name:    "backlogitem_status_chain_fired",
				Unique:  false,
				Columns: []*schema.Column{BacklogItemsColumns[5], BacklogItemsColumns[39]},
			},
		},
	}
	// BacklogItemDependenciesColumns holds the columns for the "backlog_item_dependencies" table.
	BacklogItemDependenciesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "blocker_id", Type: field.TypeUUID},
		{Name: "blocked_id", Type: field.TypeUUID},
	}
	// BacklogItemDependenciesTable holds the schema information for the "backlog_item_dependencies" table.
	BacklogItemDependenciesTable = &schema.Table{
		Name:       "backlog_item_dependencies",
		Columns:    BacklogItemDependenciesColumns,
		PrimaryKey: []*schema.Column{BacklogItemDependenciesColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "backlog_item_dependencies_backlog_items_blocking_dependencies",
				Columns:    []*schema.Column{BacklogItemDependenciesColumns[2]},
				RefColumns: []*schema.Column{BacklogItemsColumns[0]},
				OnDelete:   schema.Cascade,
			},
			{
				Symbol:     "backlog_item_dependencies_backlog_items_blocked_by_dependencies",
				Columns:    []*schema.Column{BacklogItemDependenciesColumns[3]},
				RefColumns: []*schema.Column{BacklogItemsColumns[0]},
				OnDelete:   schema.Cascade,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "backlogitemdependency_blocker_id_blocked_id",
				Unique:  true,
				Columns: []*schema.Column{BacklogItemDependenciesColumns[2], BacklogItemDependenciesColumns[3]},
			},
			{
				Name:    "backlogitemdependency_blocked_id",
				Unique:  false,
				Columns: []*schema.Column{BacklogItemDependenciesColumns[3]},
			},
		},
	}
	// BacklogProgressNotesColumns holds the columns for the "backlog_progress_notes" table.
	BacklogProgressNotesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "criterion_index", Type: field.TypeInt},
		{Name: "note", Type: field.TypeString, Nullable: true},
		{Name: "status", Type: field.TypeString},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "item_id", Type: field.TypeUUID},
	}
	// BacklogProgressNotesTable holds the schema information for the "backlog_progress_notes" table.
	BacklogProgressNotesTable = &schema.Table{
		Name:       "backlog_progress_notes",
		Columns:    BacklogProgressNotesColumns,
		PrimaryKey: []*schema.Column{BacklogProgressNotesColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "backlog_progress_notes_backlog_items_progress_notes",
				Columns:    []*schema.Column{BacklogProgressNotesColumns[5]},
				RefColumns: []*schema.Column{BacklogItemsColumns[0]},
				OnDelete:   schema.Cascade,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "backlogprogressnote_item_id_created_at",
				Unique:  false,
				Columns: []*schema.Column{BacklogProgressNotesColumns[5], BacklogProgressNotesColumns[4]},
			},
		},
	}
	// BacklogStatusEventsColumns holds the columns for the "backlog_status_events" table.
	BacklogStatusEventsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "from_status", Type: field.TypeString},
		{Name: "to_status", Type: field.TypeString},
		{Name: "triggered_by", Type: field.TypeString, Default: "user"},
		{Name: "note", Type: field.TypeString, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "item_id", Type: field.TypeUUID},
	}
	// BacklogStatusEventsTable holds the schema information for the "backlog_status_events" table.
	BacklogStatusEventsTable = &schema.Table{
		Name:       "backlog_status_events",
		Columns:    BacklogStatusEventsColumns,
		PrimaryKey: []*schema.Column{BacklogStatusEventsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "backlog_status_events_backlog_items_status_events",
				Columns:    []*schema.Column{BacklogStatusEventsColumns[6]},
				RefColumns: []*schema.Column{BacklogItemsColumns[0]},
				OnDelete:   schema.Cascade,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "backlogstatusevent_item_id_created_at",
				Unique:  false,
				Columns: []*schema.Column{BacklogStatusEventsColumns[6], BacklogStatusEventsColumns[5]},
			},
		},
	}
	// BacklogStuckStatesColumns holds the columns for the "backlog_stuck_states" table.
	BacklogStuckStatesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "reason", Type: field.TypeString},
		{Name: "first_detected_at", Type: field.TypeTime},
		{Name: "last_checked_at", Type: field.TypeTime},
		{Name: "notified_at", Type: field.TypeTime, Nullable: true},
		{Name: "resolved_at", Type: field.TypeTime, Nullable: true},
		{Name: "snoozed_until", Type: field.TypeTime, Nullable: true},
		{Name: "context", Type: field.TypeString, Nullable: true},
		{Name: "remediation_attempts", Type: field.TypeInt32, Default: 0},
		{Name: "next_remediation_at", Type: field.TypeTime, Nullable: true},
		{Name: "grace_boot_time", Type: field.TypeTime, Nullable: true},
		{Name: "item_id", Type: field.TypeUUID},
	}
	// BacklogStuckStatesTable holds the schema information for the "backlog_stuck_states" table.
	BacklogStuckStatesTable = &schema.Table{
		Name:       "backlog_stuck_states",
		Columns:    BacklogStuckStatesColumns,
		PrimaryKey: []*schema.Column{BacklogStuckStatesColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "backlog_stuck_states_backlog_items_stuck_states",
				Columns:    []*schema.Column{BacklogStuckStatesColumns[11]},
				RefColumns: []*schema.Column{BacklogItemsColumns[0]},
				OnDelete:   schema.Cascade,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "backlogstuckstate_item_id_reason",
				Unique:  true,
				Columns: []*schema.Column{BacklogStuckStatesColumns[11], BacklogStuckStatesColumns[1]},
			},
		},
	}
	// ClassificationAnalyticsColumns holds the columns for the "classification_analytics" table.
	ClassificationAnalyticsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "analytics_id", Type: field.TypeString, Unique: true},
		{Name: "session_id", Type: field.TypeString, Nullable: true},
		{Name: "tool_name", Type: field.TypeString},
		{Name: "command_preview", Type: field.TypeString, Nullable: true},
		{Name: "cwd", Type: field.TypeString, Nullable: true},
		{Name: "decision", Type: field.TypeString},
		{Name: "risk_level", Type: field.TypeString},
		{Name: "rule_id", Type: field.TypeString, Nullable: true},
		{Name: "rule_name", Type: field.TypeString, Nullable: true},
		{Name: "reason", Type: field.TypeString, Nullable: true},
		{Name: "alternative", Type: field.TypeString, Nullable: true},
		{Name: "duration_ms", Type: field.TypeInt64, Default: 0},
		{Name: "approval_id", Type: field.TypeString, Nullable: true},
		{Name: "command_program", Type: field.TypeString, Nullable: true},
		{Name: "command_category", Type: field.TypeString, Nullable: true},
		{Name: "command_subcategory", Type: field.TypeString, Nullable: true},
		{Name: "python_imports", Type: field.TypeJSON, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
	}
	// ClassificationAnalyticsTable holds the schema information for the "classification_analytics" table.
	ClassificationAnalyticsTable = &schema.Table{
		Name:       "classification_analytics",
		Columns:    ClassificationAnalyticsColumns,
		PrimaryKey: []*schema.Column{ClassificationAnalyticsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "classificationanalytics_session_id",
				Unique:  false,
				Columns: []*schema.Column{ClassificationAnalyticsColumns[2]},
			},
			{
				Name:    "classificationanalytics_decision",
				Unique:  false,
				Columns: []*schema.Column{ClassificationAnalyticsColumns[6]},
			},
			{
				Name:    "classificationanalytics_risk_level",
				Unique:  false,
				Columns: []*schema.Column{ClassificationAnalyticsColumns[7]},
			},
			{
				Name:    "classificationanalytics_rule_id",
				Unique:  false,
				Columns: []*schema.Column{ClassificationAnalyticsColumns[8]},
			},
			{
				Name:    "classificationanalytics_created_at",
				Unique:  false,
				Columns: []*schema.Column{ClassificationAnalyticsColumns[18]},
			},
			{
				Name:    "classificationanalytics_command_program_created_at",
				Unique:  false,
				Columns: []*schema.Column{ClassificationAnalyticsColumns[14], ClassificationAnalyticsColumns[18]},
			},
		},
	}
	// ClaudeMetadataColumns holds the columns for the "claude_metadata" table.
	ClaudeMetadataColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "key", Type: field.TypeString},
		{Name: "value", Type: field.TypeString},
		{Name: "claude_session_metadata", Type: field.TypeInt},
	}
	// ClaudeMetadataTable holds the schema information for the "claude_metadata" table.
	ClaudeMetadataTable = &schema.Table{
		Name:       "claude_metadata",
		Columns:    ClaudeMetadataColumns,
		PrimaryKey: []*schema.Column{ClaudeMetadataColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "claude_metadata_claude_sessions_metadata",
				Columns:    []*schema.Column{ClaudeMetadataColumns[3]},
				RefColumns: []*schema.Column{ClaudeSessionsColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
	}
	// ClaudeSessionsColumns holds the columns for the "claude_sessions" table.
	ClaudeSessionsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "claude_session_id", Type: field.TypeString},
		{Name: "conversation_id", Type: field.TypeString, Nullable: true},
		{Name: "project_name", Type: field.TypeString, Nullable: true},
		{Name: "last_attached", Type: field.TypeTime, Nullable: true},
		{Name: "auto_reattach", Type: field.TypeBool, Default: false},
		{Name: "preferred_session_name", Type: field.TypeString, Nullable: true},
		{Name: "create_new_on_missing", Type: field.TypeBool, Default: false},
		{Name: "show_session_selector", Type: field.TypeBool, Default: false},
		{Name: "session_timeout_minutes", Type: field.TypeInt, Default: 30},
		{Name: "session_claude_session", Type: field.TypeInt, Unique: true},
	}
	// ClaudeSessionsTable holds the schema information for the "claude_sessions" table.
	ClaudeSessionsTable = &schema.Table{
		Name:       "claude_sessions",
		Columns:    ClaudeSessionsColumns,
		PrimaryKey: []*schema.Column{ClaudeSessionsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "claude_sessions_sessions_claude_session",
				Columns:    []*schema.Column{ClaudeSessionsColumns[10]},
				RefColumns: []*schema.Column{SessionsColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
	}
	// DiffStatsColumns holds the columns for the "diff_stats" table.
	DiffStatsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "added", Type: field.TypeInt, Default: 0},
		{Name: "removed", Type: field.TypeInt, Default: 0},
		{Name: "content", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "session_diff_stats", Type: field.TypeInt, Unique: true},
	}
	// DiffStatsTable holds the schema information for the "diff_stats" table.
	DiffStatsTable = &schema.Table{
		Name:       "diff_stats",
		Columns:    DiffStatsColumns,
		PrimaryKey: []*schema.Column{DiffStatsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "diff_stats_sessions_diff_stats",
				Columns:    []*schema.Column{DiffStatsColumns[4]},
				RefColumns: []*schema.Column{SessionsColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
	}
	// ErrorEventsColumns holds the columns for the "error_events" table.
	ErrorEventsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "fingerprint", Type: field.TypeString, Unique: true},
		{Name: "error_type", Type: field.TypeString},
		{Name: "message", Type: field.TypeString},
		{Name: "stack_trace", Type: field.TypeString, Size: 2147483647},
		{Name: "rpc_procedure", Type: field.TypeString, Nullable: true},
		{Name: "occurrence_count", Type: field.TypeInt, Default: 1},
		{Name: "first_seen", Type: field.TypeTime},
		{Name: "last_seen", Type: field.TypeTime},
		{Name: "acknowledged", Type: field.TypeBool, Default: false},
		{Name: "acknowledged_at", Type: field.TypeTime, Nullable: true},
	}
	// ErrorEventsTable holds the schema information for the "error_events" table.
	ErrorEventsTable = &schema.Table{
		Name:       "error_events",
		Columns:    ErrorEventsColumns,
		PrimaryKey: []*schema.Column{ErrorEventsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "errorevent_last_seen",
				Unique:  false,
				Columns: []*schema.Column{ErrorEventsColumns[8]},
			},
			{
				Name:    "errorevent_acknowledged",
				Unique:  false,
				Columns: []*schema.Column{ErrorEventsColumns[9]},
			},
		},
	}
	// EscapeEventsColumns holds the columns for the "escape_events" table.
	EscapeEventsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeString, Unique: true},
		{Name: "session_id", Type: field.TypeString},
		{Name: "stage", Type: field.TypeString},
		{Name: "sequence_type", Type: field.TypeString},
		{Name: "sequence_subtype", Type: field.TypeString, Nullable: true},
		{Name: "byte_length", Type: field.TypeInt},
		{Name: "payload_hash", Type: field.TypeString, Nullable: true},
		{Name: "raw_bytes", Type: field.TypeBytes, Nullable: true},
		{Name: "mangled", Type: field.TypeBool, Default: false},
		{Name: "mangle_type", Type: field.TypeString, Nullable: true},
		{Name: "wall_time", Type: field.TypeTime},
		{Name: "session_seq", Type: field.TypeInt64},
	}
	// EscapeEventsTable holds the schema information for the "escape_events" table.
	EscapeEventsTable = &schema.Table{
		Name:       "escape_events",
		Columns:    EscapeEventsColumns,
		PrimaryKey: []*schema.Column{EscapeEventsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "escapeevent_session_id",
				Unique:  false,
				Columns: []*schema.Column{EscapeEventsColumns[1]},
			},
			{
				Name:    "escapeevent_session_id_stage",
				Unique:  false,
				Columns: []*schema.Column{EscapeEventsColumns[1], EscapeEventsColumns[2]},
			},
			{
				Name:    "escapeevent_session_id_session_seq",
				Unique:  false,
				Columns: []*schema.Column{EscapeEventsColumns[1], EscapeEventsColumns[11]},
			},
			{
				Name:    "escapeevent_wall_time",
				Unique:  false,
				Columns: []*schema.Column{EscapeEventsColumns[10]},
			},
			{
				Name:    "escapeevent_mangled",
				Unique:  false,
				Columns: []*schema.Column{EscapeEventsColumns[8]},
			},
			{
				Name:    "escapeevent_sequence_type",
				Unique:  false,
				Columns: []*schema.Column{EscapeEventsColumns[3]},
			},
		},
	}
	// ItemSessionsColumns holds the columns for the "item_sessions" table.
	ItemSessionsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "session_uuid", Type: field.TypeString},
		{Name: "session_role", Type: field.TypeString},
		{Name: "started_at", Type: field.TypeTime, Nullable: true},
		{Name: "ended_at", Type: field.TypeTime, Nullable: true},
		{Name: "end_reason", Type: field.TypeString, Nullable: true, Default: ""},
		{Name: "failure_capture_path", Type: field.TypeString, Nullable: true, Default: ""},
		{Name: "ac_snapshot", Type: field.TypeString, Nullable: true},
		{Name: "pipeline_mode_snapshot", Type: field.TypeString, Default: ""},
		{Name: "pipeline_mode_snapshot_hash", Type: field.TypeString, Default: ""},
		{Name: "triage_result", Type: field.TypeString, Nullable: true},
		{Name: "verification_notes", Type: field.TypeString, Nullable: true},
		{Name: "base_commit_sha", Type: field.TypeString, Nullable: true, Default: ""},
		{Name: "last_commit_sha", Type: field.TypeString, Nullable: true},
		{Name: "last_commit_at", Type: field.TypeTime, Nullable: true},
		{Name: "last_commit_message", Type: field.TypeString, Nullable: true},
		{Name: "commit_count_since_spawn", Type: field.TypeInt, Default: 0},
		{Name: "last_file_touch_at", Type: field.TypeTime, Nullable: true},
		{Name: "last_progress_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "estimated_cost_usd", Type: field.TypeFloat64, Nullable: true, Default: 0},
		{Name: "claimant_host_id", Type: field.TypeString, Nullable: true, Default: ""},
		{Name: "backlog_item_item_sessions", Type: field.TypeUUID},
	}
	// ItemSessionsTable holds the schema information for the "item_sessions" table.
	ItemSessionsTable = &schema.Table{
		Name:       "item_sessions",
		Columns:    ItemSessionsColumns,
		PrimaryKey: []*schema.Column{ItemSessionsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "item_sessions_backlog_items_item_sessions",
				Columns:    []*schema.Column{ItemSessionsColumns[22]},
				RefColumns: []*schema.Column{BacklogItemsColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "itemsession_session_uuid",
				Unique:  false,
				Columns: []*schema.Column{ItemSessionsColumns[1]},
			},
			{
				Name:    "itemsession_created_at_backlog_item_item_sessions",
				Unique:  false,
				Columns: []*schema.Column{ItemSessionsColumns[19], ItemSessionsColumns[22]},
			},
		},
	}
	// ItemSourcesColumns holds the columns for the "item_sources" table.
	ItemSourcesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "plugin_id", Type: field.TypeString},
		{Name: "display_name", Type: field.TypeString},
		{Name: "config", Type: field.TypeString, Nullable: true},
		{Name: "enabled", Type: field.TypeBool, Default: true},
		{Name: "forward_sync_enabled", Type: field.TypeBool, Default: false},
		{Name: "backward_sync_enabled", Type: field.TypeBool, Default: false},
		{Name: "forward_sync_close_label", Type: field.TypeString, Nullable: true},
		{Name: "sync_cursor", Type: field.TypeString, Nullable: true},
		{Name: "last_synced_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// ItemSourcesTable holds the schema information for the "item_sources" table.
	ItemSourcesTable = &schema.Table{
		Name:       "item_sources",
		Columns:    ItemSourcesColumns,
		PrimaryKey: []*schema.Column{ItemSourcesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "itemsource_plugin_id",
				Unique:  false,
				Columns: []*schema.Column{ItemSourcesColumns[1]},
			},
			{
				Name:    "itemsource_enabled",
				Unique:  false,
				Columns: []*schema.Column{ItemSourcesColumns[4]},
			},
		},
	}
	// PipelineModesColumns holds the columns for the "pipeline_modes" table.
	PipelineModesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "slug", Type: field.TypeString, Unique: true},
		{Name: "name", Type: field.TypeString},
		{Name: "description", Type: field.TypeString, Nullable: true},
		{Name: "enabled", Type: field.TypeBool, Default: true},
		{Name: "status_command_template", Type: field.TypeString},
		{Name: "done_command_template", Type: field.TypeString},
		{Name: "fail_command_template", Type: field.TypeString},
		{Name: "review_command_template", Type: field.TypeString},
		{Name: "ship_command_template", Type: field.TypeString},
		{Name: "help_command_template", Type: field.TypeString},
		{Name: "triage_prompt_template", Type: field.TypeString},
		{Name: "review_prompt_template", Type: field.TypeString},
		{Name: "initial_prompt_template", Type: field.TypeString},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// PipelineModesTable holds the schema information for the "pipeline_modes" table.
	PipelineModesTable = &schema.Table{
		Name:       "pipeline_modes",
		Columns:    PipelineModesColumns,
		PrimaryKey: []*schema.Column{PipelineModesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "pipelinemode_slug",
				Unique:  false,
				Columns: []*schema.Column{PipelineModesColumns[1]},
			},
			{
				Name:    "pipelinemode_enabled",
				Unique:  false,
				Columns: []*schema.Column{PipelineModesColumns[4]},
			},
			{
				Name:    "pipelinemode_created_at",
				Unique:  false,
				Columns: []*schema.Column{PipelineModesColumns[14]},
			},
		},
	}
	// ProjectsColumns holds the columns for the "projects" table.
	ProjectsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "name", Type: field.TypeString, Unique: true},
		{Name: "description", Type: field.TypeString, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// ProjectsTable holds the schema information for the "projects" table.
	ProjectsTable = &schema.Table{
		Name:       "projects",
		Columns:    ProjectsColumns,
		PrimaryKey: []*schema.Column{ProjectsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "project_name",
				Unique:  false,
				Columns: []*schema.Column{ProjectsColumns[1]},
			},
		},
	}
	// ReviewVerdictsColumns holds the columns for the "review_verdicts" table.
	ReviewVerdictsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "overall_outcome", Type: field.TypeString},
		{Name: "per_criterion", Type: field.TypeString, Nullable: true},
		{Name: "summary", Type: field.TypeString, Nullable: true},
		{Name: "diff_hash", Type: field.TypeString, Nullable: true},
		{Name: "prompt_hash", Type: field.TypeString, Nullable: true},
		{Name: "diff_token_count", Type: field.TypeInt, Nullable: true},
		{Name: "diff_truncated", Type: field.TypeBool, Default: false},
		{Name: "override_by", Type: field.TypeString, Nullable: true},
		{Name: "override_reason", Type: field.TypeString, Nullable: true},
		{Name: "override_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "item_session_review_verdict", Type: field.TypeUUID, Unique: true},
	}
	// ReviewVerdictsTable holds the schema information for the "review_verdicts" table.
	ReviewVerdictsTable = &schema.Table{
		Name:       "review_verdicts",
		Columns:    ReviewVerdictsColumns,
		PrimaryKey: []*schema.Column{ReviewVerdictsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "review_verdicts_item_sessions_review_verdict",
				Columns:    []*schema.Column{ReviewVerdictsColumns[12]},
				RefColumns: []*schema.Column{ItemSessionsColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "reviewverdict_item_session_review_verdict",
				Unique:  true,
				Columns: []*schema.Column{ReviewVerdictsColumns[12]},
			},
		},
	}
	// SessionsColumns holds the columns for the "sessions" table.
	SessionsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "title", Type: field.TypeString, Unique: true},
		{Name: "uuid", Type: field.TypeString, Nullable: true, Default: ""},
		{Name: "path", Type: field.TypeString},
		{Name: "working_dir", Type: field.TypeString, Nullable: true},
		{Name: "branch", Type: field.TypeString, Nullable: true},
		{Name: "status", Type: field.TypeInt},
		{Name: "height", Type: field.TypeInt, Nullable: true},
		{Name: "width", Type: field.TypeInt, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
		{Name: "auto_yes", Type: field.TypeBool, Default: false},
		{Name: "auto_approve", Type: field.TypeBool, Default: false},
		{Name: "autonomous_mode", Type: field.TypeBool, Default: false},
		{Name: "prompt", Type: field.TypeString, Nullable: true},
		{Name: "program", Type: field.TypeString},
		{Name: "existing_worktree", Type: field.TypeString, Nullable: true},
		{Name: "category", Type: field.TypeString, Nullable: true},
		{Name: "is_expanded", Type: field.TypeBool, Default: true},
		{Name: "session_type", Type: field.TypeString, Nullable: true},
		{Name: "tmux_prefix", Type: field.TypeString, Nullable: true},
		{Name: "last_terminal_update", Type: field.TypeTime, Nullable: true},
		{Name: "last_meaningful_output", Type: field.TypeTime, Nullable: true},
		{Name: "last_output_signature", Type: field.TypeString, Nullable: true},
		{Name: "last_added_to_queue", Type: field.TypeTime, Nullable: true},
		{Name: "last_viewed", Type: field.TypeTime, Nullable: true},
		{Name: "last_acknowledged", Type: field.TypeTime, Nullable: true},
		{Name: "mcp_server_url", Type: field.TypeString, Nullable: true},
		{Name: "initial_prompt", Type: field.TypeString, Nullable: true},
		{Name: "one_shot", Type: field.TypeBool, Default: false},
		{Name: "last_user_response", Type: field.TypeTime, Nullable: true},
		{Name: "processing_grace_until", Type: field.TypeTime, Nullable: true},
		{Name: "last_prompt_detected", Type: field.TypeTime, Nullable: true},
		{Name: "last_prompt_signature", Type: field.TypeString, Nullable: true},
		{Name: "hidden", Type: field.TypeBool, Default: false},
		{Name: "pause_reason", Type: field.TypeString, Nullable: true},
		{Name: "exit_reason", Type: field.TypeString, Nullable: true},
		{Name: "workflow_id", Type: field.TypeString, Nullable: true},
		{Name: "archived_at", Type: field.TypeTime, Nullable: true},
		{Name: "github_pr_url", Type: field.TypeString, Nullable: true},
		{Name: "github_pr_number", Type: field.TypeInt, Nullable: true, Default: 0},
		{Name: "github_owner", Type: field.TypeString, Nullable: true},
		{Name: "github_repo", Type: field.TypeString, Nullable: true},
		{Name: "session_artifacts", Type: field.TypeString, Nullable: true, Default: ""},
		{Name: "note", Type: field.TypeString, Nullable: true, Size: 10000, Default: ""},
		{Name: "project_sessions", Type: field.TypeInt, Nullable: true},
	}
	// SessionsTable holds the schema information for the "sessions" table.
	SessionsTable = &schema.Table{
		Name:       "sessions",
		Columns:    SessionsColumns,
		PrimaryKey: []*schema.Column{SessionsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "sessions_projects_sessions",
				Columns:    []*schema.Column{SessionsColumns[45]},
				RefColumns: []*schema.Column{ProjectsColumns[0]},
				OnDelete:   schema.SetNull,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "session_title",
				Unique:  false,
				Columns: []*schema.Column{SessionsColumns[1]},
			},
			{
				Name:    "session_status",
				Unique:  false,
				Columns: []*schema.Column{SessionsColumns[6]},
			},
			{
				Name:    "session_category",
				Unique:  false,
				Columns: []*schema.Column{SessionsColumns[17]},
			},
			{
				Name:    "session_last_meaningful_output",
				Unique:  false,
				Columns: []*schema.Column{SessionsColumns[22]},
			},
			{
				Name:    "session_last_acknowledged",
				Unique:  false,
				Columns: []*schema.Column{SessionsColumns[26]},
			},
			{
				Name:    "session_created_at",
				Unique:  false,
				Columns: []*schema.Column{SessionsColumns[9]},
			},
			{
				Name:    "session_workflow_id",
				Unique:  false,
				Columns: []*schema.Column{SessionsColumns[37]},
			},
			{
				Name:    "session_archived_at",
				Unique:  false,
				Columns: []*schema.Column{SessionsColumns[38]},
			},
		},
	}
	// SessionGoalsColumns holds the columns for the "session_goals" table.
	SessionGoalsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "session_uuid", Type: field.TypeString},
		{Name: "goal", Type: field.TypeString, Size: 2000},
		{Name: "status", Type: field.TypeString, Default: "idle"},
		{Name: "tasks", Type: field.TypeString, Nullable: true},
		{Name: "set_by", Type: field.TypeString, Nullable: true},
		{Name: "workspace_key", Type: field.TypeString, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// SessionGoalsTable holds the schema information for the "session_goals" table.
	SessionGoalsTable = &schema.Table{
		Name:       "session_goals",
		Columns:    SessionGoalsColumns,
		PrimaryKey: []*schema.Column{SessionGoalsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "sessiongoal_session_uuid",
				Unique:  true,
				Columns: []*schema.Column{SessionGoalsColumns[1]},
			},
			{
				Name:    "sessiongoal_status",
				Unique:  false,
				Columns: []*schema.Column{SessionGoalsColumns[3]},
			},
			{
				Name:    "sessiongoal_workspace_key",
				Unique:  false,
				Columns: []*schema.Column{SessionGoalsColumns[6]},
			},
		},
	}
	// SessionSummariesColumns holds the columns for the "session_summaries" table.
	SessionSummariesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeString, Unique: true},
		{Name: "session_id", Type: field.TypeString, Unique: true},
		{Name: "session_title", Type: field.TypeString, Nullable: true},
		{Name: "status", Type: field.TypeString, Default: "pending"},
		{Name: "narrative", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "narrative_fallback_used", Type: field.TypeBool, Default: false},
		{Name: "diff_files_changed", Type: field.TypeInt, Default: 0},
		{Name: "diff_added", Type: field.TypeInt, Default: 0},
		{Name: "diff_removed", Type: field.TypeInt, Default: 0},
		{Name: "decisions_auto_approved", Type: field.TypeInt, Default: 0},
		{Name: "decisions_manually_approved", Type: field.TypeInt, Default: 0},
		{Name: "decisions_denied", Type: field.TypeInt, Default: 0},
		{Name: "decisions_review_queue_resolved", Type: field.TypeInt, Default: 0},
		{Name: "decisions_still_open", Type: field.TypeInt, Default: 0},
		{Name: "session_started_at", Type: field.TypeTime, Nullable: true},
		{Name: "session_stopped_at", Type: field.TypeTime, Nullable: true},
		{Name: "duration_ms", Type: field.TypeInt64, Nullable: true},
		{Name: "total_tokens", Type: field.TypeInt64, Nullable: true},
		{Name: "estimated_cost_usd", Type: field.TypeFloat64, Nullable: true},
		{Name: "cost_data_unavailable", Type: field.TypeBool, Default: false},
		{Name: "markdown", Type: field.TypeString, Nullable: true, Size: 2147483647},
		{Name: "error_message", Type: field.TypeString, Nullable: true},
		{Name: "error_stage", Type: field.TypeString, Nullable: true},
		{Name: "generation_started_at", Type: field.TypeTime, Nullable: true},
		{Name: "generated_at", Type: field.TypeTime, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
	}
	// SessionSummariesTable holds the schema information for the "session_summaries" table.
	SessionSummariesTable = &schema.Table{
		Name:       "session_summaries",
		Columns:    SessionSummariesColumns,
		PrimaryKey: []*schema.Column{SessionSummariesColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "sessionsummary_status",
				Unique:  false,
				Columns: []*schema.Column{SessionSummariesColumns[3]},
			},
		},
	}
	// ShellsColumns holds the columns for the "shells" table.
	ShellsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeString},
		{Name: "name", Type: field.TypeString},
		{Name: "command", Type: field.TypeString, Default: ""},
		{Name: "working_dir", Type: field.TypeString, Nullable: true},
		{Name: "tmux_session_name", Type: field.TypeString},
		{Name: "status", Type: field.TypeString, Default: "running"},
		{Name: "exit_code", Type: field.TypeInt, Nullable: true},
		{Name: "order_index", Type: field.TypeInt, Default: 0},
		{Name: "started_at", Type: field.TypeTime},
		{Name: "stopped_at", Type: field.TypeTime, Nullable: true},
		{Name: "session_shells", Type: field.TypeInt},
	}
	// ShellsTable holds the schema information for the "shells" table.
	ShellsTable = &schema.Table{
		Name:       "shells",
		Columns:    ShellsColumns,
		PrimaryKey: []*schema.Column{ShellsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "shells_sessions_shells",
				Columns:    []*schema.Column{ShellsColumns[10]},
				RefColumns: []*schema.Column{SessionsColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "shell_status",
				Unique:  false,
				Columns: []*schema.Column{ShellsColumns[5]},
			},
			{
				Name:    "shell_order_index",
				Unique:  false,
				Columns: []*schema.Column{ShellsColumns[7]},
			},
		},
	}
	// SourceSyncEventsColumns holds the columns for the "source_sync_events" table.
	SourceSyncEventsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "started_at", Type: field.TypeTime},
		{Name: "finished_at", Type: field.TypeTime, Nullable: true},
		{Name: "items_created", Type: field.TypeInt, Default: 0},
		{Name: "items_updated", Type: field.TypeInt, Default: 0},
		{Name: "items_skipped", Type: field.TypeInt, Default: 0},
		{Name: "items_errored", Type: field.TypeInt, Default: 0},
		{Name: "error_message", Type: field.TypeString, Nullable: true},
		{Name: "cursor_after", Type: field.TypeString, Nullable: true},
		{Name: "item_source_sync_events", Type: field.TypeUUID},
	}
	// SourceSyncEventsTable holds the schema information for the "source_sync_events" table.
	SourceSyncEventsTable = &schema.Table{
		Name:       "source_sync_events",
		Columns:    SourceSyncEventsColumns,
		PrimaryKey: []*schema.Column{SourceSyncEventsColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "source_sync_events_item_sources_sync_events",
				Columns:    []*schema.Column{SourceSyncEventsColumns[9]},
				RefColumns: []*schema.Column{ItemSourcesColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
		Indexes: []*schema.Index{
			{
				Name:    "sourcesyncevent_item_source_sync_events",
				Unique:  false,
				Columns: []*schema.Column{SourceSyncEventsColumns[9]},
			},
		},
	}
	// TagsColumns holds the columns for the "tags" table.
	TagsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "name", Type: field.TypeString, Unique: true},
	}
	// TagsTable holds the schema information for the "tags" table.
	TagsTable = &schema.Table{
		Name:       "tags",
		Columns:    TagsColumns,
		PrimaryKey: []*schema.Column{TagsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "tag_name",
				Unique:  false,
				Columns: []*schema.Column{TagsColumns[1]},
			},
		},
	}
	// TriggerFireEventsColumns holds the columns for the "trigger_fire_events" table.
	TriggerFireEventsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "workflow_id", Type: field.TypeUUID, Nullable: true},
		{Name: "outcome", Type: field.TypeString},
		{Name: "delivery_id", Type: field.TypeString, Nullable: true},
		{Name: "session_id", Type: field.TypeString, Nullable: true},
		{Name: "error_message", Type: field.TypeString, Nullable: true},
		{Name: "created_at", Type: field.TypeTime},
	}
	// TriggerFireEventsTable holds the schema information for the "trigger_fire_events" table.
	TriggerFireEventsTable = &schema.Table{
		Name:       "trigger_fire_events",
		Columns:    TriggerFireEventsColumns,
		PrimaryKey: []*schema.Column{TriggerFireEventsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "triggerfireevent_created_at",
				Unique:  false,
				Columns: []*schema.Column{TriggerFireEventsColumns[6]},
			},
			{
				Name:    "triggerfireevent_workflow_id_delivery_id",
				Unique:  true,
				Columns: []*schema.Column{TriggerFireEventsColumns[1], TriggerFireEventsColumns[3]},
			},
			{
				Name:    "triggerfireevent_workflow_id_created_at",
				Unique:  false,
				Columns: []*schema.Column{TriggerFireEventsColumns[1], TriggerFireEventsColumns[6]},
			},
		},
	}
	// WorkflowsColumns holds the columns for the "workflows" table.
	WorkflowsColumns = []*schema.Column{
		{Name: "id", Type: field.TypeUUID},
		{Name: "slug", Type: field.TypeString, Unique: true},
		{Name: "name", Type: field.TypeString},
		{Name: "description", Type: field.TypeString, Nullable: true},
		{Name: "command", Type: field.TypeString},
		{Name: "target_directory", Type: field.TypeString, Nullable: true},
		{Name: "input_template", Type: field.TypeString, Nullable: true},
		{Name: "session_type", Type: field.TypeString, Nullable: true, Default: "directory"},
		{Name: "model", Type: field.TypeString, Nullable: true},
		{Name: "agent_type", Type: field.TypeString, Nullable: true},
		{Name: "cron_expression", Type: field.TypeString, Nullable: true},
		{Name: "cron_enabled", Type: field.TypeBool, Default: false},
		{Name: "enabled", Type: field.TypeBool, Default: true},
		{Name: "created_at", Type: field.TypeTime},
		{Name: "updated_at", Type: field.TypeTime},
		{Name: "keep_sessions", Type: field.TypeInt, Nullable: true, Default: 0},
		{Name: "archive_after_hours", Type: field.TypeInt, Nullable: true, Default: 0},
		{Name: "trigger_type", Type: field.TypeString, Nullable: true, Default: "manual"},
		{Name: "github_repo", Type: field.TypeString, Nullable: true},
		{Name: "github_branch", Type: field.TypeString, Nullable: true},
		{Name: "webhook_slug", Type: field.TypeString, Unique: true, Nullable: true},
		{Name: "webhook_secret_encrypted", Type: field.TypeString, Nullable: true},
		{Name: "event_filter", Type: field.TypeString, Nullable: true},
		{Name: "label_filter", Type: field.TypeString, Nullable: true},
		{Name: "prompt_template", Type: field.TypeString, Nullable: true},
		{Name: "last_fired_at", Type: field.TypeTime, Nullable: true},
	}
	// WorkflowsTable holds the schema information for the "workflows" table.
	WorkflowsTable = &schema.Table{
		Name:       "workflows",
		Columns:    WorkflowsColumns,
		PrimaryKey: []*schema.Column{WorkflowsColumns[0]},
		Indexes: []*schema.Index{
			{
				Name:    "workflow_slug",
				Unique:  false,
				Columns: []*schema.Column{WorkflowsColumns[1]},
			},
			{
				Name:    "workflow_cron_enabled",
				Unique:  false,
				Columns: []*schema.Column{WorkflowsColumns[11]},
			},
			{
				Name:    "workflow_created_at",
				Unique:  false,
				Columns: []*schema.Column{WorkflowsColumns[13]},
			},
			{
				Name:    "workflow_webhook_slug",
				Unique:  false,
				Columns: []*schema.Column{WorkflowsColumns[20]},
			},
			{
				Name:    "workflow_trigger_type",
				Unique:  false,
				Columns: []*schema.Column{WorkflowsColumns[17]},
			},
		},
	}
	// WorktreesColumns holds the columns for the "worktrees" table.
	WorktreesColumns = []*schema.Column{
		{Name: "id", Type: field.TypeInt, Increment: true},
		{Name: "repo_path", Type: field.TypeString},
		{Name: "worktree_path", Type: field.TypeString},
		{Name: "session_name", Type: field.TypeString},
		{Name: "branch_name", Type: field.TypeString},
		{Name: "base_commit_sha", Type: field.TypeString},
		{Name: "session_worktree", Type: field.TypeInt, Unique: true},
	}
	// WorktreesTable holds the schema information for the "worktrees" table.
	WorktreesTable = &schema.Table{
		Name:       "worktrees",
		Columns:    WorktreesColumns,
		PrimaryKey: []*schema.Column{WorktreesColumns[0]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "worktrees_sessions_worktree",
				Columns:    []*schema.Column{WorktreesColumns[6]},
				RefColumns: []*schema.Column{SessionsColumns[0]},
				OnDelete:   schema.NoAction,
			},
		},
	}
	// BacklogItemSessionsColumns holds the columns for the "backlog_item_sessions" table.
	BacklogItemSessionsColumns = []*schema.Column{
		{Name: "backlog_item_id", Type: field.TypeUUID},
		{Name: "session_id", Type: field.TypeInt},
	}
	// BacklogItemSessionsTable holds the schema information for the "backlog_item_sessions" table.
	BacklogItemSessionsTable = &schema.Table{
		Name:       "backlog_item_sessions",
		Columns:    BacklogItemSessionsColumns,
		PrimaryKey: []*schema.Column{BacklogItemSessionsColumns[0], BacklogItemSessionsColumns[1]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "backlog_item_sessions_backlog_item_id",
				Columns:    []*schema.Column{BacklogItemSessionsColumns[0]},
				RefColumns: []*schema.Column{BacklogItemsColumns[0]},
				OnDelete:   schema.Cascade,
			},
			{
				Symbol:     "backlog_item_sessions_session_id",
				Columns:    []*schema.Column{BacklogItemSessionsColumns[1]},
				RefColumns: []*schema.Column{SessionsColumns[0]},
				OnDelete:   schema.Cascade,
			},
		},
	}
	// SessionTagsColumns holds the columns for the "session_tags" table.
	SessionTagsColumns = []*schema.Column{
		{Name: "session_id", Type: field.TypeInt},
		{Name: "tag_id", Type: field.TypeInt},
	}
	// SessionTagsTable holds the schema information for the "session_tags" table.
	SessionTagsTable = &schema.Table{
		Name:       "session_tags",
		Columns:    SessionTagsColumns,
		PrimaryKey: []*schema.Column{SessionTagsColumns[0], SessionTagsColumns[1]},
		ForeignKeys: []*schema.ForeignKey{
			{
				Symbol:     "session_tags_session_id",
				Columns:    []*schema.Column{SessionTagsColumns[0]},
				RefColumns: []*schema.Column{SessionsColumns[0]},
				OnDelete:   schema.Cascade,
			},
			{
				Symbol:     "session_tags_tag_id",
				Columns:    []*schema.Column{SessionTagsColumns[1]},
				RefColumns: []*schema.Column{TagsColumns[0]},
				OnDelete:   schema.Cascade,
			},
		},
	}
	// Tables holds all the tables in the schema.
	Tables = []*schema.Table{
		AnalyticsEventsTable,
		ApprovalRulesTable,
		BacklogActivityNotesTable,
		BacklogItemsTable,
		BacklogItemDependenciesTable,
		BacklogProgressNotesTable,
		BacklogStatusEventsTable,
		BacklogStuckStatesTable,
		ClassificationAnalyticsTable,
		ClaudeMetadataTable,
		ClaudeSessionsTable,
		DiffStatsTable,
		ErrorEventsTable,
		EscapeEventsTable,
		ItemSessionsTable,
		ItemSourcesTable,
		PipelineModesTable,
		ProjectsTable,
		ReviewVerdictsTable,
		SessionsTable,
		SessionGoalsTable,
		SessionSummariesTable,
		ShellsTable,
		SourceSyncEventsTable,
		TagsTable,
		TriggerFireEventsTable,
		WorkflowsTable,
		WorktreesTable,
		BacklogItemSessionsTable,
		SessionTagsTable,
	}
)

Functions

func Create

func Create(ctx context.Context, s *Schema, tables []*schema.Table, opts ...schema.MigrateOption) error

Create creates all table resources using the given schema driver.

Types

type Schema

type Schema struct {
	// contains filtered or unexported fields
}

Schema is the API for creating, migrating and dropping a schema.

func NewSchema

func NewSchema(drv dialect.Driver) *Schema

NewSchema creates a new schema client.

func (*Schema) Create

func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error

Create creates all schema resources.

func (*Schema) WriteTo

func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error

WriteTo writes the schema changes to w instead of running them against the database.

if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil {
	log.Fatal(err)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL