import { Schema } from "mongoose";
import { applyIdTransform, registerModel, stringId } from "../schema";
import { TOPUP_STATUSES } from "../types";

const WalletTopUpSchema = new Schema(
  {
    _id: stringId,
    userId: { type: String, ref: "User", required: true, index: true },
    amountLyd: { type: Number, required: true },
    bankName: { type: String, required: true },
    reference: { type: String, required: true },
    status: { type: String, enum: TOPUP_STATUSES, default: "PENDING", index: true },
    reviewedBy: { type: String, ref: "User", default: undefined },
    reviewedAt: { type: Date, default: undefined },
    reviewNote: { type: String, default: undefined },
  },
  { timestamps: true },
);

WalletTopUpSchema.index({ status: 1, createdAt: -1 });
applyIdTransform(WalletTopUpSchema);

export const WalletTopUp = registerModel("WalletTopUp", WalletTopUpSchema);
