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
text/typescript
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;
()
export class Pricing {
({
type: Types.ObjectId,
ref: "Product",
required: true,
unique: true,
})
productId: Types.ObjectId;
({ required: true })
price: number;
({
type: String,
enum: Object.values(CurrencyCodeEnum).filter((value) => typeof value === "string"),
default: CurrencyCodeEnum.USD,
})
currencyCode: CurrencyCodeEnum;
({ required: false })
supplierId: string;
({ type: Date, required: false, default: Date.now })
effectiveDate: Date;
({ type: Date, required: false, default: new Date(9999, 11, 31, 23, 59, 59) })
expiryDate: Date;
({ 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);