Commit Graph

18 Commits

Author SHA1 Message Date
Georges-Antoine Assi
3f7953b020 update responses 2026-03-15 09:48:31 -04:00
Georges-Antoine Assi
55ca39cacb fix deprecations in pydantic 2026-03-15 09:34:48 -04:00
nendo
e3642523f9 refactor(saves): simplify SaveSchema construction with model_validate
Add model_validator to SaveSchema that safely handles SQLAlchemy lazy
relationships by checking inspect(obj).unloaded before attribute access.
This allows direct use of model_validate(orm_obj) instead of manually
building a dict and excluding device_syncs.
2026-02-03 21:05:03 +09:00
nendo
a236123e4f feat(saves): add slot-based save sync with content hash deduplication
- Add device registration and save synchronization
- Implement slot-based save organization with datetime tagging
- Add conflict detection for multi-device sync scenarios
- Add content hash computation for save deduplication
- Support ZIP inner-file hashing for consistent deduplication
- Add confirm_download endpoint for sync state management
- Add overwrite parameter to bypass conflict checks
2026-01-31 21:57:22 +09:00
nendo
36eec298d1 Add device-based save synchronization
Implement device registration and save sync tracking to enable
multi-device save management with conflict detection.

- Device CRUD endpoints (POST/GET/PUT/DELETE /api/devices)
- Save sync state tracking per device
- Conflict detection on upload (409 when device has stale sync)
- Download sync tracking (optimistic and confirmed modes)
- Track/untrack saves per device
- DEVICES_READ/WRITE scopes for authorization
2026-01-18 16:50:44 +09:00
zurdi
8370b79a83 feat: add 'missing_from_fs' property to various schemas and update related logic for better tracking of missing files 2025-06-12 22:18:06 +00:00
zurdi
cb01b82846 feat: add 'missing' property to asset and firmware schemas for tracking missing entries 2025-06-12 12:24:30 +00:00
Georges-Antoine Assi
c6d6a8100a wip refactor of save and state behaviour 2025-03-26 17:24:09 -04:00
Georges-Antoine Assi
ebc91b0502 fix bad git push 2025-01-09 21:10:20 -05:00
Michael Manganiello
0fdbbe4625 misc: Upgrade Python to v3.12 and Alpine to v3.20
Included upgrades:
* Python: v3.12
* Alpine: v3.20 (which uses Python 3.12)
* nginx: v1.27.1
2024-08-15 20:14:32 -03:00
Michael Manganiello
33ac3ca56d misc: Apply changes generated by pyupgrade
Changes automatically made by
[`pyupgrade`](https://github.com/asottile/pyupgrade), using the
`--py311-plus` flag, to be compatible with Python 3.11.
2024-06-23 18:17:08 -03:00
Georges-Antoine Assi
2d21cd2b50 Improve speeds of rom fetch from DB 2024-05-25 19:47:36 -04:00
Georges-Antoine Assi
feb175f02e General fixes for filtering assets per user 2024-02-07 20:31:03 -05:00
Georges-Antoine Assi
f7da369bcf correct saving screenshots for states 2024-01-20 22:07:02 -05:00
Georges-Antoine Assi
0ca6d74c26 Add file_name_no_ext column 2024-01-20 15:09:11 -05:00
Georges-Antoine Assi
9fba1d1a64 get save workgin on load 2024-01-19 18:09:51 -05:00
Zurdi
4b9e76f550 backend structure refactor 2024-01-12 23:44:27 +01:00
Zurdi
33b6364c8a endpoints and responses restructured 2024-01-11 23:57:06 +01:00