ListCoupons::route('/'), 'create' => CreateCoupon::route('/create'), 'view' => ViewCoupon::route('/{record}'), 'edit' => EditCoupon::route('/{record}/edit'), ]; } public static function getRecordRouteBindingEloquentQuery(): Builder { return parent::getRecordRouteBindingEloquentQuery() ->withoutGlobalScopes([ SoftDeletingScope::class, ]); } public static function getEloquentQuery(): Builder { return parent::getEloquentQuery()->withoutGlobalScopes([ SoftDeletingScope::class, ]); } public static function mutateFormDataBeforeCreate(array $data): array { $userId = Auth::id(); if ($userId) { $data['created_by'] = $userId; $data['updated_by'] = $userId; } return static::sanitizeFormData($data); } public static function mutateFormDataBeforeSave(array $data): array { if ($userId = Auth::id()) { $data['updated_by'] = $userId; } return static::sanitizeFormData($data); } protected static function sanitizeFormData(array $data): array { if (! empty($data['code'])) { $data['code'] = strtoupper($data['code']); } if (($data['type'] ?? null) === 'percentage') { $data['currency'] = null; } elseif (! empty($data['currency'])) { $data['currency'] = strtoupper($data['currency']); } if (empty($data['metadata'])) { $data['metadata'] = null; } return $data; } }