7f5c2824

Author: Michael Lynch <git@mtlynch.io>

Committer: Michael Lynch <mtlynch@noreply.codeberg.org>

Replace memory store with SQLite, write imports directly to DB (#70)

- New SQLite schema (users, entries, comments, reactions tables)
  replacing the dummy visits table; rename date column to entry_date
  to avoid the reserved keyword
- sqlite.Store now implements handlers.Store via new read methods
  (ReadMediaEntries, ReadComments, ReadReactions)
- New write methods: InsertUser, InsertEntry, InsertComment, InsertReaction
- tinybeans.Convert now writes directly to SQLite, resolving the user ID
  mapping TODOs by inserting followers and using returned row IDs
- Import command writes metadata.db instead of metadata.json
- App server reads from SQLite directly, removing the JSON intermediary
  and the in-memory store; --metadata flag replaced with --db
- Deleted store/memory, tinybeans/jsonfile, and store/sqlite/visits.go

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Reviewed-on: https://codeberg.org/mtlynch/little-moments/pulls/70
Co-authored-by: Michael Lynch <git@mtlynch.io>
Co-committed-by: Michael Lynch <git@mtlynch.io>
configuredevShellbackendbackend-devcheck-bashcheck-frontendcheck-go-formattingcheck-go-test-packagescheck-trailing-newlinecheck-trailing-whitespacediagramdocker-imagee2e-testsgo-testsimport-from-tinybeanslint-sqllittle-momentslittle-moments-devx86_64-linux