Settings gains a Tweak Requests screen: name the app or tweak you're after, point at the public Telegram channel or GitHub repository that publishes it, and send. The screen lists what you've asked for and what came of it. Operators work the queue from the dashboard and from the console app. Approving can create the scraper source in the same step, and either answer can carry a reason, which is shown to whoever asked. A decision arrives as a local notification, riding the background check that was already running rather than a task of its own. There is no account behind this. The app mints an anonymous per-install id, sends it as a header, and the server answers only about that install; the app-facing serializer withholds every operator field. Submissions are capped per install and deduplicated against sources already followed.
24 lines
926 B
SQL
24 lines
926 B
SQL
-- User-submitted "please track this source" requests, decided by an operator.
|
|
CREATE TABLE "tweak_requests" (
|
|
"id" SERIAL NOT NULL,
|
|
"install_id" TEXT NOT NULL,
|
|
"tweak_name" TEXT NOT NULL,
|
|
"source_type" TEXT NOT NULL,
|
|
"source_id" TEXT NOT NULL,
|
|
"raw_input" TEXT NOT NULL,
|
|
"note" TEXT,
|
|
"status" TEXT NOT NULL DEFAULT 'pending',
|
|
"decision_reason" TEXT,
|
|
"decided_at" TIMESTAMP(3),
|
|
"decided_by_user_id" INTEGER,
|
|
"client_version" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "tweak_requests_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE INDEX "tweak_requests_status_created_at_idx" ON "tweak_requests"("status", "created_at");
|
|
CREATE INDEX "tweak_requests_install_id_created_at_idx" ON "tweak_requests"("install_id", "created_at");
|
|
CREATE INDEX "tweak_requests_source_id_idx" ON "tweak_requests"("source_id");
|