Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/(protected)/admin/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { redirect } from "next/navigation";
import React from "react";
import { DataTable } from "./data-table";
import { columns } from "./columns";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";

const AdminPage = async () => {
const currentUserRole = await getCurrentUserRole();
Expand Down
2 changes: 1 addition & 1 deletion app/(protected)/inferred-deals/[uid]/edit/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import EditDealForm from "@/components/forms/edit-deal-form";
import PreviousPageButton from "@/components/PreviousPageButton";
import { Card, CardContent } from "@/components/ui/card";
import { fetchSpecificInferredDeal } from "@/lib/firebase/db";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { Metadata } from "next";
import React from "react";

Expand Down
2 changes: 1 addition & 1 deletion app/(protected)/inferred-deals/[uid]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import {
import { Badge } from "@/components/ui/badge";
import PreviousPageButton from "@/components/PreviousPageButton";
import ScreenDealDialog from "@/components/Dialogs/screen-deal-dialog";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { DealDetailItem } from "@/components/DealDetailItem";
import AIReasoning from "@/components/AiReasoning";
import SimUploadDialog from "@/components/Dialogs/sim-upload-dialog";
Expand Down
2 changes: 1 addition & 1 deletion app/(protected)/inferred-deals/page.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { Suspense } from "react";
import DealCardSkeleton from "@/components/skeletons/DealCardSkeleton";
import { Metadata } from "next";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import DealCard from "@/components/DealCard";
import getCurrentUserRole from "@/lib/data/current-user-role";
import GetDeals from "@/app/actions/get-deal";
Expand Down
2 changes: 1 addition & 1 deletion app/(protected)/manual-deals/[uid]/edit/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import EditDealForm from "@/components/forms/edit-deal-form";
import PreviousPageButton from "@/components/PreviousPageButton";
import { Card, CardContent } from "@/components/ui/card";
import { fetchSpecificManualDeal } from "@/lib/firebase/db";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { Metadata } from "next";
import React from "react";

Expand Down
2 changes: 1 addition & 1 deletion app/(protected)/manual-deals/[uid]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import PreviousPageButton from "@/components/PreviousPageButton";
import { DealDetailItem } from "@/components/DealDetailItem";
import AIReasoning from "@/components/AiReasoning";
import SimItem from "@/components/SimItem";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import SimUploadDialog from "@/components/Dialogs/sim-upload-dialog";
import FetchDealSim from "@/components/FetchDealSim";
import SimItemSkeleton from "@/components/skeletons/SimItemSkeleton";
Expand Down
2 changes: 1 addition & 1 deletion app/(protected)/manual-deals/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import DealCardSkeleton from "@/components/skeletons/DealCardSkeleton";
import { Metadata } from "next";
import React, { Suspense } from "react";
import FetchingManualDeals from "./FetchingManualDeals";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import DealCard from "@/components/DealCard";
import GetDeals from "@/app/actions/get-deal";
import Pagination from "@/components/pagination";
Expand Down
2 changes: 1 addition & 1 deletion app/(protected)/profile/[uid]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import ProfileForm from "@/components/forms/profile-form";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { Metadata } from "next";
import { notFound } from "next/navigation";
import React from "react";
Expand Down
2 changes: 1 addition & 1 deletion app/(protected)/questionnaires/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import BaseLineUploadForm from "@/components/forms/baseline-upload-form";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { ScrollArea } from "@/components/ui/scroll-area";
import { fetchQuestionnaires } from "@/lib/firebase/db";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { Metadata } from "next";
import React from "react";

Expand Down
2 changes: 1 addition & 1 deletion app/(protected)/raw-deals/[uid]/edit/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import EditDealForm from "@/components/forms/edit-deal-form";
import PreviousPageButton from "@/components/PreviousPageButton";
import { Card, CardContent } from "@/components/ui/card";
import { fetchSpecificManualDeal } from "@/lib/firebase/db";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { Metadata } from "next";
import React from "react";

Expand Down
34 changes: 17 additions & 17 deletions app/(protected)/raw-deals/[uid]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@ export default async function ManualDealSpecificPage(props: {
companyLocation,
industry,
ebitdaMargin,
isReviewed,
isPublished,
reviewed,
published,
tags,
status,
askingPrice,
Expand Down Expand Up @@ -179,23 +179,23 @@ export default async function ManualDealSpecificPage(props: {
<span className="mb-1 text-xs font-medium text-muted-foreground">
Reviewed
</span>
<Badge
variant={isReviewed ? "default" : "secondary"}
className="px-3 py-1 text-xs"
>
{isReviewed ? "Yes" : "No"}
</Badge>
<Badge
variant={reviewed ? "default" : "secondary"}
className="px-3 py-1 text-xs"
>
{reviewed ? "Yes" : "No"}
</Badge>
</div>
<div className="flex flex-col items-center rounded-lg border border-border/20 bg-muted/40 p-3 shadow-sm">
<span className="mb-1 text-xs font-medium text-muted-foreground">
Published
</span>
<Badge
variant={isPublished ? "default" : "secondary"}
className="px-3 py-1 text-xs"
>
{isPublished ? "Yes" : "No"}
</Badge>
<Badge
variant={published ? "default" : "secondary"}
className="px-3 py-1 text-xs"
>
{published ? "Yes" : "No"}
</Badge>
</div>
<div className="flex flex-col items-center rounded-lg border border-border/20 bg-muted/40 p-3 shadow-sm">
<span className="mb-1 text-xs font-medium text-muted-foreground">
Expand All @@ -216,7 +216,7 @@ export default async function ManualDealSpecificPage(props: {
</div>
{tags && tags.length > 0 ? (
<div className="flex flex-wrap gap-2">
{tags.map((tag) => (
{tags.map((tag: string) => (
<Badge key={tag}>{tag}</Badge>
))}
</div>
Expand All @@ -232,8 +232,8 @@ export default async function ManualDealSpecificPage(props: {
<DealSpecificationsDialog
dealUid={uid}
dealStatus={status}
dealReviewed={isReviewed}
dealPublished={isPublished}
dealReviewed={reviewed}
dealPublished={published}
dealSeen={seen}
/>

Expand Down
2 changes: 1 addition & 1 deletion app/(protected)/raw-deals/[uid]/screen/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import PreviousPageButton from "@/components/PreviousPageButton";
import ScreenDealComponent from "@/components/ScreenDealComponent";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Metadata } from "next";
import React, { Suspense } from "react";
Expand Down
2 changes: 1 addition & 1 deletion app/actions/add-baseline.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use server";

import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { put } from "@vercel/blob";
import { revalidatePath } from "next/cache";

Expand Down
2 changes: 1 addition & 1 deletion app/actions/add-deal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
NewDealFormSchema,
NewDealFormSchemaType,
} from "@/components/forms/new-deal-form";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { withAuthServerAction } from "@/lib/withAuth";
import { DealType, User } from "@prisma/client";
import { addDoc, collection, serverTimestamp } from "firebase/firestore";
Expand Down
2 changes: 1 addition & 1 deletion app/actions/add-poc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
addPocFormSchema,
AddPocFormValues,
} from "@/components/forms/add-poc-form";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { User } from "@prisma/client";
import { withAuthServerAction } from "@/lib/withAuth";
import { revalidatePath } from "next/cache";
Expand Down
2 changes: 1 addition & 1 deletion app/actions/block-account.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { auth } from "@/auth";
import getCurrentUserRole from "@/lib/data/current-user-role";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { revalidatePath } from "next/cache";

const blockAccount = async (userId: string) => {
Expand Down
2 changes: 1 addition & 1 deletion app/actions/bulk-delete-deals.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use server";

import { auth } from "@/auth";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { revalidatePath } from "next/cache";

/**
Expand Down
2 changes: 1 addition & 1 deletion app/actions/bulk-upload-deal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import { db } from "@/lib/firebase/init";
import { addDoc, collection, serverTimestamp } from "firebase/firestore";
import { TransformedDeal } from "../types";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { DealType, User } from "@prisma/client";
import { withAuthServerAction } from "@/lib/withAuth";
import { auth } from "@/auth";
Expand Down
2 changes: 1 addition & 1 deletion app/actions/delete-ai-screening.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use server";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { DealType } from "@prisma/client";

import { revalidatePath } from "next/cache";
Expand Down
2 changes: 1 addition & 1 deletion app/actions/delete-baseline.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use server";

import { db } from "@/lib/firebase/init";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { del } from "@vercel/blob";
import { revalidatePath } from "next/cache";

Expand Down
2 changes: 1 addition & 1 deletion app/actions/delete-deal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
NewDealFormSchemaType,
} from "@/components/forms/new-deal-form";
import { db } from "@/lib/firebase/init";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { DealType } from "@prisma/client";
import {
addDoc,
Expand Down
2 changes: 1 addition & 1 deletion app/actions/delete-poc.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use server";

import { withAuthServerAction } from "@/lib/withAuth";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { User } from "@prisma/client";
import { revalidatePath } from "next/cache";

Expand Down
2 changes: 1 addition & 1 deletion app/actions/delete-sim.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use server";
import { auth } from "@/auth";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { DealType } from "@prisma/client";
import { del } from "@vercel/blob";

Expand Down
2 changes: 1 addition & 1 deletion app/actions/edit-deal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { EditDealFormSchemaType } from "@/components/forms/edit-deal-form";
import { db } from "@/lib/firebase/init";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { DealType } from "@prisma/client";
import { doc, getDoc, serverTimestamp, updateDoc } from "firebase/firestore";
import { revalidatePath } from "next/cache";
Expand Down
2 changes: 1 addition & 1 deletion app/actions/edit-screen-deal-result.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use server";

import { auth } from "@/auth";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { screenDealSchemaType } from "@/lib/schemas";
import { DealType } from "@prisma/client";
import { revalidatePath } from "next/cache";
Expand Down
4 changes: 2 additions & 2 deletions app/actions/get-deal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,8 @@ export const GetAllDeals = async ({
? { ebitdaMargin: { gte: ebitdaMarginValue } }
: {}),
...(showSeen ? { seen: { equals: showSeen } } : {}),
...(showReviewed ? { isReviewed: { equals: showReviewed } } : {}),
...(showPublished ? { isPublished: { equals: showPublished } } : {}),
...(showReviewed ? { reviewed: { equals: showReviewed } } : {}),
...(showPublished ? { published: { equals: showPublished } } : {}),
...(status ? { status: { equals: status } } : {}),
...(tags && tags.length > 0 ? { tags: { hasSome: tags } } : {}),
};
Expand Down
68 changes: 68 additions & 0 deletions app/actions/revert-deal-version.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
"use server";

import prismaDB from "@/lib/prisma.server";
import { revalidatePath } from "next/cache";
import { DealType } from "@prisma/client";

/**
* Revert a Deal record to the snapshot stored in `dealHistory`.
* @param versionId – id of the dealHistory row we want to restore
* @param dealId – id of the Deal to update (redundant but explicit)
*/
const revertDealVersion = async (versionId: string, dealId: string) => {
try {
// 1. fetch snapshot to restore
const version = await prismaDB.dealHistory.findUnique({
where: { id: versionId },
});

if (!version) {
return { type: "error" as const, message: "Version not found" };
}

// 2. Extract snapshot & drop immutable columns
const { snapshot } = version as { snapshot: Record<string, any> };
if (!snapshot) {
return {
type: "error" as const,
message: "Snapshot missing for the selected version.",
};
}

// Remove prisma-generated/immutable fields
const {
id: _discardId,
createdAt: _discardCreated,
updatedAt: _discardUpdated,
...dataToRestore
} = snapshot as Record<string, any>;

// 3. Perform update (this will itself write a new version via middleware)
const updated = await prismaDB.deal.update({
where: { id: dealId },
data: dataToRestore,
});

// 4. Revalidate correct page route so UI updates
switch (updated.dealType as DealType) {
case "MANUAL":
revalidatePath(`/manual-deals/${dealId}`);
break;
case "SCRAPED":
revalidatePath(`/raw-deals/${dealId}`);
break;
case "AI_INFERRED":
revalidatePath(`/inferred-deals/${dealId}`);
break;
default:
break;
}

return { type: "success" as const };
} catch (err) {
console.error("Error reverting deal to version", err);
return { type: "error" as const, message: "Failed to revert deal." };
}
};

export default revertDealVersion;
2 changes: 1 addition & 1 deletion app/actions/save-infer-deal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { auth } from "@/auth";
import { InferDealSchema } from "@/components/schemas/infer-deal-schema";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";

export default async function SaveInferredDeal({
generation,
Expand Down
2 changes: 1 addition & 1 deletion app/actions/save-screen-deal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
NewDealFormSchema,
NewDealFormSchemaType,
} from "@/components/forms/new-deal-form";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { screenDealSchemaType } from "@/lib/schemas";
import { DealType } from "@prisma/client";
import { addDoc, collection, serverTimestamp } from "firebase/firestore";
Expand Down
2 changes: 1 addition & 1 deletion app/actions/screening-save-result.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { auth } from "@/auth";
import { openai } from "@/lib/ai/available-models";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { Sentiment } from "@prisma/client";
import { generateObject } from "ai";
import { revalidatePath } from "next/cache";
Expand Down
2 changes: 1 addition & 1 deletion app/actions/unblock-account.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { auth } from "@/auth";
import getCurrentUserRole from "@/lib/data/current-user-role";
import prismaDB from "@/lib/prisma";
import prismaDB from "@/lib/prisma.server";
import { revalidatePath } from "next/cache";

const unblockAccount = async (userId: string) => {
Expand Down
Loading