Skip to content

Commit 06aa986

Browse files
committed
✨ Ajout des plans de premium
1 parent 93002c3 commit 06aa986

File tree

7 files changed

+392
-223
lines changed

7 files changed

+392
-223
lines changed

app/Http/Controllers/HomeController.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,24 @@
44

55
use App\Models\Article;
66
use App\Models\Discussion;
7+
use App\Models\Premium\Plan;
78
use App\Models\Thread;
89
use GuzzleHttp\Client;
910
use GuzzleHttp\Exception\GuzzleException;
11+
use Illuminate\Database\Eloquent\Builder;
1012
use Illuminate\Http\Request;
1113
use Illuminate\Support\Facades\Cache;
1214

1315
class HomeController extends Controller
1416
{
1517
public function index()
1618
{
19+
$plans = Cache::remember('plans', now()->addYear(), function () {
20+
return Plan::with('features')
21+
->developer()
22+
->get();
23+
});
24+
1725
$latestArticles = Cache::remember('latestArticles', now()->addHour(), function () {
1826
return Article::with('tags')
1927
->published()
@@ -48,7 +56,12 @@ public function index()
4856
->twitterSite('laravelcm')
4957
->withUrl();
5058

51-
return view('home', compact('latestArticles', 'latestThreads', 'latestDiscussions'));
59+
return view('home', compact(
60+
'latestArticles',
61+
'latestThreads',
62+
'latestDiscussions',
63+
'plans'
64+
));
5265
}
5366

5467
public function slack(Request $request)

app/Models/Premium/Plan.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,21 @@
22

33
namespace App\Models\Premium;
44

5+
use Illuminate\Database\Eloquent\Builder;
56
use Illuminate\Database\Eloquent\Factories\HasFactory;
67
use Rinvex\Subscriptions\Models\Plan as Model;
78

89
class Plan extends Model
910
{
1011
use HasFactory;
12+
13+
public function scopeDeveloper(Builder $query): Builder
14+
{
15+
return $query->where('type', \App\Enums\PlanType::DEVELOPER);
16+
}
17+
18+
public function scopeEnterprise(Builder $query): Builder
19+
{
20+
return $query->where('type', \App\Enums\PlanType::ENTERPRISE);
21+
}
1122
}

public/css/app.css

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4402,6 +4402,9 @@ select {
44024402
.col-span-1 {
44034403
grid-column: span 1 / span 1;
44044404
}
4405+
.col-span-2 {
4406+
grid-column: span 2 / span 2;
4407+
}
44054408
.-m-2 {
44064409
margin: -0.5rem;
44074410
}
@@ -4432,6 +4435,10 @@ select {
44324435
margin-left: 0.5rem;
44334436
margin-right: 0.5rem;
44344437
}
4438+
.mx-4 {
4439+
margin-left: 1rem;
4440+
margin-right: 1rem;
4441+
}
44354442
.-my-5 {
44364443
margin-top: -1.25rem;
44374444
margin-bottom: -1.25rem;
@@ -4627,6 +4634,18 @@ select {
46274634
.mr-4 {
46284635
margin-right: 1rem;
46294636
}
4637+
.-mt-8 {
4638+
margin-top: -2rem;
4639+
}
4640+
.-mt-10 {
4641+
margin-top: -2.5rem;
4642+
}
4643+
.-mt-16 {
4644+
margin-top: -4rem;
4645+
}
4646+
.mr-2\.5 {
4647+
margin-right: 0.625rem;
4648+
}
46304649
.block {
46314650
display: block;
46324651
}
@@ -4947,6 +4966,10 @@ select {
49474966
--tw-translate-y: -3rem;
49484967
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
49494968
}
4969+
.-translate-y-1\/2 {
4970+
--tw-translate-y: -50%;
4971+
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
4972+
}
49504973
.rotate-45 {
49514974
--tw-rotate: 45deg;
49524975
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -5063,6 +5086,12 @@ select {
50635086
.cursor-default {
50645087
cursor: default;
50655088
}
5089+
.select-none {
5090+
-webkit-user-select: none;
5091+
-moz-user-select: none;
5092+
-ms-user-select: none;
5093+
user-select: none;
5094+
}
50665095
.resize-none {
50675096
resize: none;
50685097
}
@@ -5086,6 +5115,12 @@ select {
50865115
.grid-cols-4 {
50875116
grid-template-columns: repeat(4, minmax(0, 1fr));
50885117
}
5118+
.grid-cols-9 {
5119+
grid-template-columns: repeat(9, minmax(0, 1fr));
5120+
}
5121+
.grid-cols-12 {
5122+
grid-template-columns: repeat(12, minmax(0, 1fr));
5123+
}
50895124
.flex-col {
50905125
flex-direction: column;
50915126
}
@@ -5283,6 +5318,11 @@ select {
52835318
margin-right: calc(2rem * var(--tw-space-x-reverse));
52845319
margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)));
52855320
}
5321+
.space-x-10 > :not([hidden]) ~ :not([hidden]) {
5322+
--tw-space-x-reverse: 0;
5323+
margin-right: calc(2.5rem * var(--tw-space-x-reverse));
5324+
margin-left: calc(2.5rem * calc(1 - var(--tw-space-x-reverse)));
5325+
}
52865326
.divide-y > :not([hidden]) ~ :not([hidden]) {
52875327
--tw-divide-y-reverse: 0;
52885328
border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
@@ -5341,6 +5381,9 @@ select {
53415381
text-overflow: ellipsis;
53425382
white-space: nowrap;
53435383
}
5384+
.whitespace-normal {
5385+
white-space: normal;
5386+
}
53445387
.whitespace-nowrap {
53455388
white-space: nowrap;
53465389
}
@@ -5368,6 +5411,9 @@ select {
53685411
.rounded-none {
53695412
border-radius: 0px;
53705413
}
5414+
.rounded-2xl {
5415+
border-radius: 1rem;
5416+
}
53715417
.rounded-t-lg {
53725418
border-top-left-radius: 0.5rem;
53735419
border-top-right-radius: 0.5rem;
@@ -5694,6 +5740,17 @@ select {
56945740
--tw-bg-opacity: 1;
56955741
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
56965742
}
5743+
.bg-primary-50 {
5744+
--tw-bg-opacity: 1;
5745+
background-color: rgb(236 253 245 / var(--tw-bg-opacity));
5746+
}
5747+
.bg-flag-yellow {
5748+
--tw-bg-opacity: 1;
5749+
background-color: rgb(255 220 68 / var(--tw-bg-opacity));
5750+
}
5751+
.bg-skin-card\/50 {
5752+
background-color: rgba(var(--color-card-fill), 0.5);
5753+
}
56975754
.bg-opacity-10 {
56985755
--tw-bg-opacity: 0.1;
56995756
}
@@ -5712,6 +5769,9 @@ select {
57125769
.bg-gradient-to-br {
57135770
background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
57145771
}
5772+
.bg-gradient-to-t {
5773+
background-image: linear-gradient(to top, var(--tw-gradient-stops));
5774+
}
57155775
.from-green-500 {
57165776
--tw-gradient-from: #10b981;
57175777
--tw-gradient-to: rgb(16 185 129 / 0);
@@ -5732,10 +5792,24 @@ select {
57325792
--tw-gradient-to: rgb(255 220 68 / 0);
57335793
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
57345794
}
5795+
.from-card {
5796+
--tw-gradient-from: rgb(var(--color-card-fill));
5797+
--tw-gradient-to: rgb(var(--color-card-fill) / 0);
5798+
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
5799+
}
5800+
.from-transparent {
5801+
--tw-gradient-from: transparent;
5802+
--tw-gradient-to: rgb(0 0 0 / 0);
5803+
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
5804+
}
57355805
.via-indigo-600 {
57365806
--tw-gradient-to: rgb(79 70 229 / 0);
57375807
--tw-gradient-stops: var(--tw-gradient-from), #4f46e5, var(--tw-gradient-to);
57385808
}
5809+
.via-card {
5810+
--tw-gradient-to: rgb(var(--color-card-fill) / 0);
5811+
--tw-gradient-stops: var(--tw-gradient-from), rgb(var(--color-card-fill)), var(--tw-gradient-to);
5812+
}
57395813
.to-blue-500 {
57405814
--tw-gradient-to: #3b82f6;
57415815
}
@@ -5745,6 +5819,9 @@ select {
57455819
.to-flag-red {
57465820
--tw-gradient-to: #e21b30;
57475821
}
5822+
.to-body {
5823+
--tw-gradient-to: rgb(var(--color-body-fill));
5824+
}
57485825
.fill-current {
57495826
fill: currentColor;
57505827
}
@@ -5782,6 +5859,9 @@ select {
57825859
.p-3 {
57835860
padding: 0.75rem;
57845861
}
5862+
.p-8 {
5863+
padding: 2rem;
5864+
}
57855865
.px-3 {
57865866
padding-left: 0.75rem;
57875867
padding-right: 0.75rem;
@@ -5894,6 +5974,10 @@ select {
58945974
padding-top: 0.875rem;
58955975
padding-bottom: 0.875rem;
58965976
}
5977+
.px-10 {
5978+
padding-left: 2.5rem;
5979+
padding-right: 2.5rem;
5980+
}
58975981
.pt-12 {
58985982
padding-top: 3rem;
58995983
}
@@ -5990,6 +6074,9 @@ select {
59906074
.pl-16 {
59916075
padding-left: 4rem;
59926076
}
6077+
.pb-12 {
6078+
padding-bottom: 3rem;
6079+
}
59936080
.text-left {
59946081
text-align: left;
59956082
}
@@ -6319,6 +6406,22 @@ select {
63196406
--tw-text-opacity: 1;
63206407
color: rgb(16 185 129 / var(--tw-text-opacity));
63216408
}
6409+
.text-flag-yellow {
6410+
--tw-text-opacity: 1;
6411+
color: rgb(255 220 68 / var(--tw-text-opacity));
6412+
}
6413+
.text-yellow-600 {
6414+
--tw-text-opacity: 1;
6415+
color: rgb(202 138 4 / var(--tw-text-opacity));
6416+
}
6417+
.text-primary-700 {
6418+
--tw-text-opacity: 1;
6419+
color: rgb(4 120 87 / var(--tw-text-opacity));
6420+
}
6421+
.text-yellow-900 {
6422+
--tw-text-opacity: 1;
6423+
color: rgb(113 63 18 / var(--tw-text-opacity));
6424+
}
63226425
.underline {
63236426
-webkit-text-decoration-line: underline;
63246427
text-decoration-line: underline;
@@ -6993,6 +7096,11 @@ select {
69937096
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
69947097
}
69957098

7099+
.hover\:bg-primary-100:hover {
7100+
--tw-bg-opacity: 1;
7101+
background-color: rgb(209 250 229 / var(--tw-bg-opacity));
7102+
}
7103+
69967104
.hover\:\!text-skin-primary-hover:hover {
69977105
--tw-text-opacity: 1 !important;
69987106
color: rgba(var(--color-text-primary-hover), var(--tw-text-opacity)) !important;
@@ -8669,6 +8777,14 @@ select {
86698777
padding-top: 1rem;
86708778
}
86718779

8780+
.sm\:pt-16 {
8781+
padding-top: 4rem;
8782+
}
8783+
8784+
.sm\:pb-16 {
8785+
padding-bottom: 4rem;
8786+
}
8787+
86728788
.sm\:text-left {
86738789
text-align: left;
86748790
}
@@ -9536,6 +9652,11 @@ select {
95369652
margin-right: -2rem;
95379653
}
95389654

9655+
.lg\:mx-auto {
9656+
margin-left: auto;
9657+
margin-right: auto;
9658+
}
9659+
95399660
.lg\:mt-8 {
95409661
margin-top: 2rem;
95419662
}
@@ -9572,6 +9693,18 @@ select {
95729693
margin-left: 1.5rem;
95739694
}
95749695

9696+
.lg\:-mt-16 {
9697+
margin-top: -4rem;
9698+
}
9699+
9700+
.lg\:mt-24 {
9701+
margin-top: 6rem;
9702+
}
9703+
9704+
.lg\:mt-20 {
9705+
margin-top: 5rem;
9706+
}
9707+
95759708
.lg\:block {
95769709
display: block;
95779710
}
@@ -10242,10 +10375,22 @@ select {
1024210375
padding-bottom: 4rem;
1024310376
}
1024410377

10378+
.lg\:pb-32 {
10379+
padding-bottom: 8rem;
10380+
}
10381+
10382+
.lg\:pt-20 {
10383+
padding-top: 5rem;
10384+
}
10385+
1024510386
.lg\:text-left {
1024610387
text-align: left;
1024710388
}
1024810389

10390+
.lg\:text-center {
10391+
text-align: center;
10392+
}
10393+
1024910394
.lg\:text-sm {
1025010395
font-size: 0.875rem;
1025110396
line-height: 1.25rem;

0 commit comments

Comments
 (0)