import { z } from 'zod'

// ─── Input Options ───────────────────────────────────────────────────────

export const FinishOptionsSchema = z.object({
  branch: z.string().optional(),
})

// ─── Result ───────────────────────────────────────────────────────────

export const FinishResultSchema = z.object({
  success: z.boolean(),
  branch: z.string(),
  branchType: z.enum(['feature', 'release', 'hotfix']),
  tag: z.string().optional(),
  mergedBack: z.boolean().optional(),
  versionBumped: z.boolean().optional(),
  worktreeCleaned: z.boolean().optional(),
  error: z.string().optional(),
})

// ─── Inferred Types ───────────────────────────────────────────────────────

export type FinishOptions = z.infer<typeof FinishOptionsSchema>
export type FinishResult = z.infer<typeof FinishResultSchema>
