import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import { Document, Types } from "mongoose";

export type ReportMessageDocument = ReportMessage & Document;

@Schema({ timestamps: true })
export class ReportMessage {
  @Prop({ type: Types.ObjectId, ref: "Message", required: true })
  message_id!: Types.ObjectId;

  @Prop({ type: Types.ObjectId, ref: "Conversation", required: true })
  conversation_id!: Types.ObjectId;

  @Prop({ type: Types.ObjectId, ref: "User", required: true })
  reporter_id!: Types.ObjectId;

  @Prop({ type: String, default: null })
  reason!: string | null;

  @Prop({ default: null })
  deleted_at!: Date | null;
}

export const ReportMessageSchema = SchemaFactory.createForClass(ReportMessage);

ReportMessageSchema.index(
  { message_id: 1, reporter_id: 1 },
  { unique: true },
);
