import { d as defineEventHandler, r as readBody, i as debug, c as createError, J as create, n as notifyIssueUpdate } from '../../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:crypto';
import 'stream';
import 'events';
import 'http';
import 'crypto';
import 'buffer';
import 'zlib';
import 'https';
import 'net';
import 'tls';
import 'url';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'vue-router';
import '@prisma/client';
import '@prisma/adapter-better-sqlite3';
import 'fs';
import 'path';
import 'fs/promises';
import 'child_process';
import 'node:child_process';
import 'node:url';

const index_post = defineEventHandler(async (event) => {
  var _a, _b;
  const body = await readBody(event);
  debug("api", "POST /api/issues", {
    title: body.title,
    parent: body.parent,
    priority: body.priority
  });
  if (!body.title) {
    debug("api", "POST /api/issues - bad request", { hasTitle: false });
    throw createError({
      statusCode: 400,
      message: "Title is required"
    });
  }
  try {
    const issue = await create({
      title: body.title,
      ...body.description ? { description: body.description } : {},
      ...body.priority ? { priority: body.priority } : {},
      ...body.parent ? { parentKey: body.parent } : {},
      ...body.acceptanceCriteria ? { acceptanceCriteria: body.acceptanceCriteria } : {}
    });
    notifyIssueUpdate(issue.key, "created");
    return {
      key: issue.key,
      title: issue.title,
      column_slug: (_b = (_a = issue.column) == null ? void 0 : _a.slug) != null ? _b : "",
      created_at: issue.createdAt.toISOString(),
      updated_at: issue.updatedAt.toISOString(),
      description: issue.description,
      priority: issue.priority,
      parent_key: issue.parentKey,
      acceptance_criteria: issue.acceptanceCriteria.map((c) => c.criterion)
    };
  } catch (err) {
    throw createError({
      statusCode: 500,
      message: err instanceof Error ? err.message : "Failed to create issue"
    });
  }
});

export { index_post as default };
//# sourceMappingURL=index.post2.mjs.map
