plans.ts 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. import { GroupPlans } from '@ol-types/subscription/dashboard/group-plans'
  2. import { Features, Plan } from '@ol-types/subscription/plan'
  3. const features = {
  4. student: {
  5. aiUsageQuota: 'basic',
  6. collaborators: 10,
  7. dropbox: true,
  8. versioning: true,
  9. github: true,
  10. templates: true,
  11. references: true,
  12. referencesSearch: true,
  13. gitBridge: true,
  14. zotero: true,
  15. mendeley: true,
  16. compileTimeout: 240,
  17. compileGroup: 'priority',
  18. trackChanges: true,
  19. symbolPalette: true,
  20. },
  21. personal: {
  22. aiUsageQuota: 'basic',
  23. collaborators: 1,
  24. dropbox: true,
  25. versioning: true,
  26. github: true,
  27. gitBridge: true,
  28. templates: true,
  29. references: true,
  30. referencesSearch: true,
  31. zotero: true,
  32. mendeley: true,
  33. compileTimeout: 240,
  34. compileGroup: 'priority',
  35. trackChanges: false,
  36. symbolPalette: true,
  37. },
  38. collaborator: {
  39. aiUsageQuota: 'standard',
  40. collaborators: 10,
  41. dropbox: true,
  42. versioning: true,
  43. github: true,
  44. templates: true,
  45. references: true,
  46. referencesSearch: true,
  47. zotero: true,
  48. gitBridge: true,
  49. mendeley: true,
  50. compileTimeout: 240,
  51. compileGroup: 'priority',
  52. trackChanges: true,
  53. symbolPalette: true,
  54. },
  55. professional: {
  56. aiUsageQuota: 'unlimited',
  57. collaborators: -1,
  58. dropbox: true,
  59. versioning: true,
  60. github: true,
  61. templates: true,
  62. references: true,
  63. referencesSearch: true,
  64. zotero: true,
  65. gitBridge: true,
  66. mendeley: true,
  67. compileTimeout: 240,
  68. compileGroup: 'priority',
  69. trackChanges: true,
  70. symbolPalette: true,
  71. },
  72. } satisfies Record<string, Features>
  73. const studentAccounts: Array<Plan> = [
  74. {
  75. planCode: 'student',
  76. name: 'Student monthly',
  77. price_in_cents: 1000,
  78. features: features.student,
  79. featureDescription: [],
  80. },
  81. {
  82. planCode: 'student-annual',
  83. name: 'Student annual',
  84. price_in_cents: 9900,
  85. annual: true,
  86. features: features.student,
  87. featureDescription: [],
  88. },
  89. {
  90. planCode: 'student_free_trial',
  91. name: 'Student monthly',
  92. price_in_cents: 800,
  93. features: features.student,
  94. hideFromUsers: true,
  95. featureDescription: [],
  96. },
  97. {
  98. planCode: 'student_free_trial_7_days',
  99. name: 'Student monthly',
  100. price_in_cents: 1000,
  101. features: features.student,
  102. hideFromUsers: true,
  103. featureDescription: [],
  104. },
  105. ]
  106. const individualMonthlyPlans: Array<Plan> = [
  107. {
  108. planCode: 'paid-personal',
  109. name: 'Personal',
  110. price_in_cents: 1500,
  111. features: features.personal,
  112. featureDescription: [],
  113. },
  114. {
  115. planCode: 'paid-personal_free_trial_7_days',
  116. name: 'Personal (hidden)',
  117. price_in_cents: 1500,
  118. features: features.personal,
  119. featureDescription: [],
  120. hideFromUsers: true,
  121. },
  122. {
  123. planCode: 'collaborator',
  124. name: 'Standard monthly',
  125. price_in_cents: 2300,
  126. features: features.collaborator,
  127. featureDescription: [],
  128. },
  129. {
  130. planCode: 'professional',
  131. name: 'Pro monthly',
  132. price_in_cents: 4500,
  133. features: features.professional,
  134. featureDescription: [],
  135. },
  136. {
  137. planCode: 'collaborator_free_trial',
  138. name: 'Standard monthly (hidden)',
  139. price_in_cents: 1900,
  140. features: features.collaborator,
  141. hideFromUsers: true,
  142. featureDescription: [],
  143. },
  144. {
  145. planCode: 'collaborator_free_trial_14_days',
  146. name: 'Standard monthly (hidden)',
  147. price_in_cents: 1900,
  148. features: features.collaborator,
  149. hideFromUsers: true,
  150. featureDescription: [],
  151. },
  152. {
  153. planCode: 'collaborator_free_trial_7_days',
  154. name: 'Standard monthly (hidden)',
  155. price_in_cents: 2300,
  156. features: features.collaborator,
  157. hideFromUsers: true,
  158. featureDescription: [],
  159. },
  160. {
  161. planCode: 'collaborator-annual_free_trial',
  162. name: 'Standard annual (hidden)',
  163. price_in_cents: 18000,
  164. features: features.collaborator,
  165. hideFromUsers: true,
  166. featureDescription: [],
  167. },
  168. {
  169. planCode: 'professional_free_trial',
  170. name: 'Pro monthly (hidden)',
  171. price_in_cents: 3000,
  172. features: features.professional,
  173. hideFromUsers: true,
  174. featureDescription: [],
  175. },
  176. {
  177. planCode: 'professional_free_trial_7_days',
  178. name: 'Pro monthly (hidden)',
  179. price_in_cents: 4500,
  180. features: features.professional,
  181. hideFromUsers: true,
  182. featureDescription: [],
  183. },
  184. ]
  185. const individualAnnualPlans: Array<Plan> = [
  186. {
  187. planCode: 'paid-personal-annual',
  188. name: 'Personal annual',
  189. price_in_cents: 13900,
  190. annual: true,
  191. features: features.personal,
  192. featureDescription: [],
  193. },
  194. {
  195. planCode: 'collaborator-annual',
  196. name: 'Standard annual',
  197. price_in_cents: 21900,
  198. annual: true,
  199. features: features.collaborator,
  200. featureDescription: [],
  201. },
  202. {
  203. planCode: 'professional-annual',
  204. name: 'Pro annual',
  205. price_in_cents: 42900,
  206. annual: true,
  207. features: features.professional,
  208. featureDescription: [],
  209. },
  210. ]
  211. export const plans = [
  212. ...studentAccounts,
  213. ...individualMonthlyPlans,
  214. ...individualAnnualPlans,
  215. ]
  216. export const groupPlans: GroupPlans = {
  217. plans: [
  218. {
  219. display: 'Standard',
  220. code: 'collaborator',
  221. },
  222. {
  223. display: 'Pro',
  224. code: 'professional',
  225. },
  226. ],
  227. sizes: ['2', '3', '4', '5', '10', '20'],
  228. }
  229. export const groupPriceByUsageTypeAndSize = {
  230. educational: {
  231. professional: {
  232. EUR: {
  233. '2': {
  234. price_in_cents: 51600,
  235. },
  236. '3': {
  237. price_in_cents: 77400,
  238. },
  239. '4': {
  240. price_in_cents: 103200,
  241. },
  242. '5': {
  243. price_in_cents: 129000,
  244. },
  245. '10': {
  246. price_in_cents: 143000,
  247. },
  248. '20': {
  249. price_in_cents: 264000,
  250. },
  251. },
  252. USD: {
  253. '2': {
  254. price_in_cents: 55800,
  255. },
  256. '3': {
  257. price_in_cents: 83700,
  258. },
  259. '4': {
  260. price_in_cents: 111600,
  261. },
  262. '5': {
  263. price_in_cents: 139500,
  264. },
  265. '10': {
  266. price_in_cents: 155000,
  267. },
  268. '20': {
  269. price_in_cents: 286000,
  270. },
  271. },
  272. },
  273. collaborator: {
  274. EUR: {
  275. '2': {
  276. price_in_cents: 25000,
  277. },
  278. '3': {
  279. price_in_cents: 37500,
  280. },
  281. '4': {
  282. price_in_cents: 50000,
  283. },
  284. '5': {
  285. price_in_cents: 62500,
  286. },
  287. '10': {
  288. price_in_cents: 69000,
  289. },
  290. '20': {
  291. price_in_cents: 128000,
  292. },
  293. },
  294. USD: {
  295. '2': {
  296. price_in_cents: 27800,
  297. },
  298. '3': {
  299. price_in_cents: 41700,
  300. },
  301. '4': {
  302. price_in_cents: 55600,
  303. },
  304. '5': {
  305. price_in_cents: 69500,
  306. },
  307. '10': {
  308. price_in_cents: 77000,
  309. },
  310. '20': {
  311. price_in_cents: 142000,
  312. },
  313. },
  314. },
  315. },
  316. enterprise: {
  317. professional: {
  318. EUR: {
  319. '2': {
  320. price_in_cents: 51600,
  321. },
  322. '3': {
  323. price_in_cents: 77400,
  324. },
  325. '4': {
  326. price_in_cents: 103200,
  327. },
  328. '5': {
  329. price_in_cents: 129000,
  330. },
  331. '10': {
  332. price_in_cents: 239000,
  333. },
  334. '20': {
  335. price_in_cents: 442000,
  336. },
  337. },
  338. USD: {
  339. '2': {
  340. price_in_cents: 55800,
  341. },
  342. '3': {
  343. price_in_cents: 83700,
  344. },
  345. '4': {
  346. price_in_cents: 111600,
  347. },
  348. '5': {
  349. price_in_cents: 139500,
  350. },
  351. '10': {
  352. price_in_cents: 259000,
  353. },
  354. '20': {
  355. price_in_cents: 478000,
  356. },
  357. },
  358. },
  359. collaborator: {
  360. EUR: {
  361. '2': {
  362. price_in_cents: 25000,
  363. },
  364. '3': {
  365. price_in_cents: 37500,
  366. },
  367. '4': {
  368. price_in_cents: 50000,
  369. },
  370. '5': {
  371. price_in_cents: 62500,
  372. },
  373. '10': {
  374. price_in_cents: 116000,
  375. },
  376. '20': {
  377. price_in_cents: 214000,
  378. },
  379. },
  380. USD: {
  381. '2': {
  382. price_in_cents: 27800,
  383. },
  384. '3': {
  385. price_in_cents: 41700,
  386. },
  387. '4': {
  388. price_in_cents: 55600,
  389. },
  390. '5': {
  391. price_in_cents: 69500,
  392. },
  393. '10': {
  394. price_in_cents: 129000,
  395. },
  396. '20': {
  397. price_in_cents: 238000,
  398. },
  399. },
  400. },
  401. },
  402. }