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