news.ts 847 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { Schema, SchemaTypes, Types } from "mongoose";
  2. export enum NewsStatus {
  3. DRAFT = "draft",
  4. PUBLISHED = "published",
  5. ARCHIVED = "archived"
  6. }
  7. export interface NewsSchema {
  8. title: string;
  9. markdown: string;
  10. status: NewsStatus;
  11. showToNewUsers: boolean;
  12. createdBy: Types.ObjectId;
  13. createdAt: NativeDate;
  14. }
  15. export const schema = new Schema<NewsSchema>({
  16. title: {
  17. type: SchemaTypes.String,
  18. required: true
  19. },
  20. markdown: {
  21. type: SchemaTypes.String,
  22. required: true
  23. },
  24. status: {
  25. type: SchemaTypes.String,
  26. enum: Object.values(NewsStatus),
  27. default: NewsStatus.DRAFT,
  28. required: true
  29. },
  30. showToNewUsers: {
  31. type: SchemaTypes.Boolean,
  32. default: false,
  33. required: true
  34. },
  35. createdBy: {
  36. type: SchemaTypes.ObjectId,
  37. required: true
  38. },
  39. createdAt: {
  40. type: SchemaTypes.Date,
  41. default: Date.now,
  42. required: true
  43. }
  44. });