Add project templates

This commit is contained in:
ramnique 2025-02-03 23:03:44 +05:30
parent c3d9036d63
commit 4534a77416
11 changed files with 584 additions and 173 deletions

View file

@ -1,7 +1,5 @@
import { Metadata } from "next";
import { agentWorkflowsCollection, dataSourcesCollection, projectsCollection } from "@/app/lib/mongodb";
import { App } from "./app";
import { baseWorkflow } from "@/app/lib/utils";
export const metadata: Metadata = {
title: "Workflow"
@ -12,40 +10,7 @@ export default async function Page({
}: {
params: { projectId: string };
}) {
let startWithWorkflowId = null;
const count = await agentWorkflowsCollection.countDocuments({
projectId: params.projectId,
});
if (count === 0) {
// get the next workflow number
const doc = await projectsCollection.findOneAndUpdate({
_id: params.projectId,
}, {
$inc: {
nextWorkflowNumber: 1,
},
}, {
returnDocument: 'after'
});
if (!doc) {
throw new Error('Project not found');
}
const nextWorkflowNumber = doc.nextWorkflowNumber;
// create the workflow
const workflow = {
...baseWorkflow,
projectId: params.projectId,
createdAt: new Date().toISOString(),
lastUpdatedAt: new Date().toISOString(),
name: `Version ${nextWorkflowNumber}`,
};
const { insertedId } = await agentWorkflowsCollection.insertOne(workflow);
startWithWorkflowId = insertedId.toString();
}
return <App
projectId={params.projectId}
startWithWorkflowId={startWithWorkflowId}
/>;
}