Keyan 8a6b825659
automated social posting (#2022)
* social posting without message selection

* message formatting and scheduled job

* small cleanup
2025-03-25 18:32:30 -05:00

36 lines
1.1 KiB
PL/PgSQL

-- CreateTable
CREATE TABLE "AutoSocialPost" (
"id" SERIAL NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"itemId" INTEGER NOT NULL,
CONSTRAINT "AutoSocialPost_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "AutoSocialPost_itemId_idx" ON "AutoSocialPost"("itemId");
-- CreateIndex
CREATE INDEX "AutoSocialPost_created_at_idx" ON "AutoSocialPost"("created_at");
-- AddForeignKey
ALTER TABLE "AutoSocialPost" ADD CONSTRAINT "AutoSocialPost_itemId_fkey" FOREIGN KEY ("itemId") REFERENCES "Item"("id") ON DELETE CASCADE ON UPDATE CASCADE;
CREATE OR REPLACE FUNCTION schedule_social_poster_job()
RETURNS INTEGER
LANGUAGE plpgsql
AS $$
DECLARE
BEGIN
-- every 60th minute
INSERT INTO pgboss.schedule (name, cron, timezone)
VALUES ('socialPoster', '*/60 * * * *', 'America/Chicago') ON CONFLICT DO NOTHING;
return 0;
EXCEPTION WHEN OTHERS THEN
return 0;
END;
$$;
SELECT schedule_social_poster_job();
DROP FUNCTION IF EXISTS schedule_social_poster_job;