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

const CouponSchema = new Schema(
  {
    _id: stringId,
    code: { type: String, required: true, unique: true, uppercase: true, trim: true },
    type: { type: String, enum: COUPON_TYPES, required: true },
    value: { type: Number, required: true },
    maxUses: { type: Number, default: undefined },
    usedCount: { type: Number, default: 0 },
    minNights: { type: Number, default: undefined },
    minSubtotalTnd: { type: Number, default: undefined },
    validFrom: { type: Date, default: undefined },
    validTo: { type: Date, default: undefined },
    active: { type: Boolean, default: true, index: true },
    note: { type: String, default: undefined },
  },
  { timestamps: true },
);

applyIdTransform(CouponSchema);

export const Coupon = registerModel("Coupon", CouponSchema);
