All files / src/models Settings.js

100% Statements 5/5
100% Branches 2/2
100% Functions 1/1
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39      78x                                                 78x     77x 77x 12x          
import { model, Schema } from "mongoose";
import { RequiredNumber, RequiredString } from "../utilities/schemaTypesOptions.js";
 
const SettingsSchema = new Schema(
    {
        discountCobones: [
            {
                id: RequiredString(),
                name: RequiredString(),
                value: RequiredNumber({ min: 0.01, max: 1 }),
                _id: false
            }
        ],
        productsCategories: [String],
        allowUsersChangePasswordEveryNDays: {
            type: Number,
            default: 30
        },
        defaultMonthlyTarget: Number,
        deliveryPrice: {
            type: Number,
            default: 5
        },
        minFreeDeliveryEntitlementPrice: Number
    },
    { versionKey: false }
)
 
const SettingsModel = model("settings", SettingsSchema);
 
export async function initializeSettingsCollection() {
    try {
        if (!(await SettingsModel.count())) {
            await new SettingsModel().save()
        }
    } catch { }
}
 
export default SettingsModel