Subscription.coffee 1.1 KB

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