membership_packages.hrl 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. -type payment_type():: credit_card | mobile | paypal | wire_transfer | facebook.
  2. -type purchase_state() :: added | done | cancelled | pending | untracked.
  3. -record(basket, {
  4. user_id ::any(),
  5. package_id ::any()}).
  6. -record(membership_package, {
  7. id ::any(), % package id
  8. payment_type ::payment_type(),
  9. no ::integer(), % package number (need to display in pricelist)
  10. amount ::integer(), % price
  11. deducted_for_gifts ::integer(), % kakush currency charge
  12. net_membership ::integer(), % net membership fee
  13. available_for_sale = false ::boolean(), % not used yet
  14. quota::integer() % game quota
  15. }).
  16. -record(state_change, {
  17. time :: erlang:now(),
  18. state :: any(),
  19. info :: any()}).
  20. -record(membership_purchase, {
  21. id :: any(),
  22. external_id :: any(), % id of the purchase in external payment system if any
  23. user_id :: any(),
  24. state :: purchase_state(),
  25. membership_package :: #membership_package{},
  26. next :: any(),
  27. prev :: any(),
  28. start_time :: erlang:now(),
  29. end_time :: erlang:now(),
  30. state_log = [] :: [#state_change{}],
  31. info :: any() % payment-specific info about purchase if any
  32. }).
  33. -record(user_purchase, {
  34. user :: any(),
  35. top :: any()
  36. }).
  37. -define(MP_STATE_ADDED, added).
  38. -define(MP_STATE_DONE, done).
  39. -define(MP_STATE_CANCELLED, cancelled).
  40. -define(MP_STATE_UNTRACKED, untracked).
  41. -define(MP_STATE_PENDING, pending).
  42. -define(MP_STATE_FAILED, failed).
  43. -define(MP_STATE_UNKNOWN, unknown).
  44. -define(MP_STATE_CONFIRMED, confirmed).
  45. -define(MP_STATE_UNEXPECTED, unexpected).
  46. -define(MP_STATE_DISCARDED, discarded).
  47. -define(MP_MONTHLY_LIMIT_MULTIPLIER, 3).
  48. -record(pi_credit_card, {
  49. cardholder_name,
  50. cardholder_surname,
  51. cardnumber_masked,
  52. retref_num,
  53. prov_date,
  54. auth_code
  55. }).