Full-stack Next.js 16 app with three scraping pipelines: - AirScale CSV → Anymailfinder Bulk Decision Maker search - LinkedIn Sales Navigator → Vayne → Anymailfinder email enrichment - Apify Google SERP → domain extraction → Anymailfinder bulk enrichment Includes Docker multi-stage build + docker-compose for Coolify deployment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
41 lines
1.2 KiB
SQL
41 lines
1.2 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "ApiCredential" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"service" TEXT NOT NULL,
|
|
"value" TEXT NOT NULL,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Job" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"type" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'pending',
|
|
"config" TEXT NOT NULL DEFAULT '{}',
|
|
"totalLeads" INTEGER NOT NULL DEFAULT 0,
|
|
"emailsFound" INTEGER NOT NULL DEFAULT 0,
|
|
"error" TEXT,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "LeadResult" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"jobId" TEXT NOT NULL,
|
|
"companyName" TEXT,
|
|
"domain" TEXT,
|
|
"contactName" TEXT,
|
|
"contactTitle" TEXT,
|
|
"email" TEXT,
|
|
"confidence" REAL,
|
|
"linkedinUrl" TEXT,
|
|
"source" TEXT,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT "LeadResult_jobId_fkey" FOREIGN KEY ("jobId") REFERENCES "Job" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "ApiCredential_service_key" ON "ApiCredential"("service");
|