feat(migrate): add migration for time entries, activity, and related tables
This commit is contained in:
+292
@@ -0,0 +1,292 @@
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Opportunity" DROP CONSTRAINT "Opportunity_typeId_fkey";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Activity" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"uid" TEXT NOT NULL,
|
||||
"subject" TEXT NOT NULL,
|
||||
"startTime" TIMESTAMP(3) NOT NULL,
|
||||
"endTime" TIMESTAMP(3) NOT NULL,
|
||||
"assignToId" TEXT NOT NULL,
|
||||
"assignedById" TEXT NOT NULL,
|
||||
"enteredBy" TEXT NOT NULL,
|
||||
"automated" BOOLEAN NOT NULL DEFAULT false,
|
||||
"closedFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"notifyCompleteFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"notificationSentFlat" BOOLEAN NOT NULL DEFAULT false,
|
||||
"opportunityId" TEXT,
|
||||
"serviceTicketId" TEXT,
|
||||
"contactId" INTEGER,
|
||||
"companyId" INTEGER,
|
||||
"activityTypeId" INTEGER,
|
||||
"activityStatusId" INTEGER,
|
||||
"createdById" TEXT,
|
||||
"updatedById" TEXT,
|
||||
"closedById" TEXT,
|
||||
"closedAt" TIMESTAMP(3),
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Activity_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ActivityNotes" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"uid" TEXT NOT NULL,
|
||||
"notes" TEXT NOT NULL DEFAULT '',
|
||||
"activityId" INTEGER,
|
||||
"internalAnalysisFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"enteredById" TEXT,
|
||||
"updatedById" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "ActivityNotes_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ActivityType" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"uid" TEXT NOT NULL,
|
||||
"name" VARCHAR(15) NOT NULL,
|
||||
"description" TEXT NOT NULL,
|
||||
"inactiveFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"historyFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"defaultFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"importFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"emailFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"memoFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"pointsValue" INTEGER,
|
||||
"updatedById" TEXT,
|
||||
"createdById" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "ActivityType_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ActivityStatus" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"uid" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"description" TEXT,
|
||||
"closedFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"inactiveFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"defaultFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"spawnFollowupFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"updatedById" TEXT,
|
||||
"createdById" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "ActivityStatus_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "TimeEntry" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"uid" TEXT NOT NULL,
|
||||
"memberId" TEXT,
|
||||
"serviceTicketId" INTEGER,
|
||||
"activityId" INTEGER,
|
||||
"projectId" INTEGER,
|
||||
"chargeCodeId" INTEGER,
|
||||
"companyId" INTEGER NOT NULL,
|
||||
"statusId" INTEGER,
|
||||
"locationId" INTEGER,
|
||||
"contactId" INTEGER,
|
||||
"dateStart" TIMESTAMP(3),
|
||||
"timeStart" TIMESTAMP(3),
|
||||
"timeEnd" TIMESTAMP(3),
|
||||
"notes" TEXT,
|
||||
"notesMd" TEXT,
|
||||
"internalNote" TEXT,
|
||||
"billableHours" DOUBLE PRECISION,
|
||||
"actualHours" DOUBLE PRECISION,
|
||||
"invoicedHours" DOUBLE PRECISION,
|
||||
"deductedHours" DOUBLE PRECISION,
|
||||
"hourlyRate" DOUBLE PRECISION,
|
||||
"effectiveRate" DOUBLE PRECISION,
|
||||
"issueFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"mergedFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"invoiceFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"billableFlag" BOOLEAN NOT NULL DEFAULT true,
|
||||
"documentFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"teProblemFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"teResolutionFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"teInternalAnalysisFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"chargeToRecId" INTEGER,
|
||||
"chargeToType" VARCHAR(13),
|
||||
"createdById" TEXT,
|
||||
"updatedById" TEXT,
|
||||
"originalAuthorId" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "TimeEntry_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "TimeEntryStatus" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"uid" TEXT NOT NULL,
|
||||
"statusId" INTEGER NOT NULL,
|
||||
"description" VARCHAR(50),
|
||||
"action" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "TimeEntryStatus_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "TimeEntryChargeCode" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"uid" TEXT NOT NULL,
|
||||
"chargeCodeId" INTEGER NOT NULL,
|
||||
"description" VARCHAR(50),
|
||||
"expenseFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"timeFlag" BOOLEAN NOT NULL DEFAULT true,
|
||||
"billableFlag" BOOLEAN NOT NULL DEFAULT true,
|
||||
"invoiceFlag" BOOLEAN NOT NULL DEFAULT true,
|
||||
"updatedById" TEXT,
|
||||
"createdById" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "TimeEntryChargeCode_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "TimeActivityClass" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"uid" TEXT NOT NULL,
|
||||
"description" VARCHAR(50),
|
||||
"hourlyRate" DOUBLE PRECISION,
|
||||
"inactiveFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"taxExemptFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"createdById" TEXT,
|
||||
"updatedById" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "TimeActivityClass_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "TimeActivityType" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"uid" TEXT NOT NULL,
|
||||
"description" VARCHAR(50),
|
||||
"minHours" DOUBLE PRECISION,
|
||||
"maxHours" DOUBLE PRECISION,
|
||||
"rate" DOUBLE PRECISION DEFAULT 1,
|
||||
"costMultiplier" DOUBLE PRECISION NOT NULL DEFAULT 1,
|
||||
"inactiveFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"invoiceFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"billableFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"utilizationFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"defaultFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"multiplierFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"createdById" TEXT,
|
||||
"updatedById" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "TimeActivityType_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "CwMemberType" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"uid" TEXT NOT NULL,
|
||||
"description" VARCHAR(30),
|
||||
"inactiveFlag" BOOLEAN NOT NULL DEFAULT false,
|
||||
"updatedById" TEXT,
|
||||
"createdById" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "CwMemberType_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Activity_id_key" ON "Activity"("id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "ActivityNotes_id_key" ON "ActivityNotes"("id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "ActivityNotes_activityId_key" ON "ActivityNotes"("activityId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "ActivityType_id_key" ON "ActivityType"("id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "ActivityStatus_id_key" ON "ActivityStatus"("id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TimeEntry_id_key" ON "TimeEntry"("id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TimeEntryStatus_id_key" ON "TimeEntryStatus"("id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TimeEntryStatus_statusId_key" ON "TimeEntryStatus"("statusId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TimeEntryChargeCode_id_key" ON "TimeEntryChargeCode"("id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TimeEntryChargeCode_chargeCodeId_key" ON "TimeEntryChargeCode"("chargeCodeId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TimeActivityClass_id_key" ON "TimeActivityClass"("id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TimeActivityType_id_key" ON "TimeActivityType"("id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "CwMemberType_id_key" ON "CwMemberType"("id");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Opportunity" ADD CONSTRAINT "Opportunity_typeId_fkey" FOREIGN KEY ("typeId") REFERENCES "OpportunityType"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Activity" ADD CONSTRAINT "Activity_contactId_fkey" FOREIGN KEY ("contactId") REFERENCES "Contact"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Activity" ADD CONSTRAINT "Activity_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Activity" ADD CONSTRAINT "Activity_activityTypeId_fkey" FOREIGN KEY ("activityTypeId") REFERENCES "ActivityType"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Activity" ADD CONSTRAINT "Activity_activityStatusId_fkey" FOREIGN KEY ("activityStatusId") REFERENCES "ActivityStatus"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ActivityNotes" ADD CONSTRAINT "ActivityNotes_activityId_fkey" FOREIGN KEY ("activityId") REFERENCES "Activity"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TimeEntry" ADD CONSTRAINT "TimeEntry_contactId_fkey" FOREIGN KEY ("contactId") REFERENCES "Contact"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TimeEntry" ADD CONSTRAINT "TimeEntry_locationId_fkey" FOREIGN KEY ("locationId") REFERENCES "CorporateLocation"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TimeEntry" ADD CONSTRAINT "TimeEntry_statusId_fkey" FOREIGN KEY ("statusId") REFERENCES "TimeEntryStatus"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TimeEntry" ADD CONSTRAINT "TimeEntry_chargeCodeId_fkey" FOREIGN KEY ("chargeCodeId") REFERENCES "TimeEntryChargeCode"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TimeEntry" ADD CONSTRAINT "TimeEntry_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TimeEntry" ADD CONSTRAINT "TimeEntry_serviceTicketId_fkey" FOREIGN KEY ("serviceTicketId") REFERENCES "ServiceTicket"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TimeEntry" ADD CONSTRAINT "TimeEntry_activityId_fkey" FOREIGN KEY ("activityId") REFERENCES "Activity"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user