import { z } from "zod"; export const issueWorkProductTypeSchema = z.enum([ "preview_url", "runtime_service", "pull_request", "branch", "commit", "artifact", "document", ]); export const issueWorkProductStatusSchema = z.enum([ "active", "ready_for_review", "approved", "changes_requested", "merged", "closed", "failed", "archived", "draft", ]); export const issueWorkProductReviewStateSchema = z.enum([ "none", "needs_board_review", "approved", "changes_requested", ]); export const createIssueWorkProductSchema = z.object({ projectId: z.string().uuid().optional().nullable(), executionWorkspaceId: z.string().uuid().optional().nullable(), runtimeServiceId: z.string().uuid().optional().nullable(), type: issueWorkProductTypeSchema, provider: z.string().min(1), externalId: z.string().optional().nullable(), title: z.string().min(1), url: z.string().url().optional().nullable(), status: issueWorkProductStatusSchema.default("active"), reviewState: issueWorkProductReviewStateSchema.optional().default("none"), isPrimary: z.boolean().optional().default(false), healthStatus: z.enum(["unknown", "healthy", "unhealthy"]).optional().default("unknown"), summary: z.string().optional().nullable(), metadata: z.record(z.unknown()).optional().nullable(), createdByRunId: z.string().uuid().optional().nullable(), }); export type CreateIssueWorkProduct = z.infer; export const updateIssueWorkProductSchema = createIssueWorkProductSchema.partial(); export type UpdateIssueWorkProduct = z.infer;