aboutsummaryrefslogtreecommitdiff
path: root/src/model/Widget.ts
blob: ed4c8bcf64ef2611615518b4a33106e95161f4af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { Schema, model } from "mongoose";
import { WidgetType, ThemeOption } from "../types/widget";

const WidgetSchema = new Schema({
  ownerId: { type: String, required: true },
  id: { type: String, required: true, unique: true },
  name: { type: String, required: true, default: "unnamed" },
  type: { type: String, required: true, enum: Object.values(WidgetType) },
  data: { type: Object, required: true },
  theme: {
    option: { type: String, required: true, enum: Object.values(ThemeOption), default: ThemeOption.SYSTEM },
    customColors: {
      primary: { type: String },
      secondary: { type: String },
      background: { type: String },
      text: { type: String }
    }
  },
  createdAt: { type: Date, default: Date.now },
  updatedAt: { type: Date, default: Date.now },
});

const Widget = model("Widget", WidgetSchema);

export default Widget;