Snaplocal / server /src /models /Report.js
Kuruva Laxmi
SnapLocal MVP - Complete platform with 4 MVP features
0f8617c
Raw
History Blame Contribute Delete
1.59 kB
const mongoose = require('mongoose');
const reportSchema = new mongoose.Schema(
{
reportedBy: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true,
},
reportedUser: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true,
},
category: {
type: String,
enum: ['quality_issues', 'miscommunication', 'non_professional', 'payment_issue', 'harassment', 'scam', 'other'],
required: true,
},
title: {
type: String,
required: true,
},
description: {
type: String,
required: true,
},
bookingId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Booking',
default: null,
},
evidence: [
{
type: String, // URL to screenshot/file
},
],
status: {
type: String,
enum: ['pending', 'under_review', 'resolved', 'dismissed'],
default: 'pending',
},
severity: {
type: String,
enum: ['low', 'medium', 'high', 'critical'],
default: 'medium',
},
adminNotes: {
type: String,
default: '',
},
resolution: {
type: String,
default: '',
},
photographer_response: {
type: String,
default: '',
maxlength: 1000,
},
respondedAt: {
type: Date,
default: null,
},
resolvedAt: {
type: Date,
default: null,
},
submittedAt: {
type: Date,
default: Date.now,
},
},
{ timestamps: true }
);
module.exports = mongoose.model('Report', reportSchema);