You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

person.ts 800B

12345678910111213141516171819202122232425262728293031323334
  1. import { Schema, model, models } from 'mongoose';
  2. import { IPerson } from '../utils/interface/personInterface';
  3. const PersonSchema = new Schema<IPerson>({
  4. name: {
  5. type: String,
  6. required: [true, 'Please provide a name.'],
  7. maxlength: [60, 'Name cannot be more than 60 characters'],
  8. trim: true,
  9. },
  10. age: {
  11. type: Number,
  12. required: [true, 'Please provide an age.'],
  13. validate(value: number) {
  14. if (value < 0) {
  15. throw new Error('Age must be a postive number');
  16. }
  17. },
  18. },
  19. gender: {
  20. type: String,
  21. required: [true, 'Please provide a gender.'],
  22. trim: true,
  23. },
  24. customID: {
  25. type: String,
  26. required: true,
  27. unique: true,
  28. },
  29. });
  30. const Person = models.Person || model<IPerson>('Person', PersonSchema);
  31. module.exports = Person;