From 20ab9beb2227d798e157b5fbeb67109a42b64dd4 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sat, 20 Jul 2024 12:32:11 +0200 Subject: [PATCH] Create License.ts model --- src/models/License.ts | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/models/License.ts diff --git a/src/models/License.ts b/src/models/License.ts new file mode 100644 index 0000000..06d22fa --- /dev/null +++ b/src/models/License.ts @@ -0,0 +1,44 @@ +import {model, ObjectId, Schema} from "mongoose"; + +export interface ILicense { + _id: ObjectId, + projectId: ObjectId, + key: string, + groups?: string[], + permissions?: string[], + meta: { [key: string]: string }, + maxUses: number, + currentUses: number, + expirationDate?: Date +} + +const LicenseSchema = new Schema({ + projectId: { + type: String, + required: true + }, + key: { + type: String, + required: true + }, + groups: [String], + permissions: [String], + meta: { + type: Object, + default: {} + }, + maxUses: { + type: Number, + default: -1 + }, + currentUses: { + type: Number, + default: 0 + }, + expirationDate: { + type: String, + default: Date.now + } +}); + +export const License = model("licenses", LicenseSchema); \ No newline at end of file