diff --git a/app/Actions/Fortify/PasswordValidationRules.php b/app/Actions/Fortify/PasswordValidationRules.php index e7160ad..1ace97a 100644 --- a/app/Actions/Fortify/PasswordValidationRules.php +++ b/app/Actions/Fortify/PasswordValidationRules.php @@ -10,6 +10,8 @@ trait PasswordValidationRules { /** * Get the validation rules used to validate passwords. + * + * @return array */ protected function passwordRules(): array { diff --git a/app/Actions/Fortify/ResetUserPassword.php b/app/Actions/Fortify/ResetUserPassword.php index 2531bb6..bed8016 100644 --- a/app/Actions/Fortify/ResetUserPassword.php +++ b/app/Actions/Fortify/ResetUserPassword.php @@ -15,6 +15,8 @@ class ResetUserPassword implements ResetsUserPasswords /** * Validate and reset the user's forgotten password. + * + * @param array $input */ public function reset(User $user, array $input): void { diff --git a/app/Actions/Fortify/UpdateUserPassword.php b/app/Actions/Fortify/UpdateUserPassword.php index 44b20bd..0a910aa 100644 --- a/app/Actions/Fortify/UpdateUserPassword.php +++ b/app/Actions/Fortify/UpdateUserPassword.php @@ -15,6 +15,8 @@ class UpdateUserPassword implements UpdatesUserPasswords /** * Validate and update the user's password. + * + * @param array $input */ public function update(User $user, array $input): void { diff --git a/app/Actions/Fortify/UpdateUserProfileInformation.php b/app/Actions/Fortify/UpdateUserProfileInformation.php index 0244f05..7588c30 100644 --- a/app/Actions/Fortify/UpdateUserProfileInformation.php +++ b/app/Actions/Fortify/UpdateUserProfileInformation.php @@ -13,6 +13,8 @@ class UpdateUserProfileInformation implements UpdatesUserProfileInformation { /** * Validate and update the given user's profile information. + * + * @param array $input */ public function update(User $user, array $input): void { diff --git a/app/Http/Controllers/Api/V0/ApiController.php b/app/Http/Controllers/Api/V0/ApiController.php index 760b876..9797325 100644 --- a/app/Http/Controllers/Api/V0/ApiController.php +++ b/app/Http/Controllers/Api/V0/ApiController.php @@ -14,6 +14,8 @@ class ApiController extends Controller /** * Determine if the given relationship should be included in the request. If more than one relationship is provided, * only one needs to be present in the request for this method to return true. + * + * @param string|array $relationships */ public static function shouldInclude(string|array $relationships): bool { diff --git a/app/Http/Controllers/SocialiteController.php b/app/Http/Controllers/SocialiteController.php index eecbaed..b5f048e 100644 --- a/app/Http/Controllers/SocialiteController.php +++ b/app/Http/Controllers/SocialiteController.php @@ -21,6 +21,8 @@ class SocialiteController extends Controller { /** * The providers that are supported. + * + * @var array */ protected array $providers = ['discord']; diff --git a/app/Http/Filters/ModFilter.php b/app/Http/Filters/ModFilter.php index 48c626c..3d1bd42 100644 --- a/app/Http/Filters/ModFilter.php +++ b/app/Http/Filters/ModFilter.php @@ -12,22 +12,29 @@ class ModFilter { /** * The query builder instance for the mod model. + * + * @var Builder */ protected Builder $builder; /** * Create a new ModFilter instance. */ - public function __construct(/** - * The filters to apply. - */ - protected array $filters) - { + public function __construct( + /** + * The filters to apply to the query. + * + * @var array + */ + protected array $filters + ) { $this->builder = $this->baseQuery(); } /** * The base query for the mod listing. + * + * @return Builder */ private function baseQuery(): Builder { @@ -50,6 +57,8 @@ class ModFilter /** * Filter the results by the given search term. + * + * @return Builder */ private function query(string $term): Builder { @@ -58,6 +67,8 @@ class ModFilter /** * Apply the filters to the query. + * + * @return Builder */ public function apply(): Builder { @@ -72,6 +83,8 @@ class ModFilter /** * Order the query by the given type. + * + * @return Builder */ private function order(string $type): Builder { @@ -84,6 +97,8 @@ class ModFilter /** * Filter the results by the featured status. + * + * @return Builder */ private function featured(string $option): Builder { @@ -96,6 +111,9 @@ class ModFilter /** * Filter the results to specific SPT versions. + * + * @param array $versions + * @return Builder */ private function sptVersions(array $versions): Builder { diff --git a/app/Http/Filters/V1/ModFilter.php b/app/Http/Filters/V1/ModFilter.php index 062065b..ed382e4 100644 --- a/app/Http/Filters/V1/ModFilter.php +++ b/app/Http/Filters/V1/ModFilter.php @@ -5,11 +5,14 @@ declare(strict_types=1); namespace App\Http\Filters\V1; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Model; class ModFilter extends QueryFilter { /** * The sortable fields. + * + * @var array */ protected array $sortable = [ 'name', @@ -26,6 +29,8 @@ class ModFilter extends QueryFilter /** * Filter by ID. + * + * @return Builder */ public function id(string $value): Builder { @@ -34,6 +39,8 @@ class ModFilter extends QueryFilter /** * Filter by hub ID. + * + * @return Builder */ public function hub_id(string $value): Builder { @@ -42,6 +49,8 @@ class ModFilter extends QueryFilter /** * Filter by name. + * + * @return Builder */ public function name(string $value): Builder { @@ -50,6 +59,8 @@ class ModFilter extends QueryFilter /** * Filter by slug. + * + * @return Builder */ public function slug(string $value): Builder { @@ -58,6 +69,8 @@ class ModFilter extends QueryFilter /** * Filter by teaser. + * + * @return Builder */ public function teaser(string $value): Builder { @@ -66,6 +79,8 @@ class ModFilter extends QueryFilter /** * Filter by source code link. + * + * @return Builder */ public function source_code_link(string $value): Builder { @@ -74,6 +89,8 @@ class ModFilter extends QueryFilter /** * Filter by created at date. + * + * @return Builder */ public function created_at(string $value): Builder { @@ -82,6 +99,8 @@ class ModFilter extends QueryFilter /** * Filter by updated at date. + * + * @return Builder */ public function updated_at(string $value): Builder { @@ -90,6 +109,8 @@ class ModFilter extends QueryFilter /** * Filter by published at date. + * + * @return Builder */ public function published_at(string $value): Builder { @@ -98,6 +119,8 @@ class ModFilter extends QueryFilter /** * Filter by featured. + * + * @return Builder */ public function featured(string $value): Builder { @@ -106,6 +129,8 @@ class ModFilter extends QueryFilter /** * Filter by contains ads. + * + * @return Builder */ public function contains_ads(string $value): Builder { @@ -114,6 +139,8 @@ class ModFilter extends QueryFilter /** * Filter by contains AI content. + * + * @return Builder */ public function contains_ai_content(string $value): Builder { diff --git a/app/Http/Filters/V1/QueryFilter.php b/app/Http/Filters/V1/QueryFilter.php index be54fef..152abfc 100644 --- a/app/Http/Filters/V1/QueryFilter.php +++ b/app/Http/Filters/V1/QueryFilter.php @@ -6,6 +6,7 @@ namespace App\Http\Filters\V1; use App\Traits\V1\FilterMethods; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Model; use Illuminate\Http\Request; abstract class QueryFilter @@ -17,11 +18,15 @@ abstract class QueryFilter /** * The query builder instance. + * + * @var Builder */ protected Builder $builder; /** * The sortable fields. + * + * @var array */ protected array $sortable = []; @@ -37,6 +42,9 @@ abstract class QueryFilter /** * Iterate over each of the filter options and call the appropriate method if it exists. + * + * @param array $filters + * @return Builder */ public function filter(array $filters): Builder { @@ -51,6 +59,9 @@ abstract class QueryFilter /** * Iterate over all request data and call the appropriate method if it exists. + * + * @param Builder $builder + * @return Builder */ public function apply(Builder $builder): Builder { diff --git a/app/Http/Filters/V1/UserFilter.php b/app/Http/Filters/V1/UserFilter.php index e4a9322..795d4e6 100644 --- a/app/Http/Filters/V1/UserFilter.php +++ b/app/Http/Filters/V1/UserFilter.php @@ -5,11 +5,14 @@ declare(strict_types=1); namespace App\Http\Filters\V1; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Model; class UserFilter extends QueryFilter { /** * The sortable fields. + * + * @var array */ protected array $sortable = [ 'name', @@ -19,6 +22,8 @@ class UserFilter extends QueryFilter /** * Filter by ID. + * + * @return Builder */ public function id(string $value): Builder { @@ -27,6 +32,8 @@ class UserFilter extends QueryFilter /** * Filter by name. + * + * @return Builder */ public function name(string $value): Builder { @@ -35,6 +42,8 @@ class UserFilter extends QueryFilter /** * Filter by created at date. + * + * @return Builder */ public function created_at(string $value): Builder { @@ -43,6 +52,8 @@ class UserFilter extends QueryFilter /** * Filter by updated at date. + * + * @return Builder */ public function updated_at(string $value): Builder { diff --git a/app/Http/Requests/Api/LoginUserRequest.php b/app/Http/Requests/Api/LoginUserRequest.php index 7c111af..7caaa7a 100644 --- a/app/Http/Requests/Api/LoginUserRequest.php +++ b/app/Http/Requests/Api/LoginUserRequest.php @@ -18,6 +18,8 @@ class LoginUserRequest extends FormRequest /** * Get the validation rules that apply to the request. + * + * @return array> */ public function rules(): array { diff --git a/app/Http/Requests/Api/V0/StoreModRequest.php b/app/Http/Requests/Api/V0/StoreModRequest.php index 63b52fc..728c18e 100644 --- a/app/Http/Requests/Api/V0/StoreModRequest.php +++ b/app/Http/Requests/Api/V0/StoreModRequest.php @@ -18,6 +18,8 @@ class StoreModRequest extends FormRequest /** * Get the validation rules that apply to the request. + * + * @return array> */ public function rules(): array { diff --git a/app/Http/Requests/Api/V0/StoreUserRequest.php b/app/Http/Requests/Api/V0/StoreUserRequest.php index 4536e50..91f6e9e 100644 --- a/app/Http/Requests/Api/V0/StoreUserRequest.php +++ b/app/Http/Requests/Api/V0/StoreUserRequest.php @@ -18,6 +18,8 @@ class StoreUserRequest extends FormRequest /** * Get the validation rules that apply to the request. + * + * @return array> */ public function rules(): array { diff --git a/app/Http/Requests/Api/V0/UpdateModRequest.php b/app/Http/Requests/Api/V0/UpdateModRequest.php index c24e654..2f431c4 100644 --- a/app/Http/Requests/Api/V0/UpdateModRequest.php +++ b/app/Http/Requests/Api/V0/UpdateModRequest.php @@ -18,6 +18,8 @@ class UpdateModRequest extends FormRequest /** * Get the validation rules that apply to the request. + * + * @return array> */ public function rules(): array { diff --git a/app/Http/Requests/Api/V0/UpdateUserRequest.php b/app/Http/Requests/Api/V0/UpdateUserRequest.php index 91197a2..e607289 100644 --- a/app/Http/Requests/Api/V0/UpdateUserRequest.php +++ b/app/Http/Requests/Api/V0/UpdateUserRequest.php @@ -18,6 +18,8 @@ class UpdateUserRequest extends FormRequest /** * Get the validation rules that apply to the request. + * + * @return array> */ public function rules(): array { diff --git a/app/Http/Requests/ModRequest.php b/app/Http/Requests/ModRequest.php index 722ec70..7dabd0c 100644 --- a/app/Http/Requests/ModRequest.php +++ b/app/Http/Requests/ModRequest.php @@ -10,6 +10,8 @@ class ModRequest extends FormRequest { /** * Get the validation rules that apply to the request. + * + * @return array> */ public function rules(): array { diff --git a/app/Http/Resources/Api/V0/LicenseResource.php b/app/Http/Resources/Api/V0/LicenseResource.php index 08b61a4..edafee6 100644 --- a/app/Http/Resources/Api/V0/LicenseResource.php +++ b/app/Http/Resources/Api/V0/LicenseResource.php @@ -14,6 +14,8 @@ class LicenseResource extends JsonResource { /** * Transform the resource into an array. + * + * @return array */ #[Override] public function toArray(Request $request): array diff --git a/app/Http/Resources/Api/V0/ModResource.php b/app/Http/Resources/Api/V0/ModResource.php index d06d9a2..d0e2b41 100644 --- a/app/Http/Resources/Api/V0/ModResource.php +++ b/app/Http/Resources/Api/V0/ModResource.php @@ -17,6 +17,8 @@ class ModResource extends JsonResource { /** * Transform the resource into an array. + * + * @return array */ #[Override] public function toArray(Request $request): array diff --git a/app/Http/Resources/Api/V0/ModVersionResource.php b/app/Http/Resources/Api/V0/ModVersionResource.php index 58aec9c..31befd6 100644 --- a/app/Http/Resources/Api/V0/ModVersionResource.php +++ b/app/Http/Resources/Api/V0/ModVersionResource.php @@ -14,6 +14,8 @@ class ModVersionResource extends JsonResource { /** * Transform the resource into an array. + * + * @return array */ #[Override] public function toArray(Request $request): array diff --git a/app/Http/Resources/Api/V0/UserResource.php b/app/Http/Resources/Api/V0/UserResource.php index d2ac02b..722161e 100644 --- a/app/Http/Resources/Api/V0/UserResource.php +++ b/app/Http/Resources/Api/V0/UserResource.php @@ -15,6 +15,8 @@ class UserResource extends JsonResource { /** * Transform the resource into an array. + * + * @return array */ #[Override] public function toArray(Request $request): array diff --git a/app/Http/Resources/Api/V0/UserRoleResource.php b/app/Http/Resources/Api/V0/UserRoleResource.php index ae8bab8..c28b532 100644 --- a/app/Http/Resources/Api/V0/UserRoleResource.php +++ b/app/Http/Resources/Api/V0/UserRoleResource.php @@ -14,6 +14,8 @@ class UserRoleResource extends JsonResource { /** * Transform the resource into an array. + * + * @return array */ #[Override] public function toArray(Request $request): array diff --git a/app/Http/Resources/LicenseResource.php b/app/Http/Resources/LicenseResource.php index 898fc80..f7efcab 100644 --- a/app/Http/Resources/LicenseResource.php +++ b/app/Http/Resources/LicenseResource.php @@ -14,6 +14,8 @@ class LicenseResource extends JsonResource { /** * Transform the resource into an array. + * + * @return array */ #[Override] public function toArray(Request $request): array diff --git a/app/Http/Resources/ModResource.php b/app/Http/Resources/ModResource.php index 8c1ba77..8e1e088 100644 --- a/app/Http/Resources/ModResource.php +++ b/app/Http/Resources/ModResource.php @@ -14,6 +14,8 @@ class ModResource extends JsonResource { /** * Transform the resource into an array. + * + * @return array */ #[Override] public function toArray(Request $request): array diff --git a/app/Http/Resources/ModVersionResource.php b/app/Http/Resources/ModVersionResource.php index 6f90848..f451f6b 100644 --- a/app/Http/Resources/ModVersionResource.php +++ b/app/Http/Resources/ModVersionResource.php @@ -14,6 +14,8 @@ class ModVersionResource extends JsonResource { /** * Transform the resource into an array. + * + * @return array */ #[Override] public function toArray(Request $request): array diff --git a/app/Http/Resources/SptVersionResource.php b/app/Http/Resources/SptVersionResource.php index 878e3ed..e9f8aad 100644 --- a/app/Http/Resources/SptVersionResource.php +++ b/app/Http/Resources/SptVersionResource.php @@ -14,6 +14,8 @@ class SptVersionResource extends JsonResource { /** * Transform the resource into an array. + * + * @return array */ #[Override] public function toArray(Request $request): array diff --git a/app/Jobs/Import/ImportHubDataJob.php b/app/Jobs/Import/ImportHubDataJob.php index b763e7a..4427121 100644 --- a/app/Jobs/Import/ImportHubDataJob.php +++ b/app/Jobs/Import/ImportHubDataJob.php @@ -389,6 +389,8 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue /** * Build an array of user data ready to be inserted into the local database. + * + * @return array */ protected function collectUserData(CurlHandle $curlHandle, HubUser $hubUser): array { @@ -530,6 +532,8 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue /** * Build an array of banned user data ready to be inserted into the local database. + * + * @return array|null */ protected function collectBannedUserData(HubUser $hubUser): ?array { @@ -586,6 +590,8 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue /** * Build an array of user rank data ready to be inserted into the local database. + * + * @return array|null */ protected function collectUserRankData(HubUser $hubUser): ?array { @@ -601,6 +607,8 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue /** * Insert or update the users in the local database. + * + * @param array> $usersData */ protected function upsertUsers(array $usersData): void { @@ -617,6 +625,8 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue /** * Fetch the hub-banned users from the local database and ban them locally. + * + * @param array> $bannedUsers */ protected function handleBannedUsers(array $bannedUsers): void { @@ -631,6 +641,8 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue /** * Fetch or create the user ranks in the local database and assign them to the users. + * + * @param array> $userRanks */ protected function handleUserRoles(array $userRanks): void { @@ -647,6 +659,8 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue /** * Build the user role data based on the role name. + * + * @return array */ protected function buildUserRoleData(string $name): array { @@ -813,6 +827,8 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue /** * Get the latest current version from the response data. + * + * @param array> $versions */ protected function getLatestVersion(array $versions): string { diff --git a/app/Livewire/GlobalSearch.php b/app/Livewire/GlobalSearch.php index a5ef949..98ba67c 100644 --- a/app/Livewire/GlobalSearch.php +++ b/app/Livewire/GlobalSearch.php @@ -21,6 +21,8 @@ class GlobalSearch extends Component /** * The search results. + * + * @var array> */ #[Locked] public array $result = []; @@ -44,6 +46,8 @@ class GlobalSearch extends Component /** * Execute the search against each of the searchable models. + * + * @return array> */ protected function executeSearch(string $query): array { @@ -61,25 +65,37 @@ class GlobalSearch extends Component /** * Fetch the user search results. + * + * @return Collection */ protected function fetchUserResults(string $query): Collection { - return collect(User::search($query)->raw()['hits']); + /** @var Collection $searchHits */ + $searchHits = User::search($query)->raw()['hits']; + + return collect($searchHits); } /** * Fetch the mod search results. + * + * @return Collection */ protected function fetchModResults(string $query): Collection { - return collect(Mod::search($query)->raw()['hits']); + /** @var Collection $searchHits */ + $searchHits = Mod::search($query)->raw()['hits']; + + return collect($searchHits); } /** * Count the total number of results across all models. + * + * @param array> $results */ protected function countTotalResults(array $results): int { - return collect($results)->reduce(fn (int $carry, Collection $result): int => $carry + $result->count(), 0); + return (int) collect($results)->reduce(fn (int $carry, Collection $result): int => $carry + $result->count(), 0); } } diff --git a/app/Livewire/Mod/Listing.php b/app/Livewire/Mod/Listing.php index b75d4fc..7bc00bd 100644 --- a/app/Livewire/Mod/Listing.php +++ b/app/Livewire/Mod/Listing.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Livewire\Mod; use App\Http\Filters\ModFilter; +use App\Models\Mod; use App\Models\SptVersion; use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Contracts\View\View; @@ -44,12 +45,16 @@ class Listing extends Component /** * The options that are available for the per page setting. + * + * @var array */ #[Locked] public array $perPageOptions = [6, 12, 24, 50]; /** * The SPT versions filter value. + * + * @var array */ #[Session] #[Url] @@ -81,6 +86,8 @@ class Listing extends Component /** * Get the default values for the SPT Versions filter. + * + * @return array */ protected function getDefaultSptVersions(): array { @@ -89,6 +96,8 @@ class Listing extends Component /** * Get all patch versions of the latest minor SPT version. + * + * @return Collection */ public function getLatestMinorVersions(): Collection { @@ -137,6 +146,8 @@ class Listing extends Component /** * Check if the current page is greater than the last page. Redirect if it is. + * + * @param LengthAwarePaginator $lengthAwarePaginator */ private function redirectOutOfBoundsPage(LengthAwarePaginator $lengthAwarePaginator): void { diff --git a/app/Livewire/Profile/ManageOAuthConnections.php b/app/Livewire/Profile/ManageOAuthConnections.php index f14b103..5357ee4 100644 --- a/app/Livewire/Profile/ManageOAuthConnections.php +++ b/app/Livewire/Profile/ManageOAuthConnections.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Livewire\Profile; +use App\Models\User; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\View\View; use Livewire\Attributes\Locked; @@ -18,18 +19,18 @@ class ManageOAuthConnections extends Component * Store the current user. */ #[Locked] - public $user; + public User $user; /** * Controls the confirmation modal visibility. */ - public $confirmingConnectionDeletion = false; + public bool $confirmingConnectionDeletion = false; /** * Stores the ID of the connection to be deleted. */ #[Locked] - public $selectedConnectionId; + public ?string $selectedConnectionId = null; /** * Initializes the component by loading the user's OAuth connections. @@ -44,7 +45,7 @@ class ManageOAuthConnections extends Component /** * Sets up the deletion confirmation. */ - public function confirmConnectionDeletion($connectionId): void + public function confirmConnectionDeletion(string $connectionId): void { $this->confirmingConnectionDeletion = true; $this->selectedConnectionId = $connectionId; diff --git a/app/Livewire/Profile/UpdateProfileForm.php b/app/Livewire/Profile/UpdateProfileForm.php index dd6b95f..0d480be 100644 --- a/app/Livewire/Profile/UpdateProfileForm.php +++ b/app/Livewire/Profile/UpdateProfileForm.php @@ -15,6 +15,8 @@ class UpdateProfileForm extends UpdateProfileInformationForm { /** * The new cover photo for the user. + * + * @var string|null */ public $cover; @@ -42,11 +44,11 @@ class UpdateProfileForm extends UpdateProfileInformationForm * Update the user's profile information. */ #[Override] - public function updateProfileInformation(UpdatesUserProfileInformation $updatesUserProfileInformation): RedirectResponse|Redirector|null + public function updateProfileInformation(UpdatesUserProfileInformation $updater): RedirectResponse|Redirector|null { $this->resetErrorBag(); - $updatesUserProfileInformation->update( + $updater->update( Auth::user(), $this->photo || $this->cover ? array_merge($this->state, array_filter([ diff --git a/app/Livewire/User/FollowCard.php b/app/Livewire/User/FollowCard.php index 62adc08..673c584 100644 --- a/app/Livewire/User/FollowCard.php +++ b/app/Livewire/User/FollowCard.php @@ -36,18 +36,6 @@ class FollowCard extends Component */ public string $dialogTitle; - /** - * The user data to display in the card. - */ - #[Locked] - public array $display = []; - - /** - * The limited user data to display in the card. - */ - #[Locked] - public array $displayLimit = []; - /** * The maximum number of users to display on the card. */ @@ -67,18 +55,24 @@ class FollowCard extends Component /** * A collection of user IDs that the auth user follows. + * + * @var Collection */ #[Locked] public Collection $authFollowIds; /** * The profile user's followers (or following). + * + * @var Collection */ #[Locked] public Collection $followUsers; /** * The events the component should listen for. + * + * @var array */ protected $listeners = ['refreshComponent' => '$refresh']; diff --git a/app/Livewire/User/FollowCards.php b/app/Livewire/User/FollowCards.php index e5e0831..d14b576 100644 --- a/app/Livewire/User/FollowCards.php +++ b/app/Livewire/User/FollowCards.php @@ -21,6 +21,8 @@ class FollowCards extends Component /** * A collection of user IDs that the auth user follows. + * + * @var Collection */ #[Locked] public Collection $authFollowIds; diff --git a/app/Models/License.php b/app/Models/License.php index b1c3940..1c74e16 100644 --- a/app/Models/License.php +++ b/app/Models/License.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Models; use Carbon\Carbon; +use Database\Factories\LicenseFactory; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -25,7 +26,9 @@ use Illuminate\Database\Eloquent\SoftDeletes; */ class License extends Model { + /** @use HasFactory */ use HasFactory; + use SoftDeletes; /** diff --git a/app/Models/Mod.php b/app/Models/Mod.php index d4113d7..72e2c70 100644 --- a/app/Models/Mod.php +++ b/app/Models/Mod.php @@ -7,6 +7,7 @@ namespace App\Models; use App\Http\Filters\V1\QueryFilter; use App\Models\Scopes\DisabledScope; use App\Models\Scopes\PublishedScope; +use Database\Factories\ModFactory; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Collection; @@ -53,7 +54,9 @@ use Override; */ class Mod extends Model { + /** @use HasFactory */ use HasFactory; + use Searchable; use SoftDeletes; @@ -140,6 +143,8 @@ class Mod extends Model /** * The data that is searchable by Scout. + * + * @return array */ public function toSearchableArray(): array { @@ -221,6 +226,8 @@ class Mod extends Model /** * Build the URL to the mod's thumbnail. + * + * @return Attribute */ public function thumbnailUrl(): Attribute { @@ -242,6 +249,9 @@ class Mod extends Model /** * Scope a query by applying QueryFilter filters. + * + * @param Builder $builder + * @return Builder */ public function scopeFilter(Builder $builder, QueryFilter $queryFilter): Builder { diff --git a/app/Models/ModDependency.php b/app/Models/ModDependency.php index 4a527d3..f89b799 100644 --- a/app/Models/ModDependency.php +++ b/app/Models/ModDependency.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Models; use Carbon\Carbon; +use Database\Factories\ModDependencyFactory; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -26,6 +27,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany; */ class ModDependency extends Model { + /** @use HasFactory */ use HasFactory; /** diff --git a/app/Models/ModVersion.php b/app/Models/ModVersion.php index fdd8b95..fde3b70 100644 --- a/app/Models/ModVersion.php +++ b/app/Models/ModVersion.php @@ -8,6 +8,7 @@ use App\Exceptions\InvalidVersionNumberException; use App\Models\Scopes\DisabledScope; use App\Models\Scopes\PublishedScope; use App\Support\Version; +use Database\Factories\ModVersionFactory; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -49,11 +50,15 @@ use Override; */ class ModVersion extends Model { + /** @use HasFactory */ use HasFactory; + use SoftDeletes; /** * Update the parent mod's updated_at timestamp when the mod version is updated. + * + * @var string[] */ protected $touches = ['mod']; diff --git a/app/Models/OAuthConnection.php b/app/Models/OAuthConnection.php index 882180b..302ee83 100644 --- a/app/Models/OAuthConnection.php +++ b/app/Models/OAuthConnection.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Models; use Carbon\Carbon; +use Database\Factories\OAuthConnectionFactory; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; @@ -28,6 +29,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo; */ class OAuthConnection extends Model { + /** @use HasFactory */ use HasFactory; protected $table = 'oauth_connections'; diff --git a/app/Models/Scopes/DisabledScope.php b/app/Models/Scopes/DisabledScope.php index eb1a521..28a88c2 100644 --- a/app/Models/Scopes/DisabledScope.php +++ b/app/Models/Scopes/DisabledScope.php @@ -12,6 +12,8 @@ class DisabledScope implements Scope { /** * Apply the scope to a given Eloquent query builder. + * + * @param Builder $builder */ public function apply(Builder $builder, Model $model): void { diff --git a/app/Models/Scopes/PublishedScope.php b/app/Models/Scopes/PublishedScope.php index a84d66e..8c10990 100644 --- a/app/Models/Scopes/PublishedScope.php +++ b/app/Models/Scopes/PublishedScope.php @@ -12,6 +12,8 @@ class PublishedScope implements Scope { /** * Apply the scope to a given Eloquent query builder. + * + * @param Builder $builder */ public function apply(Builder $builder, Model $model): void { diff --git a/app/Models/SptVersion.php b/app/Models/SptVersion.php index 6cf7d2c..4881c90 100644 --- a/app/Models/SptVersion.php +++ b/app/Models/SptVersion.php @@ -7,6 +7,7 @@ namespace App\Models; use App\Exceptions\InvalidVersionNumberException; use App\Support\Version; use Carbon\Carbon; +use Database\Factories\SptVersionFactory; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -37,11 +38,15 @@ use Throwable; */ class SptVersion extends Model { + /** @use HasFactory */ use HasFactory; + use SoftDeletes; /** * Get all versions for the last three minor versions. + * + * @return Collection */ public static function getVersionsForLastThreeMinors(): Collection { @@ -70,6 +75,8 @@ class SptVersion extends Model /** * Get the last three minor versions (major.minor format). + * + * @return array */ public static function getLastThreeMinorVersions(): array { @@ -90,6 +97,8 @@ class SptVersion extends Model /** * Extract the version sections from the version string. * + * @return array{major: int, minor: int, patch: int, pre_release: string} + * * @throws InvalidVersionNumberException|Throwable */ public static function extractVersionSections(string $version): array diff --git a/app/Models/User.php b/app/Models/User.php index 16433c0..b2c194c 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -9,11 +9,13 @@ use App\Notifications\ResetPassword; use App\Notifications\VerifyEmail; use App\Traits\HasCoverPhoto; use Carbon\Carbon; +use Database\Factories\UserFactory; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasMany; @@ -54,7 +56,10 @@ class User extends Authenticatable implements MustVerifyEmail use Bannable; use HasApiTokens; use HasCoverPhoto; + + /** @use HasFactory */ use HasFactory; + use HasProfilePhoto; use Notifiable; use Searchable; @@ -150,6 +155,8 @@ class User extends Authenticatable implements MustVerifyEmail /** * The data that is searchable by Scout. + * + * @return array */ public function toSearchableArray(): array { @@ -242,6 +249,9 @@ class User extends Authenticatable implements MustVerifyEmail /** * Scope a query by applying QueryFilter filters. + * + * @param Builder $builder + * @return Builder */ public function scopeFilter(Builder $builder, QueryFilter $queryFilter): Builder { @@ -260,6 +270,8 @@ class User extends Authenticatable implements MustVerifyEmail /** * Handle the about default value if empty. Thanks, MySQL! + * + * @return Attribute */ protected function about(): Attribute { diff --git a/app/Models/UserRole.php b/app/Models/UserRole.php index f11fa89..7b5f8c1 100644 --- a/app/Models/UserRole.php +++ b/app/Models/UserRole.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Models; use Carbon\Carbon; +use Database\Factories\UserRoleFactory; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -24,6 +25,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany; */ class UserRole extends Model { + /** @use HasFactory */ use HasFactory; /** diff --git a/app/Notifications/ResetPassword.php b/app/Notifications/ResetPassword.php index d77c65b..0fcd7ab 100644 --- a/app/Notifications/ResetPassword.php +++ b/app/Notifications/ResetPassword.php @@ -22,6 +22,8 @@ class ResetPassword extends OriginalResetPassword implements ShouldQueue /** * Get the array representation of the notification. + * + * @return array */ public function toArray(object $notifiable): array { diff --git a/app/Notifications/VerifyEmail.php b/app/Notifications/VerifyEmail.php index ba80701..af1b474 100644 --- a/app/Notifications/VerifyEmail.php +++ b/app/Notifications/VerifyEmail.php @@ -17,6 +17,8 @@ class VerifyEmail extends OriginalVerifyEmail implements ShouldQueue /** * Get the array representation of the notification. + * + * @return array */ public function toArray(object $notifiable): array { diff --git a/app/Services/DependencyVersionService.php b/app/Services/DependencyVersionService.php index 863d109..71c91d4 100644 --- a/app/Services/DependencyVersionService.php +++ b/app/Services/DependencyVersionService.php @@ -20,6 +20,8 @@ class DependencyVersionService /** * Satisfies all dependency constraints of a ModVersion. + * + * @return array> */ private function satisfyConstraint(ModVersion $modVersion): array { diff --git a/app/Services/SptVersionService.php b/app/Services/SptVersionService.php index 62ad0a0..8f0b8fe 100644 --- a/app/Services/SptVersionService.php +++ b/app/Services/SptVersionService.php @@ -21,6 +21,8 @@ class SptVersionService /** * Satisfies the version constraint of a given ModVersion. Returns the ID of the satisfying SptVersion. + * + * @return array */ private function satisfyConstraint(ModVersion $modVersion): array { diff --git a/app/Traits/ApiResponses.php b/app/Traits/ApiResponses.php index c2a42dd..150dd89 100644 --- a/app/Traits/ApiResponses.php +++ b/app/Traits/ApiResponses.php @@ -10,6 +10,8 @@ trait ApiResponses { /** * Return a success JSON response. + * + * @param array $data */ protected function success(string $message, ?array $data = []): JsonResponse { @@ -18,6 +20,8 @@ trait ApiResponses /** * The base response. + * + * @param array $data */ private function baseResponse(?string $message = '', ?array $data = [], ?int $code = 200): JsonResponse { diff --git a/app/Traits/HasCoverPhoto.php b/app/Traits/HasCoverPhoto.php index 2322166..c290c76 100644 --- a/app/Traits/HasCoverPhoto.php +++ b/app/Traits/HasCoverPhoto.php @@ -54,8 +54,10 @@ trait HasCoverPhoto /** * Get the cover photo URL for the user. + * + * @return Attribute */ - public function coverPhotoUrl(): Attribute + protected function coverPhotoUrl(): Attribute { return new Attribute( get: fn (): string => $this->cover_photo_path diff --git a/app/Traits/V1/FilterMethods.php b/app/Traits/V1/FilterMethods.php index 2a32d17..56ac069 100644 --- a/app/Traits/V1/FilterMethods.php +++ b/app/Traits/V1/FilterMethods.php @@ -5,12 +5,15 @@ declare(strict_types=1); namespace App\Traits\V1; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; trait FilterMethods { /** * Filter using a whereIn clause. + * + * @return Builder */ public function filterWhereIn(string $column, string $value): Builder { @@ -21,6 +24,8 @@ trait FilterMethods /** * Filter using a LIKE clause with a wildcard characters. + * + * @return Builder */ public function filterByWildcardLike(string $column, string $value): Builder { @@ -31,6 +36,8 @@ trait FilterMethods /** * Filter by date range or specific date. + * + * @return Builder */ public function filterByDate(string $column, string $value): Builder { @@ -45,6 +52,8 @@ trait FilterMethods /** * Filter by boolean value. + * + * @return Builder */ public function filterByBoolean(string $column, string $value): Builder { @@ -58,6 +67,8 @@ trait FilterMethods /** * Apply the sort type to the query. + * + * @return Builder */ protected function sort(string $values): Builder { diff --git a/app/View/Components/HomepageMods.php b/app/View/Components/HomepageMods.php index a2888bd..c5f083f 100644 --- a/app/View/Components/HomepageMods.php +++ b/app/View/Components/HomepageMods.php @@ -35,6 +35,8 @@ class HomepageMods extends Component /** * Fetches the featured mods homepage listing. + * + * @return Collection */ private function fetchFeaturedMods(): Collection { @@ -52,6 +54,8 @@ class HomepageMods extends Component /** * Fetches the latest mods homepage listing. + * + * @return Collection */ private function fetchLatestMods(): Collection { @@ -68,6 +72,8 @@ class HomepageMods extends Component /** * Fetches the recently updated mods homepage listing. + * + * @return Collection */ private function fetchUpdatedMods(): Collection { diff --git a/database/factories/OAuthConnectionFactory.php b/database/factories/OAuthConnectionFactory.php index a391720..690dcd3 100644 --- a/database/factories/OAuthConnectionFactory.php +++ b/database/factories/OAuthConnectionFactory.php @@ -7,6 +7,9 @@ use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Str; +/** + * @extends Factory + */ class OAuthConnectionFactory extends Factory { protected $model = OAuthConnection::class; diff --git a/phpstan.neon b/phpstan.neon index d6bf0b6..0e1aab9 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -2,7 +2,7 @@ includes: - vendor/larastan/larastan/extension.neon - vendor/nesbot/carbon/extension.neon parameters: - level: 5 + level: 6 paths: - app - bootstrap