diff --git a/app/app.vue b/app/app.vue
index 71844c0..967eb08 100644
--- a/app/app.vue
+++ b/app/app.vue
@@ -5,7 +5,7 @@
diff --git a/server/models/ProductUsageSession.ts b/server/models/ProductUsageSession.ts
new file mode 100644
index 0000000..4175d8e
--- /dev/null
+++ b/server/models/ProductUsageSession.ts
@@ -0,0 +1,27 @@
+import mongoose from 'mongoose'
+
+export type ProductUsageKey = 'classroom' | 'liveatc'
+
+export interface ProductUsageSessionDocument extends mongoose.Document {
+ user?: mongoose.Types.ObjectId
+ product: ProductUsageKey
+ path?: string
+ durationSeconds: number
+ startedAt: Date
+ endedAt: Date
+ createdAt: Date
+}
+
+const productUsageSessionSchema = new mongoose.Schema({
+ user: { type: mongoose.Schema.Types.ObjectId, ref: 'User', index: true },
+ product: { type: String, enum: ['classroom', 'liveatc'], required: true, index: true },
+ path: { type: String, trim: true },
+ durationSeconds: { type: Number, required: true, min: 0 },
+ startedAt: { type: Date, required: true },
+ endedAt: { type: Date, required: true, index: true },
+ createdAt: { type: Date, default: () => new Date() },
+})
+
+export const ProductUsageSession =
+ (mongoose.models.ProductUsageSession as mongoose.Model | undefined) ||
+ mongoose.model('ProductUsageSession', productUsageSessionSchema)