abc.ts 950 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { Model, Schema, SchemaTypes, Types } from "mongoose";
  2. import { BaseSchema, TimestampsSchema } from "../types/Schemas";
  3. export interface AbcSchema extends Omit<BaseSchema, keyof TimestampsSchema> {
  4. name: string;
  5. autofill?: {
  6. enabled?: boolean;
  7. };
  8. someNumbers: number[];
  9. songs: { _id: Types.ObjectId }[];
  10. restrictedName?: string;
  11. aNumber: number;
  12. }
  13. export type AbcModel = Model<AbcSchema>;
  14. export const schema = new Schema<AbcSchema, AbcModel>(
  15. {
  16. name: {
  17. type: SchemaTypes.String,
  18. required: true
  19. },
  20. autofill: {
  21. enabled: {
  22. type: SchemaTypes.Boolean,
  23. required: false
  24. }
  25. },
  26. someNumbers: [{ type: SchemaTypes.Number }],
  27. songs: [
  28. {
  29. _id: { type: SchemaTypes.ObjectId, required: true }
  30. }
  31. ],
  32. restrictedName: {
  33. type: SchemaTypes.String,
  34. restricted: true
  35. },
  36. aNumber: { type: SchemaTypes.Number, required: true }
  37. },
  38. { timestamps: false }
  39. );
  40. export type AbcSchemaType = typeof schema;