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