44
55namespace Cone \Bazar \Resources ;
66
7+ use Cone \Bazar \Enums \DiscountRuleType ;
78use Cone \Bazar \Models \DiscountRule ;
9+ use Cone \Root \Fields \BelongsToMany ;
10+ use Cone \Root \Fields \Boolean ;
811use Cone \Root \Fields \ID ;
12+ use Cone \Root \Fields \Select ;
13+ use Cone \Root \Fields \Text ;
914use Cone \Root \Resources \Resource ;
1015use Illuminate \Database \Eloquent \Model ;
1116use Illuminate \Http \Request ;
17+ use Illuminate \Validation \Rule ;
1218
1319class DiscountRuleResource extends Resource
1420{
@@ -17,7 +23,7 @@ class DiscountRuleResource extends Resource
1723 *
1824 * @var class-string<\Cone\Bazar\Models\DiscountRule>
1925 */
20- protected static string $ model = DiscountRule::class;
26+ protected string $ model = DiscountRule::class;
2127
2228 /**
2329 * The group for the resource.
@@ -47,6 +53,29 @@ public function fields(Request $request): array
4753 {
4854 return [
4955 ID ::make (),
56+
57+ Text::make (__ ('Name ' ), 'name ' )
58+ ->sortable ()
59+ ->searchable ()
60+ ->rules (['required ' , 'string ' , 'max:255 ' ]),
61+
62+ Boolean::make (__ ('Active ' ), 'active ' )
63+ ->sortable ()
64+ ->rules (['required ' , 'boolean ' ]),
65+
66+ Select::make (__ ('Type ' ), 'type ' )
67+ ->options (DiscountRuleType::toArray ())
68+ ->sortable ()
69+ ->rules (['required ' , 'string ' , Rule::in (array_column (DiscountRuleType::cases (), 'value ' ))]),
70+
71+ Boolean::make (__ ('Stackable ' ), 'stackable ' )
72+ ->sortable ()
73+ ->rules (['required ' , 'boolean ' ]),
74+
75+ BelongsToMany::make (__ ('Users ' ), 'users ' )
76+ ->searchable (columns: ['name ' , 'email ' ])
77+ ->async ()
78+ ->display ('name ' ),
5079 ];
5180 }
5281}
0 commit comments