subscription config

This commit is contained in:
Čarodej
2022-06-06 18:31:03 +02:00
parent 59e3f55ac3
commit 8a943747eb
3 changed files with 145 additions and 96 deletions

View File

@@ -1,76 +1,76 @@
{
"/js/main.js": "/js/main.js",
"/chunks/request.js": "/chunks/request.js?id=386fae37c11630a4",
"/chunks/request-upload.js": "/chunks/request-upload.js?id=b631a474ab4b733b",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=6122cca2fca4f02b",
"/chunks/status-check.js": "/chunks/status-check.js?id=792733921b00a3a2",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=ce78be58a4b9683b",
"/chunks/database.js": "/chunks/database.js?id=0fb6901a348563e4",
"/chunks/environment.js": "/chunks/environment.js?id=99910849f57466b0",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=298c9b93ac1fbef5",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=aea96c6182067abf",
"/chunks/shared.js": "/chunks/shared.js?id=d0a7ce2d419f0ad3",
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=4810c8d00a1ae4c8",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=f48b3ae6660450cc",
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=4d66b8a277a638a7",
"/chunks/not-found.js": "/chunks/not-found.js?id=901e26fdc77de6e0",
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=c3a4f158b971145f",
"/chunks/admin.js": "/chunks/admin.js?id=87bda46c27a6dde9",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=849bbd9454296cc0",
"/chunks/invoices.js": "/chunks/invoices.js?id=c40b8b7925003659",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=cdca1b82ffe52ff5",
"/chunks/pages.js": "/chunks/pages.js?id=15ab720d05126115",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=651cd395d5a24dbc",
"/chunks/plans.js": "/chunks/plans.js?id=89b35f8720666147",
"/chunks/users.js": "/chunks/users.js?id=a340a505a2329b33",
"/chunks/user-create.js": "/chunks/user-create.js?id=3c6fdff76fe051ab",
"/chunks/plan-create/fixed.js": "/chunks/plan-create/fixed.js?id=edab12aa27d01011",
"/chunks/plan-create/metered.js": "/chunks/plan-create/metered.js?id=d51d6ac54137e506",
"/chunks/user.js": "/chunks/user.js?id=85aee36020612960",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=7db7b89f55411710",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=fc2f3e4a3848093d",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=ece5195df551c9a5",
"/chunks/user-password.js": "/chunks/user-password.js?id=a3d07775fab6ba38",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=e7db32c7ae79379b",
"/chunks/plan.js": "/chunks/plan.js?id=4a082719fc5ce20a",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=6c62bd162c9194b5",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=aa5152c40d77c398",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=b552da027e7ccdc8",
"/chunks/payments.js": "/chunks/payments.js?id=22e84a36acc89129",
"/chunks/payments/billings.js": "/chunks/payments/billings.js?id=8cf2287d221825c1",
"/chunks/payments/settings.js": "/chunks/payments/settings.js?id=313058a869f63cdc",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=5de958be12ca920f",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=bc104e3407af9abb",
"/chunks/app-index.js": "/chunks/app-index.js?id=96b505173e1be922",
"/chunks/app-environment.js": "/chunks/app-environment.js?id=037f1adeccd04620",
"/chunks/app-others.js": "/chunks/app-others.js?id=c0ccc32c1eee6162",
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=580f3b376cfc93e4",
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=304eefb5acbe5d93",
"/chunks/app-server.js": "/chunks/app-server.js?id=6571d4b614fdd0bd",
"/chunks/app-language.js": "/chunks/app-language.js?id=b701f4a95999f1c1",
"/chunks/homepage.js": "/chunks/homepage.js?id=612d0b10b26b580c",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=13d00de1153769c5",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=08cc61f27823a5d1",
"/chunks/demo.js": "/chunks/demo.js?id=aebe316fa638bbb5",
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=62ed454569571e25",
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=d99d1e9adb974ae7",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=6280ef0a858522c8",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=caeb50ac27194d33",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=b06174390d32669c",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=3fe56e872c74d485",
"/chunks/settings.js": "/chunks/settings.js?id=b11db80b0d994f04",
"/chunks/profile.js": "/chunks/profile.js?id=87ac69edc17d9245",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=99e9984bfcd5289b",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=a9e2543c5362e459",
"/chunks/billing.js": "/chunks/billing.js?id=c4160a2491437905",
"/chunks/platform.js": "/chunks/platform.js?id=66a55d4175e81c6b",
"/chunks/files.js": "/chunks/files.js?id=5251b1cdad4ad5ad",
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=b1f5ab7af810aa91",
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=44dd934482c86e2e",
"/chunks/trash.js": "/chunks/trash.js?id=ee453a73e86e2501",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=d2951d6319e4ded3",
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=f1cbe65db0e882de",
"/chunks/invitation.js": "/chunks/invitation.js?id=dd7d9c7bb0f39eff",
"/chunks/request.js": "/chunks/request.js?id=a23e7541dfbc5755",
"/chunks/request-upload.js": "/chunks/request-upload.js?id=490153d6704438b3",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
"/chunks/status-check.js": "/chunks/status-check.js?id=d7b6d83b8c15d71c",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=e153c4e933c899fd",
"/chunks/database.js": "/chunks/database.js?id=b884b991d47c42cf",
"/chunks/environment.js": "/chunks/environment.js?id=54c035b387c89b6f",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=6389439f07be022a",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=c04781f1fd5170cf",
"/chunks/shared.js": "/chunks/shared.js?id=a0fd7cc2a806e831",
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=2036134c44f5c21a",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=f03ab6659c6c1e9b",
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=b0299d25bfaacea2",
"/chunks/not-found.js": "/chunks/not-found.js?id=945e89891ea3a0c8",
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=4d46688b815d1165",
"/chunks/admin.js": "/chunks/admin.js?id=73cab370662bae2a",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=5ab55a12214433c8",
"/chunks/invoices.js": "/chunks/invoices.js?id=799928609f57ca10",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=a0c4f59d0ec4aee0",
"/chunks/pages.js": "/chunks/pages.js?id=bb5cc8327ca846a3",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=0bdc8a5935fd2197",
"/chunks/plans.js": "/chunks/plans.js?id=d4e39044c5fc0ad4",
"/chunks/users.js": "/chunks/users.js?id=b6629338e26b8313",
"/chunks/user-create.js": "/chunks/user-create.js?id=40254ae98547761e",
"/chunks/plan-create/fixed.js": "/chunks/plan-create/fixed.js?id=549867504d6e4e4e",
"/chunks/plan-create/metered.js": "/chunks/plan-create/metered.js?id=6ab9a127099b3293",
"/chunks/user.js": "/chunks/user.js?id=cf9a2a0d8c1fa1d9",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=ff6c1fc63a372d96",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=0e26321285c15e1a",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=67993bd6abb6fa9c",
"/chunks/user-password.js": "/chunks/user-password.js?id=900ae71c3d4199ea",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=c88872f2ff8c4df2",
"/chunks/plan.js": "/chunks/plan.js?id=3e7b0b34c2247e6c",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=36d925def6a82cb2",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=ee4100b0eff32f36",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=630deb1fc4e17ed9",
"/chunks/payments.js": "/chunks/payments.js?id=d59a2a18b680d65c",
"/chunks/payments/billings.js": "/chunks/payments/billings.js?id=27d6c1b58dbd1e6c",
"/chunks/payments/settings.js": "/chunks/payments/settings.js?id=b4863bf4d4b77de0",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=b0d1082fdcbbd17c",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=8ba3feb2cc81a2c3",
"/chunks/app-index.js": "/chunks/app-index.js?id=db4ad4671280c74a",
"/chunks/app-environment.js": "/chunks/app-environment.js?id=e8c421cddbaa4851",
"/chunks/app-others.js": "/chunks/app-others.js?id=e70f2d5dac1d676e",
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=77ac953ce49b5b55",
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=cf62f3636ad85aab",
"/chunks/app-server.js": "/chunks/app-server.js?id=60b6d1a5e3b1aeb8",
"/chunks/app-language.js": "/chunks/app-language.js?id=46d7fc713d36cea8",
"/chunks/homepage.js": "/chunks/homepage.js?id=9a34286b626e6ef4",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=9553d7a2912cb901",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=95cb79a9265eacb8",
"/chunks/demo.js": "/chunks/demo.js?id=7e21d033be8313af",
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=e78db2b09e8f07ee",
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=940d68f421576013",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=44800b83e3cc169c",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=5ebb601c0fed5a4d",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=c1b4a00fb0061371",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=3ebf7212f7c549c8",
"/chunks/settings.js": "/chunks/settings.js?id=5f2240d68908deda",
"/chunks/profile.js": "/chunks/profile.js?id=3e24bb5e1f52d4bb",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=1cf499fe8326b3c4",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=ecfee7f7e98204f8",
"/chunks/billing.js": "/chunks/billing.js?id=f016e8454a346fc6",
"/chunks/platform.js": "/chunks/platform.js?id=0716f5215cdb26a8",
"/chunks/files.js": "/chunks/files.js?id=77289ebbd049d5ac",
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=248310cdd67d62fb",
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=15fba3b663103c88",
"/chunks/trash.js": "/chunks/trash.js?id=8fd377b5a83e1ff9",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=58640d5e8a8c1900",
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=e1cbcd3ce69f4d78",
"/chunks/invitation.js": "/chunks/invitation.js?id=21b5bc5ac116c97e",
"/css/tailwind.css": "/css/tailwind.css",
"/css/app.css": "/css/app.css"
}

View File

@@ -86,18 +86,19 @@
:description="$t('allow_registration_bonus_description')"
>
<SwitchInput
@input="$updateText('/admin/settings', 'allowed_registration_bonus', allowedRegistrationBonus)"
v-model="allowedRegistrationBonus"
:state="false"
@input="$updateText('/admin/settings', 'limit_usage_in_new_accounts', settings.limitUsageInNewAccounts)"
v-model="settings.limitUsageInNewAccounts"
:state="settings.limitUsageInNewAccounts"
/>
</AppInputSwitch>
<AppInputText
v-if="true"
v-if="settings.limitUsageInNewAccounts"
class="-mt-3"
>
<input
@input="$updateText('/admin/settings', 'registration_bonus_amount', registrationBonusAmount)"
@input="$updateText('/admin/settings', 'limit_usage_in_new_accounts_amount', settings.limitUsageInNewAccountsAmount)"
v-model="settings.limitUsageInNewAccountsAmount"
:placeholder="$t('Max Usage Amount...')"
type="number"
class="focus-border-theme input-dark"
@@ -110,9 +111,9 @@
:is-last="true"
>
<SwitchInput
@input="$updateText('/admin/settings', 'allowed_registration_bonus', allowedRegistrationBonus)"
v-model="allowedRegistrationBonus"
:state="false"
@input="$updateText('/admin/settings', 'usage_bigger_than_balance', settings.usageBiggerThanBalance)"
v-model="settings.usageBiggerThanBalance"
:state="settings.usageBiggerThanBalance"
/>
</AppInputSwitch>
</div>
@@ -550,10 +551,13 @@ export default {
InfoBox,
},
computed: {
...mapGetters(['config']),
...mapGetters([
'config'
]),
},
data() {
return {
settings: undefined,
allowedRegistrationBonus: true,
registrationBonusAmount: undefined,
@@ -693,6 +697,23 @@ export default {
})
}
},
mounted() {
axios
.get('/api/admin/settings', {
params: {
column: 'limit_usage_in_new_accounts|limit_usage_in_new_accounts_amount|usage_bigger_than_balance',
},
})
.then((response) => {
this.isLoading = false
this.settings = {
limitUsageInNewAccounts: parseInt(response.data.limit_usage_in_new_accounts),
limitUsageInNewAccountsAmount: parseInt(response.data.limit_usage_in_new_accounts_amount),
usageBiggerThanBalance: parseInt(response.data.usage_bigger_than_balance),
}
})
},
created() {
// Set payment description
this.stripe.paymentDescription = this.config.stripe_payment_description

View File

@@ -1,6 +1,7 @@
<?php
namespace App\Providers;
use Domain\Settings\Models\Setting;
use Schema;
use Illuminate\Support\ServiceProvider;
@@ -24,6 +25,49 @@ class AppServiceProvider extends ServiceProvider
{
Schema::defaultStringLength(191);
// Set subscription config
$this->setSubscriptionConfig();
// Set app locale
$this->setLocale();
// Get all migrations with all directories
$this->setMigrations();
dd(
config('subscription.metered_billing')
);
}
private function setMigrations(): void
{
$mainPath = database_path('migrations');
$directories = glob($mainPath . '/*', GLOB_ONLYDIR);
$this->loadMigrationsFrom(
array_merge([$mainPath], $directories)
);
}
private function setSubscriptionConfig(): void
{
$settings = getAllSettings();
config([
'subscription.metered_billing.fraud_prevention_mechanism' => [
'usage_bigger_than_balance' => [
'active' => isset($settings->usage_bigger_than_balance) ? intval($settings->usage_bigger_than_balance) : true,
],
'limit_usage_in_new_accounts' => [
'active' => isset($settings->limit_usage_in_new_accounts) ? intval($settings->limit_usage_in_new_accounts) : true,
'amount' => isset($settings->limit_usage_in_new_accounts_amount) ? intval($settings->limit_usage_in_new_accounts_amount) : 20,
],
]
]);
}
private function setLocale(): void
{
try {
$app_locale = get_settings('language') ?? 'en';
} catch (\PDOException $e) {
@@ -35,21 +79,5 @@ class AppServiceProvider extends ServiceProvider
// Set locale for carbon dates
setlocale(LC_TIME, $app_locale . '_' . mb_strtoupper($app_locale));
// Get all migrations with all directories
$this->loadMigrationsFrom(
$this->get_migration_paths()
);
}
/**
* @return array
*/
private function get_migration_paths(): array
{
$mainPath = database_path('migrations');
$directories = glob($mainPath . '/*', GLOB_ONLYDIR);
return array_merge([$mainPath], $directories);
}
}