UNPKG

pl4y-data-library

Version:

This library contains the dtos, enums, schemas, and other data objects needed in the pl4y ecosystem.

43 lines (33 loc) 1.19 kB
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose"; import { Document, Types } from "mongoose"; import { CurrencyCodeEnum } from "../enums/currency-code.enum"; // Defines the interface for your document export type PricingDocument = Pricing & Document; @Schema() export class Pricing { @Prop({ type: Types.ObjectId, ref: "Product", required: true, unique: true, }) productId: Types.ObjectId; @Prop({ required: true }) price: number; @Prop({ type: String, enum: Object.values(CurrencyCodeEnum).filter((value) => typeof value === "string"), default: CurrencyCodeEnum.USD, }) currencyCode: CurrencyCodeEnum; @Prop({ required: false }) supplierId: string; @Prop({ type: Date, required: false, default: Date.now }) effectiveDate: Date; @Prop({ type: Date, required: false, default: new Date(9999, 11, 31, 23, 59, 59) }) expiryDate: Date; @Prop({ required: false, default: 0 }) // Discount as a percentage (e.g., 20 for 20%) discount: number; } // Generates the actual Mongoose Schema export const PricingSchema = SchemaFactory.createForClass(Pricing);