codecombat/app/schemas/models/payment.schema.coffee

30 lines
1.1 KiB
CoffeeScript
Raw Normal View History

c = require './../schemas'
PaymentSchema = c.object({title: 'Payment', required: []}, {
purchaser: c.objectId(links: [ {rel: 'extra', href: '/db/user/{($)}'} ]) # in case of gifts
recipient: c.objectId(links: [ {rel: 'extra', href: '/db/user/{($)}'} ])
2015-02-26 11:44:53 -05:00
service: { enum: ['stripe', 'ios', 'invoice']}
amount: { type: 'integer', description: 'Payment in cents.' }
created: c.date({title: 'Created', readOnly: true})
gems: { type: 'integer', description: 'The number of gems acquired.' }
productID: { enum: ['gems_5', 'gems_10', 'gems_20']}
2015-02-26 11:44:53 -05:00
ios: c.object({title: 'iOS IAP Data'}, {
transactionID: { type: 'string' }
rawReceipt: { type: 'string' }
localPrice: { type: 'string' }
})
2015-02-26 11:44:53 -05:00
stripe: c.object({title: 'Stripe Data'}, {
timestamp: { type: 'integer', description: 'Unique identifier provided by the client, to guard against duplicate payments.' }
chargeID: { type: 'string' }
customerID: { type: 'string' }
2014-12-02 23:01:35 -05:00
invoiceID: { type: 'string' }
})
})
c.extendBasicProperties(PaymentSchema, 'payment')
module.exports = PaymentSchema