import { boolean, integer, pgTable, text, timestamp } from "drizzle-orm/pg-core";
import { repositories } from "./repositories";
import { users } from "./users";
export const autoMergeRules = pgTable("auto_merge_rules", {
id: text("id").primaryKey(),
repositoryId: text("repository_id")
.notNull()
.references(() => repositories.id, { onDelete: "cascade" }),
name: text("name").notNull(),
description: text("description"),
matchLabels: text("match_labels"),
requiredLabels: text("required_labels"),
requiredChecks: text("required_checks"),
minApprovals: integer("min_approvals").default(0),
requireCodeOwner: boolean("require_code_owner").default(false),
allowDraft: boolean("allow_draft").default(false),
minTimeInQueueMinutes: integer("min_time_in_queue_minutes").default(0),
mergeMethod: text("merge_method"),
isEnabled: boolean("is_enabled").default(true),
matchCount: integer("match_count").default(0),
lastMatchedAt: timestamp("last_matched_at"),
lastMismatchReason: text("last_mismatch_reason"),
createdById: text("created_by_id").references(() => users.id),
createdAt: timestamp("created_at").notNull().defaultNow(),
updatedAt: timestamp("updated_at").notNull().defaultNow(),
});
export type AutoMergeRule = typeof autoMergeRules.$inferSelect;