| 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<typeof createIssueWorkProductSchema>; |
|
|
| export const updateIssueWorkProductSchema = createIssueWorkProductSchema.partial(); |
|
|
| export type UpdateIssueWorkProduct = z.infer<typeof updateIssueWorkProductSchema>; |
|
|