35 Commits

Author SHA1 Message Date
45a211b66d
Listing Query & Relationship Clean-up
Rebuilt the filtering queries and many of the mod-to-modVersion-to-sptVersion relationships.

Resolves #38
2024-09-15 23:05:38 -04:00
58e8adb730
Adds TODO for query. 2024-09-13 00:17:13 -04:00
d9b7d6fcc8
Resolves Remaining Larastan Issues 2024-09-12 13:19:52 -04:00
bbb8fab1a1
Resolves Some Larastan Issues 2024-09-11 23:08:58 -04:00
16e3a67efd
Query Optimization
- Download counts were taking too long to calculate dynamically, so we're keeping track of a total count with observers and queued job.
- Optimized the SQL used to order a mod listing by mod version update times.
2024-08-31 01:19:22 -04:00
09771d233a
Mod Filter Page - SPT Versions
Updated the mod filter page to only show SPT versions that have been tagged by mod versions.
2024-08-30 23:13:46 -04:00
1783a683ed
Semvar & Automatic Resolution - Remix
- Updated the SptVersion and ModVersion dependancies to resolve *all* compatible versions and introduced new relationships to pull just the latest compatible version. Had to rewrite a *bunch*, but it should be much more capable now. It can be expensive to resolve these properties when iterated over, so *make sure they're eager loaded using the `with` method when you're building the queries*.
- Updated the mod listing Livewire component to save the filter options within the PHP session instead of in browser local storage. *Much* cleaner.
- Removed caching from homepage queries to see how they preform on production. Will add back later.
- Updated ModVersion factory to create SptVersions if there are none specified.
- Probably lots of other changes too... I need to make smaller commits. :(
2024-08-29 15:46:10 -04:00
db578071e4
SPT Semvar & Automatic Resolution
This update gives mod versions a supported SPT version field that accepts a semantic version. The latest supported SPT version will be automatically resolved based on the semvar.

Next up: I need to update the ModVersion to SptVersion relationship to be a many-to-many and expand the resolution to resolve multiple versions.
2024-08-22 17:04:07 -04:00
7fe1fad01b
Mod Listing Page Changes
- Updated visual look of the listing to include all filters at the top of the page
- Updated SPT version filter to be able to filter more than one version at a time (defaults to current minor version)
- Moved location of Livewire components into subfolder
- Moved query building methods for the listing into a `ModFilter` class
- Adds a `isLatestMinor` method on the SptVersion model that checks if the current version number is of the latest minor version release
- Livewire filter properties are now saved to the URL when changed
- Updated the top navigation link to include a "Mods" menu item.

TODO:
- Search codebase for "TODO". I've left notes. :|
2024-08-15 17:57:35 -04:00
651979ccea Merge remote-tracking branch 'upstream/develop' into impl/mod-listing-page 2024-08-10 14:15:11 -04:00
593b44150c
Resolves Mod Detail Page Version Issue
The latest version on the mod detail page was being selected by created date instead of highest version number. This has been resolved. Also adds a test for this issue.
2024-08-09 12:35:46 -04:00
c1e73dc73b Merge remote-tracking branch 'upstream/develop' into impl/mod-listing-page 2024-08-09 11:31:00 -04:00
7acdee1b6c switch to using livewire 2024-08-09 10:15:05 -04:00
23a9cabf99
Implements API Sorting
You can now sort mod and user data by whitelisted attributes.
2024-08-08 18:18:05 -04:00
3a334033fe
API Updates
Brings the API in close sync to the rest of the site.
- Adds resources for License, UserRole, and ModVersion models
- Adds filtering on attribute data
- The `includes` data is now disabled by default and available conditionally
2024-08-08 16:11:50 -04:00
0ed25fec03
User API Updates
Adds user profile links to the user API resource.
Fixes structure of relationship data and link sections.
Adds parameter to include related user data when requesting mod data.
2024-08-07 23:30:09 -04:00
b868b5a75c setup mod index pagination 2024-08-07 14:33:11 -04:00
115f81fe96
Basic structure to load user profile view 2024-08-03 17:34:41 -04:00
5d6dcd4a2c setup mod index page 2024-08-02 12:23:05 -04:00
c6f252ace7
Mod Version Dependency Updates
- Handles circular mod version dependencies
- Optimizes mod show query to only pull the versions relationship
- Adds a mod dependency factory
- Refactored tests to use mod dependency factory
- Adds mod dependency generation into the default seeder
- Adds unique index on mod dependencies table
- Adds mod dependencies on the mod show view
2024-08-01 17:15:02 -04:00
7ee542856d add published_at 2024-07-26 09:34:57 -04:00
fea14652c9
Merge branch 'mod-page-tabs' into develop
# Conflicts:
#	app/Http/Controllers/ModController.php
#	resources/views/mod/show.blade.php

Resolved by Refringe
2024-07-23 23:26:15 -04:00
refringe
705afc95a8 Pint PHP Style Fixes [no ci] 2024-07-24 02:01:19 +00:00
8eae71b22a
Simplifies Latest Version Relationship
This change removes the `latestSptVersion()` relationship, which fetched the latest mod version for the latest SPT version, with a more simple `latestVersion()` relationship that simply fetches the latest mod version based on the mod version, version number field.

This is less complicated and much less confusing.
2024-07-23 21:21:55 -04:00
fce5bd4b04 move modversion ordering
to model
2024-07-23 09:27:15 -04:00
b429300b7b update version tab info 2024-07-22 10:16:53 -04:00
49fd8b83df
Search SPT Version & Homepage Queries
The global search results now include the SPT version number the latest version of the mod is compatible with. Additionally, mod thumbnails and the SPT version numbers

Homepage queries have been further optimized and are now cached for 5 minutes.
2024-07-15 23:17:53 -04:00
c1a58e29dd
Multiple Mod Authors
The mod-to-user relationship has been modified to be a many-to-many relationship. Mods can now have multiple authors, and an author can have multiple mods.
2024-07-04 22:10:48 -04:00
f734adca22
Resolves PHPStan Error 2024-06-27 23:18:53 -04:00
0e3783555e
Basic API
Includes routes for login, logout, listing users, listing mods, listing a user, and listing a mod. Very basic, just laying out the structure.

https://www.postman.com/refringe/workspace/spt-forge
2024-06-27 16:58:11 -04:00
c59615d7ac
Updates, Lots of Updates
No one reads these anyways. I updated a lot. There. Happy?
2024-05-31 17:44:52 -04:00
45b9ebc096
Fixes Dark Mode Script - Work on Detail Page 2024-05-30 22:46:53 -04:00
4cb739f50c
More Updates
- Updates dependancies
- Added time to mod component
- Implement naturalSort function into homepage queries

Short todo:
- Migrate top navigation from old-build
- Mod detail page
2024-05-28 17:19:36 -04:00
36a633aabb
First Pass on Mod Structures 2024-05-15 00:31:24 -04:00
6f279f83e0
Hello World 2024-05-13 18:55:34 -04:00