import { ISchemaType, EType, ISchemaProperty, IPropertyValidation } from 'types'; import * as T from 'types'; const schema: ISchemaType = { _id: EType.objectId, email: { __type: EType.string, validations: { required: true, email: true, }, }, password: { __type: EType.string, validations: { required: true, }, }, dob: { __type: EType.date, }, company_id: { __type: EType.objectId, collection: 'companies', }, country_id: { __type: EType.objectId, instance: 'ins_master', // Optional in case of same instance database: 'master', // Optional in case of same database collection: 'countries', }, createdAt: { __type: EType.date, conversions: { defaults: { defaultFun: () => { return new Date(); }, }, }, }, updatedAt: { __type: EType.date, conversions: { conversionFun: (val, data) => { // Every time generate new value on update or save return new Date(); // If it is present in payload, take that value and set in db. // if (data.updatedAt) return data.updatedAt; // else return new Date(); }, }, }, status: { __type: EType.string, validations: { enum: ['Active', 'Inactive'], }, }, }; module.exports = { schema };