Move ingestion + Telegram/Bale/Divar config to DB-backed admin settings
- AppSetting gains source config: AutoIngestEnabled, IngestIntervalMinutes, Telegram/Bale/Divar enabled+channels/token/queries - IListingSource.FetchAsync(AppSetting) — sources read config from DB, not IOptions/appsettings; sample source dev-only - IngestionWorker reads AutoIngest+interval from DB each cycle (toggle at runtime, no redeploy) - /Admin/Settings gets a 'منابع جمعآوری' section; removed Ingestion env/appsettings + compose env vars - ENV_FILE shrinks to HOST_PORT + POSTGRES_* + ADMIN_PHONE (AI + sources are all in-admin); migration Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -65,21 +65,12 @@ POSTGRES_PASSWORD=__CHANGE_ME__
|
||||
|
||||
# Platform admin phone (gets the Admin role on login)
|
||||
ADMIN_PHONE=09XXXXXXXXX
|
||||
|
||||
# --- Channel scraping (optional; off by default) — toggles ---
|
||||
# INGESTION_ENABLED=true
|
||||
# INGESTION_INTERVAL_MINUTES=30
|
||||
# TELEGRAM_ENABLED=true
|
||||
# TELEGRAM_BOT_TOKEN=__TELEGRAM_BOT_TOKEN__
|
||||
# BALE_ENABLED=true
|
||||
# BALE_BOT_TOKEN=__BALE_BOT_TOKEN__
|
||||
# DIVAR_ENABLED=true
|
||||
```
|
||||
> Channel **lists** (`Telegram.Channels`, `Divar.Queries`) live in `appsettings.json` (or add
|
||||
> `Ingestion__Telegram__Channels__0=...` keys). The toggles above gate each source on/off.
|
||||
> The **AI audit layer** is configured at runtime in the admin panel (`/Admin/Settings`) — endpoint,
|
||||
> model, API key, prompt/framework, auto-approve — not via env. Default: AI off, mode = Manual,
|
||||
> so every ingested listing waits in the review queue until an admin publishes it.
|
||||
> **That's the whole secret.** Everything else — the **AI audit layer** *and* the **channel
|
||||
> sources** (Telegram channels, Bale bot token, Divar queries, auto-ingest on/off + interval) — is
|
||||
> configured at runtime in the admin panel (`/Admin/Settings`), stored in the DB. No redeploy to
|
||||
> change them. Defaults: AI off, mode = Manual, all sources off ⇒ nothing publishes without admin
|
||||
> review.
|
||||
> `ASPNETCORE_ENVIRONMENT=Production` is set by the compose file ⇒ only **reference data**
|
||||
> (roles/cities/districts) is seeded — no demo facilities/shifts.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user