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

@Schema({ timestamps: true })
export class BuddyRequest {
  @Prop({ type: Types.ObjectId, ref: "Users", required: true })
  sender: Types.ObjectId;

  @Prop({ type: Types.ObjectId, ref: "Users", required: true })
  receiver: Types.ObjectId;

  @Prop({
    type: String,
    enum: ["pending", "accepted", "rejected"],
    default: "pending",
  })
  status: string;

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

export const BuddyRequestSchema = SchemaFactory.createForClass(BuddyRequest);

export type BuddyRequestDocument = BuddyRequest & Document;

// Prevent duplicate requests
BuddyRequestSchema.index({ sender: 1, receiver: 1 }, { unique: true });
