mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-29 03:10:51 +00:00
show transaction usage history detail
This commit is contained in:
+152
-7
@@ -28,14 +28,14 @@
|
||||
"/chunks/app-settings.js": "/chunks/app-settings.js?id=62ce73b2d66590912cbc",
|
||||
"/chunks/app-setup.js": "/chunks/app-setup.js?id=c3a013b11ae7bde6f39d",
|
||||
"/chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/database~chunks/email-veri~2c1222b7.js": "/chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/database~chunks/email-veri~2c1222b7.js?id=5963f5d9fb4e759c600a",
|
||||
"/chunks/billing.js": "/chunks/billing.js?id=f33b2fc1ee85392e3883",
|
||||
"/chunks/billing.js": "/chunks/billing.js?id=42bd4fd1fcb7b7b4e301",
|
||||
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=0ffe43f76a33278ce1b8",
|
||||
"/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.js": "/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.js?id=d56f3c7df8d8dd9caaaf",
|
||||
"/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.js": "/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.js?id=cb4a650a91230e3d2abe",
|
||||
"/chunks/billing~chunks/settings-storage~chunks/user-storage~chunks/user-subscription.js": "/chunks/billing~chunks/settings-storage~chunks/user-storage~chunks/user-subscription.js?id=669bd6d15cfa4c6e75df",
|
||||
"/chunks/contact-us.js": "/chunks/contact-us.js?id=b3feaa361fc486e6a0b3",
|
||||
"/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js?id=65ee559ca803555be568",
|
||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=8451872075acf5b1b9ab",
|
||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=eda5f98a3982867337cc",
|
||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=1e356001cbd178279e37",
|
||||
"/chunks/dashboard~chunks/plan-subscribers~chunks/users.js": "/chunks/dashboard~chunks/plan-subscribers~chunks/users.js?id=9bb04319263a6c0742f0",
|
||||
"/chunks/database.js": "/chunks/database.js?id=d469910e2c3f230d05f0",
|
||||
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=6c86916c6c6f679fa86b",
|
||||
@@ -71,9 +71,9 @@
|
||||
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=a81388efd770d51f8a9c",
|
||||
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=2da6b9e5f951fb7f4312",
|
||||
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=8577d4c771602671b38a",
|
||||
"/chunks/settings.js": "/chunks/settings.js?id=a3d805c2e2a066f87653",
|
||||
"/chunks/settings.js": "/chunks/settings.js?id=d43d99bf7a6bdbe4f526",
|
||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=99a6e8d1766e79bb2a09",
|
||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=9eefbf595758685d01b7",
|
||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=84f35e2124d825cc5039",
|
||||
"/chunks/settings~chunks/settings-password.js": "/chunks/settings~chunks/settings-password.js?id=aafc9cd6aa47b01bc25a",
|
||||
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=651d5accf401908724c5",
|
||||
"/chunks/shared.js": "/chunks/shared.js?id=db60726012b6d246bd77",
|
||||
@@ -97,7 +97,7 @@
|
||||
"/chunks/user-delete.js": "/chunks/user-delete.js?id=583f4b95444d3d85550e",
|
||||
"/chunks/user-detail.js": "/chunks/user-detail.js?id=d007b9e4c73748be49e4",
|
||||
"/chunks/user-password.js": "/chunks/user-password.js?id=da0dced867709ba29629",
|
||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=1d2248f2fca7f0bc95f6",
|
||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=dc15b1ab19069deb07a1",
|
||||
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=ab860189f1c734dc042c",
|
||||
"/chunks/users.js": "/chunks/users.js?id=30dcb71f8bc48a2c8893",
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-email~chunks/app-index~ch~7523d900.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-email~chunks/app-index~ch~7523d900.js?id=02104d6d78a8ffe97c12",
|
||||
@@ -209,5 +209,150 @@
|
||||
"/chunks/dashboard.b74701f4fc0048082c83.hot-update.js": "/chunks/dashboard.b74701f4fc0048082c83.hot-update.js",
|
||||
"/chunks/dashboard.0a5793d3140c67329f68.hot-update.js": "/chunks/dashboard.0a5793d3140c67329f68.hot-update.js",
|
||||
"/chunks/dashboard.355d4c1c7c311cf4d00c.hot-update.js": "/chunks/dashboard.355d4c1c7c311cf4d00c.hot-update.js",
|
||||
"/chunks/dashboard.949feb2d4c59f318d311.hot-update.js": "/chunks/dashboard.949feb2d4c59f318d311.hot-update.js"
|
||||
"/chunks/dashboard.949feb2d4c59f318d311.hot-update.js": "/chunks/dashboard.949feb2d4c59f318d311.hot-update.js",
|
||||
"/chunks/billing.3f28e3938e54bec091a8.hot-update.js": "/chunks/billing.3f28e3938e54bec091a8.hot-update.js",
|
||||
"/chunks/billing.353be9534c66587b95bb.hot-update.js": "/chunks/billing.353be9534c66587b95bb.hot-update.js",
|
||||
"/chunks/billing.3f0f546a80b0b01ad208.hot-update.js": "/chunks/billing.3f0f546a80b0b01ad208.hot-update.js",
|
||||
"/chunks/billing.77f53d250bc372273737.hot-update.js": "/chunks/billing.77f53d250bc372273737.hot-update.js",
|
||||
"/chunks/billing.c6a3c5d2737ac2c87d59.hot-update.js": "/chunks/billing.c6a3c5d2737ac2c87d59.hot-update.js",
|
||||
"/chunks/billing.9c66f94c95217ede2a9f.hot-update.js": "/chunks/billing.9c66f94c95217ede2a9f.hot-update.js",
|
||||
"/chunks/billing.eb73f9df364fbc91324a.hot-update.js": "/chunks/billing.eb73f9df364fbc91324a.hot-update.js",
|
||||
"/chunks/billing.288d47e9c5a02146cd4d.hot-update.js": "/chunks/billing.288d47e9c5a02146cd4d.hot-update.js",
|
||||
"/chunks/billing.7ce8883f7933a274e52c.hot-update.js": "/chunks/billing.7ce8883f7933a274e52c.hot-update.js",
|
||||
"/chunks/billing.ae847eea001d33691526.hot-update.js": "/chunks/billing.ae847eea001d33691526.hot-update.js",
|
||||
"/chunks/billing.297ad2b0812de4e6e057.hot-update.js": "/chunks/billing.297ad2b0812de4e6e057.hot-update.js",
|
||||
"/chunks/billing.4999dfe3163965e24ace.hot-update.js": "/chunks/billing.4999dfe3163965e24ace.hot-update.js",
|
||||
"/chunks/billing.7ee6ce45de3aef3dd811.hot-update.js": "/chunks/billing.7ee6ce45de3aef3dd811.hot-update.js",
|
||||
"/chunks/billing.52b3de7246605beebf65.hot-update.js": "/chunks/billing.52b3de7246605beebf65.hot-update.js",
|
||||
"/chunks/billing.8fb1783c6217092398ad.hot-update.js": "/chunks/billing.8fb1783c6217092398ad.hot-update.js",
|
||||
"/chunks/billing.75cb21487cd3bce1c423.hot-update.js": "/chunks/billing.75cb21487cd3bce1c423.hot-update.js",
|
||||
"/chunks/billing.ffef43cf83ea9de91b1b.hot-update.js": "/chunks/billing.ffef43cf83ea9de91b1b.hot-update.js",
|
||||
"/chunks/billing.470e77a8264363e6029c.hot-update.js": "/chunks/billing.470e77a8264363e6029c.hot-update.js",
|
||||
"/chunks/billing.b1796e9a06e4c7a31491.hot-update.js": "/chunks/billing.b1796e9a06e4c7a31491.hot-update.js",
|
||||
"/chunks/billing.1189c11ab2faaa5f020e.hot-update.js": "/chunks/billing.1189c11ab2faaa5f020e.hot-update.js",
|
||||
"/chunks/billing.8af4cc4a334b02318d5d.hot-update.js": "/chunks/billing.8af4cc4a334b02318d5d.hot-update.js",
|
||||
"/chunks/billing.9d8e625a0072471e9f93.hot-update.js": "/chunks/billing.9d8e625a0072471e9f93.hot-update.js",
|
||||
"/chunks/billing.5cf6716edf8a470e6258.hot-update.js": "/chunks/billing.5cf6716edf8a470e6258.hot-update.js",
|
||||
"/chunks/billing.640b057a799494587d58.hot-update.js": "/chunks/billing.640b057a799494587d58.hot-update.js",
|
||||
"/chunks/billing.5539da0d7790513ae0e9.hot-update.js": "/chunks/billing.5539da0d7790513ae0e9.hot-update.js",
|
||||
"/chunks/billing.94cf499292df4964649b.hot-update.js": "/chunks/billing.94cf499292df4964649b.hot-update.js",
|
||||
"/chunks/billing.e6ae0baeb80d5ea7c7af.hot-update.js": "/chunks/billing.e6ae0baeb80d5ea7c7af.hot-update.js",
|
||||
"/chunks/billing.eb3311d750ca3a9b03c3.hot-update.js": "/chunks/billing.eb3311d750ca3a9b03c3.hot-update.js",
|
||||
"/chunks/billing.02144ff10cfd85ac86b6.hot-update.js": "/chunks/billing.02144ff10cfd85ac86b6.hot-update.js",
|
||||
"/chunks/billing.b872ab40da4863571ce6.hot-update.js": "/chunks/billing.b872ab40da4863571ce6.hot-update.js",
|
||||
"/chunks/billing.9e61907e3caad03fbd2f.hot-update.js": "/chunks/billing.9e61907e3caad03fbd2f.hot-update.js",
|
||||
"/chunks/billing.1c28c03888d3e6f668fb.hot-update.js": "/chunks/billing.1c28c03888d3e6f668fb.hot-update.js",
|
||||
"/chunks/billing.f02c630da40ae8b10fc6.hot-update.js": "/chunks/billing.f02c630da40ae8b10fc6.hot-update.js",
|
||||
"/chunks/billing.cc9413866a199159ad77.hot-update.js": "/chunks/billing.cc9413866a199159ad77.hot-update.js",
|
||||
"/chunks/billing.dcff5b9b4e5673330c6b.hot-update.js": "/chunks/billing.dcff5b9b4e5673330c6b.hot-update.js",
|
||||
"/chunks/billing.3a86c6e8262d4323c3bf.hot-update.js": "/chunks/billing.3a86c6e8262d4323c3bf.hot-update.js",
|
||||
"/chunks/billing.c523d518bde39e967d6d.hot-update.js": "/chunks/billing.c523d518bde39e967d6d.hot-update.js",
|
||||
"/chunks/billing.9f84367a1897fc0e95f1.hot-update.js": "/chunks/billing.9f84367a1897fc0e95f1.hot-update.js",
|
||||
"/chunks/billing.57b5e7c2ff844e6a1200.hot-update.js": "/chunks/billing.57b5e7c2ff844e6a1200.hot-update.js",
|
||||
"/chunks/billing.5a75b549ea91110e7bb0.hot-update.js": "/chunks/billing.5a75b549ea91110e7bb0.hot-update.js",
|
||||
"/chunks/billing.d2ac0cc314c50dd5dd1b.hot-update.js": "/chunks/billing.d2ac0cc314c50dd5dd1b.hot-update.js",
|
||||
"/chunks/billing.8917db149f36e31b2e0e.hot-update.js": "/chunks/billing.8917db149f36e31b2e0e.hot-update.js",
|
||||
"/chunks/dashboard.1768366c2c5ca45cfdf0.hot-update.js": "/chunks/dashboard.1768366c2c5ca45cfdf0.hot-update.js",
|
||||
"/chunks/settings-storage.1768366c2c5ca45cfdf0.hot-update.js": "/chunks/settings-storage.1768366c2c5ca45cfdf0.hot-update.js",
|
||||
"/chunks/user-storage.1768366c2c5ca45cfdf0.hot-update.js": "/chunks/user-storage.1768366c2c5ca45cfdf0.hot-update.js",
|
||||
"/chunks/dashboard.09c5a2ad001f422532bf.hot-update.js": "/chunks/dashboard.09c5a2ad001f422532bf.hot-update.js",
|
||||
"/chunks/settings-storage.09c5a2ad001f422532bf.hot-update.js": "/chunks/settings-storage.09c5a2ad001f422532bf.hot-update.js",
|
||||
"/chunks/user-storage.09c5a2ad001f422532bf.hot-update.js": "/chunks/user-storage.09c5a2ad001f422532bf.hot-update.js",
|
||||
"/chunks/dashboard.51f178c18acaddee8b3f.hot-update.js": "/chunks/dashboard.51f178c18acaddee8b3f.hot-update.js",
|
||||
"/chunks/settings-storage.51f178c18acaddee8b3f.hot-update.js": "/chunks/settings-storage.51f178c18acaddee8b3f.hot-update.js",
|
||||
"/chunks/user-storage.51f178c18acaddee8b3f.hot-update.js": "/chunks/user-storage.51f178c18acaddee8b3f.hot-update.js",
|
||||
"/chunks/billing.ff5b7d3fa56ca196ac1f.hot-update.js": "/chunks/billing.ff5b7d3fa56ca196ac1f.hot-update.js",
|
||||
"/chunks/billing.6cb3fbdcd71f98c8fe1d.hot-update.js": "/chunks/billing.6cb3fbdcd71f98c8fe1d.hot-update.js",
|
||||
"/chunks/billing.de44db6c6061e9ea02ae.hot-update.js": "/chunks/billing.de44db6c6061e9ea02ae.hot-update.js",
|
||||
"/chunks/billing.f0c68ed57836b4362960.hot-update.js": "/chunks/billing.f0c68ed57836b4362960.hot-update.js",
|
||||
"/chunks/billing.511807a92aa8134fc3f5.hot-update.js": "/chunks/billing.511807a92aa8134fc3f5.hot-update.js",
|
||||
"/chunks/billing.da37360b36176b0939f9.hot-update.js": "/chunks/billing.da37360b36176b0939f9.hot-update.js",
|
||||
"/chunks/billing.71928a9c5a7fe8ebf2ff.hot-update.js": "/chunks/billing.71928a9c5a7fe8ebf2ff.hot-update.js",
|
||||
"/chunks/billing.848bed9aa612ffa83c16.hot-update.js": "/chunks/billing.848bed9aa612ffa83c16.hot-update.js",
|
||||
"/chunks/billing.9a17f7240f2d45bd4b98.hot-update.js": "/chunks/billing.9a17f7240f2d45bd4b98.hot-update.js",
|
||||
"/chunks/billing.491f5d1d2d48362ef385.hot-update.js": "/chunks/billing.491f5d1d2d48362ef385.hot-update.js",
|
||||
"/chunks/billing.9f12b0cf92b8d66f2aae.hot-update.js": "/chunks/billing.9f12b0cf92b8d66f2aae.hot-update.js",
|
||||
"/chunks/billing.10b639acfd367914cd39.hot-update.js": "/chunks/billing.10b639acfd367914cd39.hot-update.js",
|
||||
"/chunks/billing.6d8060a1bee99e4fc25f.hot-update.js": "/chunks/billing.6d8060a1bee99e4fc25f.hot-update.js",
|
||||
"/chunks/settings.09f70076461cbfc47483.hot-update.js": "/chunks/settings.09f70076461cbfc47483.hot-update.js",
|
||||
"/chunks/billing.fea532b55d06222418d5.hot-update.js": "/chunks/billing.fea532b55d06222418d5.hot-update.js",
|
||||
"/chunks/settings.a4aaab8ad59f363247d0.hot-update.js": "/chunks/settings.a4aaab8ad59f363247d0.hot-update.js",
|
||||
"/chunks/settings.56507f2e88509ada0487.hot-update.js": "/chunks/settings.56507f2e88509ada0487.hot-update.js",
|
||||
"/chunks/settings.8e4c7736a55ee6c40517.hot-update.js": "/chunks/settings.8e4c7736a55ee6c40517.hot-update.js",
|
||||
"/chunks/settings.0604d8fb1ce2c3f6c9a7.hot-update.js": "/chunks/settings.0604d8fb1ce2c3f6c9a7.hot-update.js",
|
||||
"/chunks/settings.1911682ada11ad1f2e1a.hot-update.js": "/chunks/settings.1911682ada11ad1f2e1a.hot-update.js",
|
||||
"/chunks/settings.568507e6ebd8d80946e5.hot-update.js": "/chunks/settings.568507e6ebd8d80946e5.hot-update.js",
|
||||
"/chunks/settings.370540c5b62299b6c3a2.hot-update.js": "/chunks/settings.370540c5b62299b6c3a2.hot-update.js",
|
||||
"/chunks/billing.59f737749a55d034f1e5.hot-update.js": "/chunks/billing.59f737749a55d034f1e5.hot-update.js",
|
||||
"/chunks/billing.69ceca93b226be276d1f.hot-update.js": "/chunks/billing.69ceca93b226be276d1f.hot-update.js",
|
||||
"/chunks/billing.b546be24322bbfb8dee4.hot-update.js": "/chunks/billing.b546be24322bbfb8dee4.hot-update.js",
|
||||
"/chunks/billing.455877de1435c64c4662.hot-update.js": "/chunks/billing.455877de1435c64c4662.hot-update.js",
|
||||
"/chunks/billing.2b03ab2e6000a8631b4a.hot-update.js": "/chunks/billing.2b03ab2e6000a8631b4a.hot-update.js",
|
||||
"/chunks/billing.4220572dd9a64414e0bd.hot-update.js": "/chunks/billing.4220572dd9a64414e0bd.hot-update.js",
|
||||
"/chunks/billing.6c4d4140f8d2f64e7e29.hot-update.js": "/chunks/billing.6c4d4140f8d2f64e7e29.hot-update.js",
|
||||
"/chunks/billing.d6ab30375db2849f827a.hot-update.js": "/chunks/billing.d6ab30375db2849f827a.hot-update.js",
|
||||
"/chunks/billing.9310267b0b8d118dc155.hot-update.js": "/chunks/billing.9310267b0b8d118dc155.hot-update.js",
|
||||
"/chunks/billing.d707ff2df6c7d0bd60df.hot-update.js": "/chunks/billing.d707ff2df6c7d0bd60df.hot-update.js",
|
||||
"/chunks/billing.7c38045bf9f1781e548f.hot-update.js": "/chunks/billing.7c38045bf9f1781e548f.hot-update.js",
|
||||
"/js/main.ffba8bb652ebd451714f.hot-update.js": "/js/main.ffba8bb652ebd451714f.hot-update.js",
|
||||
"/js/main.100ec61125bc90a63ccf.hot-update.js": "/js/main.100ec61125bc90a63ccf.hot-update.js",
|
||||
"/chunks/billing.1f769ffe383ca65b2260.hot-update.js": "/chunks/billing.1f769ffe383ca65b2260.hot-update.js",
|
||||
"/chunks/billing.4e93ed13caa9651ae023.hot-update.js": "/chunks/billing.4e93ed13caa9651ae023.hot-update.js",
|
||||
"/chunks/billing.54f91c1cb4ef0a22df2b.hot-update.js": "/chunks/billing.54f91c1cb4ef0a22df2b.hot-update.js",
|
||||
"/chunks/billing.7017eebd1a40a4c29336.hot-update.js": "/chunks/billing.7017eebd1a40a4c29336.hot-update.js",
|
||||
"/chunks/billing.94873e7e84cb1de4b615.hot-update.js": "/chunks/billing.94873e7e84cb1de4b615.hot-update.js",
|
||||
"/chunks/billing.97d8eb920b5af070b2a2.hot-update.js": "/chunks/billing.97d8eb920b5af070b2a2.hot-update.js",
|
||||
"/chunks/billing.95093d8fb8fe26fecad5.hot-update.js": "/chunks/billing.95093d8fb8fe26fecad5.hot-update.js",
|
||||
"/chunks/billing.53677d7301784a0dfc30.hot-update.js": "/chunks/billing.53677d7301784a0dfc30.hot-update.js",
|
||||
"/chunks/billing.895f463adeff15c31ce0.hot-update.js": "/chunks/billing.895f463adeff15c31ce0.hot-update.js",
|
||||
"/chunks/billing.1ca6afe4ab0ea1e4dd5f.hot-update.js": "/chunks/billing.1ca6afe4ab0ea1e4dd5f.hot-update.js",
|
||||
"/chunks/billing.63de3f13374ced4187b4.hot-update.js": "/chunks/billing.63de3f13374ced4187b4.hot-update.js",
|
||||
"/chunks/billing.54180aec1a7dd044ccf3.hot-update.js": "/chunks/billing.54180aec1a7dd044ccf3.hot-update.js",
|
||||
"/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.21980d7efb5c89ef8fa3.hot-update.js": "/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.21980d7efb5c89ef8fa3.hot-update.js",
|
||||
"/chunks/billing.89f329dfe2918be60b2d.hot-update.js": "/chunks/billing.89f329dfe2918be60b2d.hot-update.js",
|
||||
"/chunks/billing.ab1f75c20417a9c76c52.hot-update.js": "/chunks/billing.ab1f75c20417a9c76c52.hot-update.js",
|
||||
"/chunks/billing.0a9bfa51e84f9a436182.hot-update.js": "/chunks/billing.0a9bfa51e84f9a436182.hot-update.js",
|
||||
"/chunks/billing.9422dcf23dd5c44eaa1c.hot-update.js": "/chunks/billing.9422dcf23dd5c44eaa1c.hot-update.js",
|
||||
"/chunks/billing.6ad03d9933308d2d9a78.hot-update.js": "/chunks/billing.6ad03d9933308d2d9a78.hot-update.js",
|
||||
"/chunks/billing.0ae9cfe2030abe155177.hot-update.js": "/chunks/billing.0ae9cfe2030abe155177.hot-update.js",
|
||||
"/chunks/billing.96f91847569dd550c69a.hot-update.js": "/chunks/billing.96f91847569dd550c69a.hot-update.js",
|
||||
"/chunks/billing.a0bd4cf216f2a8f5ae81.hot-update.js": "/chunks/billing.a0bd4cf216f2a8f5ae81.hot-update.js",
|
||||
"/chunks/billing.edd9a973910cbae06261.hot-update.js": "/chunks/billing.edd9a973910cbae06261.hot-update.js",
|
||||
"/chunks/billing.c6438e7b5531d22a3cda.hot-update.js": "/chunks/billing.c6438e7b5531d22a3cda.hot-update.js",
|
||||
"/chunks/billing.628da4e4303326e67edc.hot-update.js": "/chunks/billing.628da4e4303326e67edc.hot-update.js",
|
||||
"/chunks/billing.f9f8c483fb0cb84297bc.hot-update.js": "/chunks/billing.f9f8c483fb0cb84297bc.hot-update.js",
|
||||
"/chunks/billing.4ebaf80a564874a8f880.hot-update.js": "/chunks/billing.4ebaf80a564874a8f880.hot-update.js",
|
||||
"/chunks/billing.8f7c74627f17a2738a40.hot-update.js": "/chunks/billing.8f7c74627f17a2738a40.hot-update.js",
|
||||
"/chunks/billing.fdcc28962927c4ae5425.hot-update.js": "/chunks/billing.fdcc28962927c4ae5425.hot-update.js",
|
||||
"/chunks/billing.05af80d5540150f4b4bb.hot-update.js": "/chunks/billing.05af80d5540150f4b4bb.hot-update.js",
|
||||
"/chunks/billing.0a9b243bb3fff275845d.hot-update.js": "/chunks/billing.0a9b243bb3fff275845d.hot-update.js",
|
||||
"/chunks/billing.feb37f6ae865778f3bf0.hot-update.js": "/chunks/billing.feb37f6ae865778f3bf0.hot-update.js",
|
||||
"/chunks/billing.ace9b872b7c7ca5b3315.hot-update.js": "/chunks/billing.ace9b872b7c7ca5b3315.hot-update.js",
|
||||
"/chunks/billing.9f9375b7a73810185ba8.hot-update.js": "/chunks/billing.9f9375b7a73810185ba8.hot-update.js",
|
||||
"/chunks/billing.8c078532cdcf3eb6646e.hot-update.js": "/chunks/billing.8c078532cdcf3eb6646e.hot-update.js",
|
||||
"/chunks/billing.a6e16dfd98623d1c6fe3.hot-update.js": "/chunks/billing.a6e16dfd98623d1c6fe3.hot-update.js",
|
||||
"/chunks/billing.d89ebefd1929642ec7b8.hot-update.js": "/chunks/billing.d89ebefd1929642ec7b8.hot-update.js",
|
||||
"/chunks/billing.4b0e0ffcbac1ac8b28d8.hot-update.js": "/chunks/billing.4b0e0ffcbac1ac8b28d8.hot-update.js",
|
||||
"/chunks/billing.0c36385ac001f5d85720.hot-update.js": "/chunks/billing.0c36385ac001f5d85720.hot-update.js",
|
||||
"/chunks/billing.5ae12df0e6221943f8fe.hot-update.js": "/chunks/billing.5ae12df0e6221943f8fe.hot-update.js",
|
||||
"/chunks/billing.f50632a11c8380c1fdfb.hot-update.js": "/chunks/billing.f50632a11c8380c1fdfb.hot-update.js",
|
||||
"/chunks/billing.cd25f459a392710ac260.hot-update.js": "/chunks/billing.cd25f459a392710ac260.hot-update.js",
|
||||
"/chunks/billing.11a65b412f5fe7cf21f4.hot-update.js": "/chunks/billing.11a65b412f5fe7cf21f4.hot-update.js",
|
||||
"/chunks/billing.3518676d250698148277.hot-update.js": "/chunks/billing.3518676d250698148277.hot-update.js",
|
||||
"/chunks/billing.71beea9a28e1cdf6c3b3.hot-update.js": "/chunks/billing.71beea9a28e1cdf6c3b3.hot-update.js",
|
||||
"/chunks/billing.30a99bceacb742f9f14c.hot-update.js": "/chunks/billing.30a99bceacb742f9f14c.hot-update.js",
|
||||
"/chunks/billing.c08835e2571944689949.hot-update.js": "/chunks/billing.c08835e2571944689949.hot-update.js",
|
||||
"/chunks/billing.068d87ccd9602b6b5607.hot-update.js": "/chunks/billing.068d87ccd9602b6b5607.hot-update.js",
|
||||
"/chunks/billing.deaa75eebf6714499b61.hot-update.js": "/chunks/billing.deaa75eebf6714499b61.hot-update.js",
|
||||
"/chunks/billing.4f4d50392150e84b232c.hot-update.js": "/chunks/billing.4f4d50392150e84b232c.hot-update.js",
|
||||
"/chunks/billing.ba7b4517ea952230f068.hot-update.js": "/chunks/billing.ba7b4517ea952230f068.hot-update.js",
|
||||
"/chunks/billing.f94236e120e695581da7.hot-update.js": "/chunks/billing.f94236e120e695581da7.hot-update.js",
|
||||
"/chunks/billing.55975add60c3cd6ddf50.hot-update.js": "/chunks/billing.55975add60c3cd6ddf50.hot-update.js",
|
||||
"/chunks/billing.1e0e627b9b0b5a31b1c0.hot-update.js": "/chunks/billing.1e0e627b9b0b5a31b1c0.hot-update.js",
|
||||
"/chunks/billing.088ca33888a57757c0b9.hot-update.js": "/chunks/billing.088ca33888a57757c0b9.hot-update.js",
|
||||
"/chunks/billing.354123f9ae5a730a0f39.hot-update.js": "/chunks/billing.354123f9ae5a730a0f39.hot-update.js",
|
||||
"/chunks/billing.ddbbd21b07838acfad59.hot-update.js": "/chunks/billing.ddbbd21b07838acfad59.hot-update.js",
|
||||
"/chunks/billing.51b976e8a57d4c966480.hot-update.js": "/chunks/billing.51b976e8a57d4c966480.hot-update.js",
|
||||
"/chunks/billing.28887d58a1607435d7a6.hot-update.js": "/chunks/billing.28887d58a1607435d7a6.hot-update.js",
|
||||
"/chunks/billing.6e9762e10af164f8b6ab.hot-update.js": "/chunks/billing.6e9762e10af164f8b6ab.hot-update.js"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="w-full">
|
||||
<table v-if="hasData" class="w-full">
|
||||
<thead class="">
|
||||
<tr>
|
||||
<tr class="whitespace-nowrap">
|
||||
<th
|
||||
class="text-left"
|
||||
v-for="(column, index) in columns"
|
||||
|
||||
@@ -5,39 +5,82 @@
|
||||
</FormLabel>
|
||||
|
||||
<DatatableWrapper
|
||||
api="/api/subscriptions/transactions"
|
||||
class="overflow-x-auto"
|
||||
api="/api/user/transactions"
|
||||
:paginator="true"
|
||||
:columns="columns"
|
||||
>
|
||||
<!--TODO: refactor all tables as this template-->
|
||||
<template slot-scope="{ row }">
|
||||
<tr class="border-b dark:border-opacity-5 border-light border-dashed">
|
||||
<td class="py-4">
|
||||
<tr class="border-b dark:border-opacity-5 border-light border-dashed whitespace-nowrap">
|
||||
<td class="py-5 md:pr-1 pr-3">
|
||||
<span class="text-sm font-bold">
|
||||
{{ row.data.attributes.note }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<td class="md:px-1 px-3">
|
||||
<ColorLabel class="capitalize" :color="$getTransactionStatusColor(row.data.attributes.status)">
|
||||
{{ row.data.attributes.status }}
|
||||
</ColorLabel>
|
||||
</td>
|
||||
<td class="py-4">
|
||||
<td class="md:px-1 px-3">
|
||||
<span class="text-sm font-bold capitalize">
|
||||
{{ $t(row.data.attributes.type) }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<td class="md:px-1 px-3">
|
||||
<span class="text-sm font-bold" :class="$getTransactionTypeTextColor(row.data.attributes.type)">
|
||||
{{ $getTransactionMark(row.data.attributes.type) + row.data.attributes.price }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<td class="md:px-1 px-3">
|
||||
<span class="text-sm font-bold">
|
||||
{{ row.data.attributes.created_at }}
|
||||
</span>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<img class="inline-block max-h-5" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
|
||||
<td class="md:px-1 px-3">
|
||||
<div class="w-28">
|
||||
<img class="inline-block max-h-5" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
|
||||
</div>
|
||||
</td>
|
||||
<td class="md:pl-1 pl-3 text-right">
|
||||
<div v-if="row.data.attributes.metadata" class="flex space-x-2 w-full justify-end">
|
||||
<div @click="showTransactionDetail(row.data.id)" class="cursor-pointer flex items-center justify-center w-8 h-8 rounded-md hover:bg-green-100 dark:bg-2x-dark-foreground bg-light-background transition-colors">
|
||||
<EyeIcon size="15" class="opacity-75" />
|
||||
</div>
|
||||
<div class="cursor-pointer flex items-center justify-center w-8 h-8 rounded-md hover:bg-purple-100 dark:bg-2x-dark-foreground bg-light-background transition-colors">
|
||||
<FileTextIcon size="15" class="opacity-75" />
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
-
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!--Transaction detail-->
|
||||
<tr v-if="row.data.attributes.metadata && showedTransactionDetailById === row.data.id">
|
||||
<td colspan="7" class="dark:bg-2x-dark-foreground bg-light-background bg-opacity-50 rounded-lg overflow-hidden py-2 px-4">
|
||||
<div class="flex items-center justify-between py-2 border-b dark:border-opacity-5 border-light border-dashed" v-for="(usage, i) in row.data.attributes.metadata" :key="i">
|
||||
<div class="w-2/4 leading-none">
|
||||
<b class="text-sm font-bold leading-none">
|
||||
{{ $t(usage.feature) }}
|
||||
</b>
|
||||
<small class="text-xs text-gray-500 pt-2 leading-none sm:block hidden">
|
||||
{{ $t(`feature_usage_desc_${usage.feature}`) }}
|
||||
</small>
|
||||
</div>
|
||||
<div class="text-left w-1/4">
|
||||
<span class="text-sm font-bold text-gray-560">
|
||||
{{ usage.usage }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-right w-1/4">
|
||||
<span class="text-sm font-bold text-theme">
|
||||
{{ usage.cost }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
@@ -52,54 +95,76 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import ColorLabel from "../Others/ColorLabel"
|
||||
import DatatableWrapper from "../Others/Tables/DatatableWrapper"
|
||||
import FormLabel from "../Others/Forms/FormLabel"
|
||||
import InfoBox from '/resources/js/components/Others/Forms/InfoBox'
|
||||
import {EyeIcon, FileTextIcon} from 'vue-feather-icons'
|
||||
import ColorLabel from "../Others/ColorLabel"
|
||||
import DatatableWrapper from "../Others/Tables/DatatableWrapper"
|
||||
import FormLabel from "../Others/Forms/FormLabel"
|
||||
import InfoBox from '/resources/js/components/Others/Forms/InfoBox'
|
||||
import {mapGetters} from "vuex";
|
||||
|
||||
export default {
|
||||
name: 'UserTransactionsForMeteredBilling',
|
||||
components: {
|
||||
ColorLabel,
|
||||
DatatableWrapper,
|
||||
FormLabel,
|
||||
InfoBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
columns: [
|
||||
{
|
||||
label: this.$t('Note'),
|
||||
field: 'note',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('Status'),
|
||||
field: 'status',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('Type'),
|
||||
field: 'status',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('admin_page_invoices.table.total'),
|
||||
field: 'amount',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('Payed At'),
|
||||
field: 'created_at',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('Service'),
|
||||
field: 'driver',
|
||||
sortable: true
|
||||
},
|
||||
],
|
||||
export default {
|
||||
name: 'UserTransactionsForMeteredBilling',
|
||||
components: {
|
||||
DatatableWrapper,
|
||||
ColorLabel,
|
||||
FormLabel,
|
||||
InfoBox,
|
||||
FileTextIcon,
|
||||
EyeIcon,
|
||||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'user',
|
||||
])
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showedTransactionDetailById: undefined,
|
||||
columns: [
|
||||
{
|
||||
label: this.$t('Note'),
|
||||
field: 'note',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('Status'),
|
||||
field: 'status',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('Type'),
|
||||
field: 'status',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('admin_page_invoices.table.total'),
|
||||
field: 'amount',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('Payed At'),
|
||||
field: 'created_at',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('Service'),
|
||||
field: 'driver',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
label: this.$t('Actions'),
|
||||
sortable: false
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
showTransactionDetail(id) {
|
||||
if (this.showedTransactionDetailById === id)
|
||||
this.showedTransactionDetailById = undefined
|
||||
else
|
||||
this.showedTransactionDetailById = id
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -13,7 +13,7 @@
|
||||
v-if="ghostLength > 0"
|
||||
class="2xl:w-3 md:w-2 w-1 block rounded-lg lg:mr-2 mr-1.5 dark:bg-gray-800 bg-gray-100"
|
||||
v-for="(ghost, i) in ghostLength"
|
||||
:style="{height: '5%'}"
|
||||
:style="{height: '7%'}"
|
||||
:key="i">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
<SidebarNavigation />
|
||||
|
||||
<div v-if="user" class="px-6 w-full overflow-x-hidden relative pt-6 xl:max-w-screen-lg md:max-w-screen-md mx-auto">
|
||||
<div v-if="user" class="px-6 w-full overflow-x-hidden relative pt-6 xl:max-w-screen-lg md:max-w-4xl mx-auto">
|
||||
<div v-if="! isLoading" id="page-content">
|
||||
|
||||
<div class="card shadow-card sticky top-0 z-10" style="padding-bottom: 0">
|
||||
|
||||
@@ -4,6 +4,7 @@ use App\Users\Controllers\Account\AccountDetailsController;
|
||||
use App\Users\Controllers\Account\UpdatePasswordController;
|
||||
use App\Users\Controllers\Account\StorageCapacityController;
|
||||
use App\Users\Controllers\Verification\VerifyEmailController;
|
||||
use Domain\Transactions\Controllers\GetTransactionsController;
|
||||
use App\Users\Controllers\Verification\ResendVerificationEmail;
|
||||
use App\Users\Controllers\Authentication\CheckAccountController;
|
||||
use App\Users\Controllers\Account\UpdateProfileSettingsController;
|
||||
@@ -24,6 +25,7 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
|
||||
|
||||
// Account
|
||||
Route::patch('/settings', UpdateProfileSettingsController::class);
|
||||
Route::get('/transactions', GetTransactionsController::class);
|
||||
Route::post('/password', UpdatePasswordController::class);
|
||||
Route::get('/storage', StorageCapacityController::class);
|
||||
Route::get('/', AccountDetailsController::class);
|
||||
|
||||
@@ -146,7 +146,7 @@ class GenerateDemoSubscriptionContentCommand extends Command
|
||||
'type' => 'withdrawal',
|
||||
'created_at' => now()->subDays(2),
|
||||
'amount' => $isHowdy ? 12.59 : random_int(1, 20),
|
||||
'note' => now()->subDays(2)->format('d. M') . ' - ' . now()->subDays(32)->format('d. M'),
|
||||
'note' => now()->subDays(32)->format('d. M') . ' - ' . now()->subDays(2)->format('d. M'),
|
||||
'driver' => 'system',
|
||||
],
|
||||
[
|
||||
@@ -159,28 +159,28 @@ class GenerateDemoSubscriptionContentCommand extends Command
|
||||
[
|
||||
'type' => 'withdrawal',
|
||||
'created_at' => now()->subDays(26 * 1),
|
||||
'note' => now()->subDays(26 * 1)->format('d. M') . ' - ' . now()->subDays(30 + 26 * 1)->format('d. M'),
|
||||
'note' => now()->subDays(30 + 26 * 1)->format('d. M') . ' - ' . now()->subDays(26 * 1)->format('d. M'),
|
||||
'amount' => $isHowdy ? 2.38 : random_int(1, 20),
|
||||
'driver' => 'system',
|
||||
],
|
||||
[
|
||||
'type' => 'withdrawal',
|
||||
'created_at' => now()->subDays(26 * 2),
|
||||
'note' => now()->subDays(26 * 2)->format('d. M') . ' - ' . now()->subDays(30 + 26 * 2)->format('d. M'),
|
||||
'note' => now()->subDays(30 + 26 * 2)->format('d. M') . ' - ' . now()->subDays(26 * 2)->format('d. M'),
|
||||
'amount' => $isHowdy ? 5.12 : random_int(1, 20),
|
||||
'driver' => 'system',
|
||||
],
|
||||
[
|
||||
'type' => 'withdrawal',
|
||||
'created_at' => now()->subDays(26 * 3),
|
||||
'note' => now()->subDays(26 * 3)->format('d. M') . ' - ' . now()->subDays(30 + 26 * 3)->format('d. M'),
|
||||
'note' => now()->subDays(30 + 26 * 3)->format('d. M') . ' - ' . now()->subDays(26 * 3)->format('d. M'),
|
||||
'amount' => $isHowdy ? 3.89 : random_int(1, 20),
|
||||
'driver' => 'system',
|
||||
],
|
||||
[
|
||||
'type' => 'withdrawal',
|
||||
'created_at' => now()->subDays(26 * 4),
|
||||
'note' => now()->subDays(26 * 4)->format('d. M') . ' - ' . now()->subDays(30 + 26 * 4)->format('d. M'),
|
||||
'note' => now()->subDays(30 + 26 * 4)->format('d. M') . ' - ' . now()->subDays(26 * 4)->format('d. M'),
|
||||
'amount' => $isHowdy ? 7.42 : random_int(1, 20),
|
||||
'driver' => 'system',
|
||||
],
|
||||
@@ -192,16 +192,46 @@ class GenerateDemoSubscriptionContentCommand extends Command
|
||||
'driver' => 'paypal',
|
||||
],
|
||||
])->each(
|
||||
fn ($transaction) => $user->transactions()->create([
|
||||
'type' => $transaction['type'],
|
||||
'status' => 'completed',
|
||||
'note' => $transaction['note'],
|
||||
'currency' => $plan->currency,
|
||||
'driver' => $transaction['driver'],
|
||||
'amount' => $transaction['amount'],
|
||||
'created_at' => $transaction['created_at'],
|
||||
'reference' => Str::random(12),
|
||||
])
|
||||
function ($transaction) use ($user, $plan) {
|
||||
$bandwidthUsage = random_int(1000, 12000);
|
||||
$storageUsage = random_int(300, 4900);
|
||||
$memberUsage = random_int(3, 20);
|
||||
|
||||
$user->transactions()->create([
|
||||
'type' => $transaction['type'],
|
||||
'status' => 'completed',
|
||||
'note' => $transaction['note'],
|
||||
'currency' => $plan->currency,
|
||||
'driver' => $transaction['driver'],
|
||||
'amount' => $transaction['amount'],
|
||||
'created_at' => $transaction['created_at'],
|
||||
'reference' => Str::random(12),
|
||||
'metadata' => $transaction['type'] === 'withdrawal'
|
||||
? [
|
||||
[
|
||||
'feature' => 'bandwidth',
|
||||
'amount' => 0.29 * $bandwidthUsage,
|
||||
'usage' => $bandwidthUsage,
|
||||
],
|
||||
[
|
||||
'feature' => 'storage',
|
||||
'amount' => 0.19 * $storageUsage,
|
||||
'usage' => $storageUsage,
|
||||
],
|
||||
[
|
||||
'feature' => 'flatFee',
|
||||
'amount' => 2.49,
|
||||
'usage' => 1,
|
||||
],
|
||||
[
|
||||
'feature' => 'member',
|
||||
'amount' => 0.10 * $memberUsage,
|
||||
'usage' => $memberUsage,
|
||||
],
|
||||
]
|
||||
: null,
|
||||
]);
|
||||
}
|
||||
);
|
||||
|
||||
// Make fake credit card
|
||||
|
||||
@@ -6,30 +6,31 @@ use Illuminate\Support\Collection;
|
||||
|
||||
class FormatUsageEstimatesAction
|
||||
{
|
||||
public function __invoke(string $currency, Collection $usage)
|
||||
public function __invoke(string $currency, Collection|array $usage)
|
||||
{
|
||||
return $usage->mapWithKeys(function ($estimate) use ($currency) {
|
||||
// Format usage
|
||||
$usage = match ($estimate['feature']) {
|
||||
'bandwidth', 'storage' => Metric::megabytes($estimate['usage'])->format(),
|
||||
'flatFee' => intval($estimate['usage']) . ' ' . __('Pcs.'),
|
||||
'member' => intval($estimate['usage']) . ' ' . __('Mem.'),
|
||||
};
|
||||
return collect($usage)
|
||||
->mapWithKeys(function ($estimate) use ($currency) {
|
||||
// Format usage
|
||||
$usage = match ($estimate['feature']) {
|
||||
'bandwidth', 'storage' => Metric::megabytes($estimate['usage'])->format(),
|
||||
'flatFee' => intval($estimate['usage']) . ' ' . __('Pcs.'),
|
||||
'member' => intval($estimate['usage']) . ' ' . __('Mem.'),
|
||||
};
|
||||
|
||||
// Normalize units
|
||||
$amount = match ($estimate['feature']) {
|
||||
'bandwidth', 'storage' => $estimate['amount'] / 1000,
|
||||
'flatFee', 'member' => $estimate['amount'],
|
||||
};
|
||||
// Normalize units
|
||||
$amount = match ($estimate['feature']) {
|
||||
'bandwidth', 'storage' => $estimate['amount'] / 1000,
|
||||
'flatFee', 'member' => $estimate['amount'],
|
||||
};
|
||||
|
||||
return [
|
||||
$estimate['feature'] => [
|
||||
'feature' => $estimate['feature'],
|
||||
'amount' => $amount,
|
||||
'cost' => format_currency($amount, $currency),
|
||||
'usage' => $usage,
|
||||
],
|
||||
];
|
||||
});
|
||||
return [
|
||||
$estimate['feature'] => [
|
||||
'feature' => $estimate['feature'],
|
||||
'amount' => $amount,
|
||||
'cost' => format_currency($amount, $currency),
|
||||
'usage' => $usage,
|
||||
],
|
||||
];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
namespace Domain\Transactions\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Domain\Transactions\Resources\TransactionCollection;
|
||||
|
||||
class GetTransactionsController extends Controller
|
||||
{
|
||||
public function __invoke()
|
||||
{
|
||||
$transactions = Auth::user()
|
||||
->transactions()
|
||||
->sortable(['created_at' => 'desc'])
|
||||
->paginate(20);
|
||||
|
||||
return new TransactionCollection($transactions);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
namespace Domain\Transactions\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||
|
||||
class TransactionCollection extends ResourceCollection
|
||||
{
|
||||
public $collects = TransactionResource::class;
|
||||
|
||||
/**
|
||||
* Transform the resource collection into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'data' => $this->collection,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
namespace Domain\Transactions\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
use App\Users\Actions\FormatUsageEstimatesAction;
|
||||
|
||||
class TransactionResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'data' => [
|
||||
'id' => $this->id,
|
||||
'type' => 'transactions',
|
||||
'attributes' => [
|
||||
'type' => $this->type,
|
||||
'status' => $this->status,
|
||||
'note' => $this->note,
|
||||
'price' => format_currency($this->amount, $this->currency),
|
||||
'currency' => $this->currency,
|
||||
'amount' => $this->amount,
|
||||
'driver' => $this->driver,
|
||||
'reference' => $this->reference,
|
||||
'metadata' => $this->metadata
|
||||
? resolve(FormatUsageEstimatesAction::class)($this->currency, $this->metadata)
|
||||
: null,
|
||||
'created_at' => $this->created_at->formatLocalized('%d. %b. %Y'),
|
||||
'updated_at' => $this->updated_at,
|
||||
],
|
||||
'relationships' => [
|
||||
$this->mergeWhen($this->user && $this->user->settings, fn () => [
|
||||
'user' => [
|
||||
'data' => [
|
||||
'id' => $this->user->id,
|
||||
'type' => 'users',
|
||||
'attributes' => [
|
||||
'avatar' => $this->user->settings->avatar,
|
||||
'first_name' => $this->user->settings->first_name,
|
||||
'last_name' => $this->user->settings->last_name,
|
||||
'name' => $this->user->settings->name,
|
||||
'color' => $this->user->settings->color,
|
||||
'email' => $this->user->email,
|
||||
],
|
||||
],
|
||||
],
|
||||
]),
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user