diff options
Diffstat (limited to 'src/model/Widget.ts')
| -rw-r--r-- | src/model/Widget.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/model/Widget.ts b/src/model/Widget.ts new file mode 100644 index 0000000..ed4c8bc --- /dev/null +++ b/src/model/Widget.ts @@ -0,0 +1,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;
\ No newline at end of file |
