Report logic #2

This commit is contained in:
nocnico
2025-04-28 21:23:03 +02:00
parent e7c8f8ad1c
commit 7670843613
4 changed files with 41 additions and 9 deletions

View File

@@ -1,4 +1,5 @@
import { create } from "zustand";
import { PrismaClient } from "@prisma/client";
interface ReportStore {
ownId: null | string;
@@ -13,4 +14,19 @@ export const useReportStore = create<ReportStore>((set) => ({
setReportOpen: (open: boolean) => set({ reportOpen: open }),
setOwnId: (id: string) => set({ ownId: id }),
}));
// TODO: implement logic for reports
const prisma = new PrismaClient();
export const sendReport = async (receiverId: string, message: string) => {
try {
await prisma.reportMessage.create({
data: {
receiverId,
message,
},
});
} catch (error) {
console.error("Failed to send report:", error);
throw error;
}
};

View File

@@ -1,6 +1,6 @@
"use client";
import { ExclamationTriangleIcon, PaperPlaneIcon } from "@radix-ui/react-icons";
import { useReportStore } from "_store/reportStore";
import { useReportStore, sendReport } from "_store/reportStore";
import { useSession } from "next-auth/react";
import { useEffect, useRef, useState } from "react";
import {
@@ -107,13 +107,14 @@ export const Report = () => {
e.preventDefault();
if (message.length < 1 || !selectedPlayer) return;
setSending(true);
// TODO: Implement logic for reports
/* sendReport(selectedPlayer, message).then(() => {
sendReport(selectedPlayer, message)
.then(() => {
setMessage("");
setSending(false);
}); */
setMessage("");
})
.catch(() => {
setSending(false);
});
}}
disabled={sending}
>

View File

@@ -0,0 +1,13 @@
model ReportMessage {
id Int @id @default(autoincrement())
text String
senderId String
reportedId String
timestamp DateTime @default(now())
reportedName String
senderName String
// relations:
sender User @relation("SentReports", fields: [senderId], references: [id])
reported User @relation("ReceivedReports", fields: [reportedId], references: [id])
}

View File

@@ -43,6 +43,8 @@ model User {
EventAppointment EventAppointment[]
SentMessages ChatMessage[] @relation("SentMessages")
ReceivedMessages ChatMessage[] @relation("ReceivedMessages")
SentReports ReportMessage[] @relation("SentReports")
ReceivedReports ReportMessage[] @relation("ReceivedReports")
/**
* Missions Mission[]
*/