Subscription.coffee 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. mongoose = require 'mongoose'
  2. Settings = require 'settings-sharelatex'
  3. TeamInviteSchema = require('./TeamInvite').TeamInviteSchema
  4. Schema = mongoose.Schema
  5. ObjectId = Schema.ObjectId
  6. SubscriptionSchema = new Schema
  7. admin_id : {type:ObjectId, ref:'User', index: {unique: true, dropDups: true}}
  8. member_ids : [ type:ObjectId, ref:'User' ]
  9. invited_emails: [ String ]
  10. teamInvites : [ TeamInviteSchema ]
  11. recurlySubscription_id : String
  12. planCode : {type: String}
  13. groupPlan : {type: Boolean, default: false}
  14. membersLimit: {type:Number, default:0}
  15. customAccount: Boolean
  16. freeTrial:
  17. expiresAt: Date
  18. downgraded: Boolean
  19. planCode: String
  20. allowed: {type: Boolean, default: true}
  21. SubscriptionSchema.statics.findAndModify = (query, update, callback)->
  22. self = @
  23. this.update query, update, ->
  24. self.findOne query, callback
  25. conn = mongoose.createConnection(Settings.mongo.url, {
  26. server: {poolSize: Settings.mongo.poolSize || 10},
  27. config: {autoIndex: false}
  28. })
  29. Subscription = conn.model('Subscription', SubscriptionSchema)
  30. mongoose.model 'Subscription', SubscriptionSchema
  31. exports.Subscription = Subscription
  32. exports.SubscriptionSchema = SubscriptionSchema