Device reset: Device.ResetRequested is a one-shot flag claimed atomically with a single UPDATE, so a queued reset is delivered exactly once. GET api/telemetry/AddData answers it with the bare token RST and nothing else; subsequent requests resume the normal routine. Adds POST api/admin/devices/{id}/request-reset (audited) plus an admin panel button, pending badge and confirm dialog.
Postgres migrations: PostgresGreenHomeDbContext owns Data/Migrations/Postgres while the SqlServer set stays untouched. Registers one context per provider with the base type forwarded, replaces EnsureCreated() with Migrate() for both, adds a complete InitialPostgres migration and an incremental AddDeviceResetRequested for SqlServer, and adds design-time factories so dotnet ef does not have to boot the API host.
Timestamps: Postgres DateTime columns are now timestamp with time zone, because Npgsql rejects Kind=Utc values on a naive timestamp column, which broke every write path (auth, settings, posts, checklists, alerts, audit logs). Removes the SpecifyKind(Unspecified) workarounds, fixes a 3:30 offset where already-UTC filters were passed through ToLocalTime(), and makes DataCopy migrate instead of EnsureCreated while passing timestamps through verbatim.
Tests: Test/GreenHome.SelfCheck applies the Postgres migrations and asserts that a queued reset is consumed exactly once and that timestamps round-trip as Utc.
- set server timestamp as UTC with unspecified kind
- use unspecified kind for dto before persian conversion
- avoid timezone and kind issues in persian date conversion
- debounce admin searches to reduce API calls while typing
- apply 300ms debounce to alerts, audit, devices, posts
- allow clearing selected owner in device creation form
🐛 fix(admin): correct admin data and filters
- use invariant culture for CSV numeric report values
- align default report end date with UTC day boundary
- prevent duplicate owner row in device member list
- make user growth date filtering EF translatable
- clear report preset when user picks a custom date range
- send zero-valued admin filter parameters in API client
- add admin endpoints to create devices and update device settings
- expose device members and post detail for admin management
- add post filters by device, author, type, and date range
- add user growth, device uptime, and usage reports with CSV export
- improve admin layout with sticky header, user info, and logout
- add device and author search filters across admin pages
- Add MIME type mapping for .apk files to allow proper download
- Configure static file serving for new "files" directory at /files endpoint
- Enable serving APK and other downloadable files from dedicated folder