diff --git a/app/Http/Controllers/BillingController.php b/app/Http/Controllers/BillingController.php new file mode 100644 index 0000000..28c689d --- /dev/null +++ b/app/Http/Controllers/BillingController.php @@ -0,0 +1,14 @@ + 'required|email|unique:users,email', 'password' => 'required|confirmed|min:8|regex:/[a-z]/|regex:/[A-Z]/|regex:/[0-9]/' ]); + /* Stripe::setApiKey(); */ $user = new User; $user->name = $request->name; @@ -29,6 +32,7 @@ class UserController extends Controller $user->role = "client"; $user->active = true; $user->password = Hash::make($request->password); + $user->customer_id = Customer::create()->id; $user->save(); event(new Registered($user)); diff --git a/composer.json b/composer.json index 68e51cd..2d58ad4 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,8 @@ "laravel/cashier": "^12.14", "laravel/framework": "^8.12", "laravel/sanctum": "^2.10", - "laravel/tinker": "^2.5" + "laravel/tinker": "^2.5", + "stripe/stripe-php": "^7.82" }, "require-dev": { "facade/ignition": "^2.5", diff --git a/composer.lock b/composer.lock index 208c815..1e488dd 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "944c213422ef588363f5699d6efb4f96", + "content-hash": "0ba374a856ee5e8428032e8d550d3048", "packages": [ { "name": "asm89/stack-cors", @@ -2789,16 +2789,16 @@ }, { "name": "stripe/stripe-php", - "version": "v7.80.0", + "version": "v7.82.0", "source": { "type": "git", "url": "https://github.com/stripe/stripe-php.git", - "reference": "566900968407302f88a925ba731c87c05fe98a7a" + "reference": "218f5296923265fab4692a7f8a083ff2e7e35a21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stripe/stripe-php/zipball/566900968407302f88a925ba731c87c05fe98a7a", - "reference": "566900968407302f88a925ba731c87c05fe98a7a", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/218f5296923265fab4692a7f8a083ff2e7e35a21", + "reference": "218f5296923265fab4692a7f8a083ff2e7e35a21", "shasum": "" }, "require": { @@ -2844,9 +2844,9 @@ ], "support": { "issues": "https://github.com/stripe/stripe-php/issues", - "source": "https://github.com/stripe/stripe-php/tree/v7.80.0" + "source": "https://github.com/stripe/stripe-php/tree/v7.82.0" }, - "time": "2021-05-26T19:10:43+00:00" + "time": "2021-06-04T23:26:37+00:00" }, { "name": "swiftmailer/swiftmailer", diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index a234e76..8f263a9 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -17,6 +17,7 @@ class CreateUsersTable extends Migration $table->id(); $table->string('name'); $table->string('email')->unique(); + $table->string('customer_id')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->string('role'); diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index fc6794f..2261ce8 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -7,6 +7,8 @@ use App\Models\User; use App\Models\Order; use App\Models\Service; use Illuminate\Support\Facades\Hash; +use \Stripe\Stripe; +use \Stripe\Customer; class DatabaseSeeder extends Seeder { @@ -175,6 +177,7 @@ class DatabaseSeeder extends Seeder 'name' => 'test_user_unverified', 'email' => 'unverified@example.com', 'role' => 'client', + 'customer_id' => Customer::create()->id, 'active' => true, 'password' => Hash::make("test123") ]); @@ -183,6 +186,7 @@ class DatabaseSeeder extends Seeder 'email' => 'verified@example.com', 'email_verified_at' => now(), 'credits' => 250, + 'customer_id' => Customer::create()->id, 'role' => 'client', 'active' => true, 'password' => Hash::make("test123") @@ -191,6 +195,7 @@ class DatabaseSeeder extends Seeder 'name' => 'test_admin_verified', 'email' => 'admin_verified@example.com', 'email_verified_at' => now(), + 'customer_id' => Customer::create()->id, 'role' => 'admin', 'active' => true, 'password' => Hash::make("test123") diff --git a/resources/images/coin-stack.svg b/resources/images/coin-stack.svg new file mode 100644 index 0000000..04faade --- /dev/null +++ b/resources/images/coin-stack.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/coins.svg b/resources/images/coins.svg new file mode 100644 index 0000000..8cbf390 --- /dev/null +++ b/resources/images/coins.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/js/panel/credits.vue b/resources/js/panel/credits.vue index 9ffb918..7bc55a5 100644 --- a/resources/js/panel/credits.vue +++ b/resources/js/panel/credits.vue @@ -1,3 +1,39 @@ -hello + +10 Credits +$10.99Qty + + +50 Credits+5 Free Credits +$54.99 Qty + + +100 Credits+10 Free Credits +$109.99 Qty + + +1000 Credits+150 Free Credits +$1010 Qty + + + Total: ${{total.toLocaleString('en')}} + Continue + + + + diff --git a/resources/js/panel/orders.vue b/resources/js/panel/orders.vue index a0f19b4..5450a3d 100644 --- a/resources/js/panel/orders.vue +++ b/resources/js/panel/orders.vue @@ -1,7 +1,7 @@ - NewAdd credits + NewAdd Credits Pending Orders diff --git a/resources/js/panel/panel.vue b/resources/js/panel/panel.vue index e245103..f03db76 100644 --- a/resources/js/panel/panel.vue +++ b/resources/js/panel/panel.vue @@ -4,7 +4,7 @@ Welcome, {{user.name}}! - Credits: ${{user.credits}} + Credits: {{user.credits}} News and Announcements We've just launched. Thanks for joining us. diff --git a/resources/js/panel/settings.vue b/resources/js/panel/settings.vue index 4c97711..60fcf02 100644 --- a/resources/js/panel/settings.vue +++ b/resources/js/panel/settings.vue @@ -2,6 +2,7 @@ Settings + Billing Name Save diff --git a/resources/scss/main.scss b/resources/scss/main.scss index b8277bd..cfbbcd8 100644 --- a/resources/scss/main.scss +++ b/resources/scss/main.scss @@ -763,12 +763,11 @@ main.panel { } .credits-pane { - border: 3px solid vars.getColor("alt-blue-medium"); - background: vars.getColor("alt-blue-light"); - > * { - display: inline; - vertical-align: middle; - } + border: 3px solid vars.getColor("orange"); + display: flex; + align-items: center; + justify-content: center; + color: vars.getColor('brand-orange'); } .alerts-pane { @@ -1156,3 +1155,39 @@ button .loading-icon { margin: 1em; color: vars.getColor('brand-orange'); } + +.select-credits .credits-pane { + flex-flow: wrap; + border-radius: 4px; + margin-bottom: 2em; + text-align: center; + display: flex; + gap: 5%; + padding: 0.5em 0; + + span {margin-right: 0.5em;} +} + +.select-credits h2 { + margin: 0; +} + +.select-credits h3 { + text-align: center; +} + +.select-credits input { + width: 3em; +} + +.brand-btn { + display: inline-block; + margin: auto; + display: flex; + align-items: center; + text-align: center; + justify-content: center; + @include vars.inverting-button(vars.getColor('brand-orange'), white); + font-size: 1.1rem; + min-width: 7em; +} diff --git a/resources/views/master.blade.php b/resources/views/master.blade.php index e6edb89..2067124 100644 --- a/resources/views/master.blade.php +++ b/resources/views/master.blade.php @@ -44,6 +44,8 @@ spellcheck='false'> @yield('content') + + @section('footer')
Credits: ${{user.credits}}
Credits: {{user.credits}}
We've just launched. Thanks for joining us.