All files / services/config-service/src/models UsageTracking.js

92.68% Statements 38/41
100% Branches 1/1
0% Functions 0/1
92.68% Lines 38/41

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 421x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x       1x 1x 1x  
const mongoose = require('mongoose');
 
const usageTrackingSchema = new mongoose.Schema({
  organizationId: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Organization',
    required: true
  },
  periodStart: {
    type: Date,
    required: true
  },
  periodEnd: {
    type: Date,
    required: true
  },
  kbItemCount: {
    type: Number,
    default: 0
  },
  llmCostUsed: {
    type: Number,
    default: 0
  },
  ocrCostUsed: {
    type: Number,
    default: 0
  }
}, {
  timestamps: true
});
 
usageTrackingSchema.index({ organizationId: 1, periodStart: 1 }, { unique: true });
 
usageTrackingSchema.methods.toJSON = function() {
  const obj = this.toObject();
  delete obj.__v;
  return obj;
};
 
module.exports = mongoose.model('UsageTracking', usageTrackingSchema);