CREATE TYPE "OrganizationKind" AS ENUM ('PERSONAL', 'COMPANY');
CREATE TYPE "OrganizationRole" AS ENUM ('REVIEWER', 'COMITTER', 'ADMIN', 'OWNER');
ALTER TABLE "Organization" ADD COLUMN "kind" "OrganizationKind" NOT NULL DEFAULT E'PERSONAL';
CREATE TABLE "OrganizationMembership" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"expiresAt" TIMESTAMP(3),
"revokedAt" TIMESTAMP(3),
"organizationId" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"role" "OrganizationRole" NOT NULL DEFAULT E'REVIEWER',
CONSTRAINT "OrganizationMembership_pkey" PRIMARY KEY ("id")
);
ALTER TABLE "OrganizationMembership" ADD CONSTRAINT "OrganizationMembership_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE "OrganizationMembership" ADD CONSTRAINT "OrganizationMembership_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;