52 lines
2.8 KiB
SQL
52 lines
2.8 KiB
SQL
ALTER TABLE "employees" ADD COLUMN "prefix" text;--> statement-breakpoint
|
|
ALTER TABLE "employees" ADD COLUMN "first_name_th" text;--> statement-breakpoint
|
|
ALTER TABLE "employees" ADD COLUMN "last_name_th" text;--> statement-breakpoint
|
|
ALTER TABLE "employees" ADD COLUMN "first_name_en" text;--> statement-breakpoint
|
|
ALTER TABLE "employees" ADD COLUMN "last_name_en" text;--> statement-breakpoint
|
|
ALTER TABLE "employees" ADD COLUMN "display_name" text;--> statement-breakpoint
|
|
ALTER TABLE "employees" ADD COLUMN "phone" text;--> statement-breakpoint
|
|
ALTER TABLE "employees" ADD COLUMN "company_name" text;--> statement-breakpoint
|
|
ALTER TABLE "employees" ADD COLUMN "status" text DEFAULT 'active' NOT NULL;--> statement-breakpoint
|
|
ALTER TABLE "users" ADD COLUMN "provider" text DEFAULT 'credentials' NOT NULL;--> statement-breakpoint
|
|
ALTER TABLE "users" ADD COLUMN "provider_user_id" text;--> statement-breakpoint
|
|
ALTER TABLE "users" ADD COLUMN "employee_id" integer;--> statement-breakpoint
|
|
ALTER TABLE "users" ADD COLUMN "last_login_at" timestamp with time zone;--> statement-breakpoint
|
|
ALTER TABLE "employee_training_targets" ADD COLUMN "employee_id" integer;--> statement-breakpoint
|
|
ALTER TABLE "employee_training_targets" ADD CONSTRAINT "employee_training_targets_employee_id_employees_id_fk" FOREIGN KEY ("employee_id") REFERENCES "public"."employees"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "users" ADD CONSTRAINT "users_employee_id_employees_id_fk" FOREIGN KEY ("employee_id") REFERENCES "public"."employees"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
|
CREATE UNIQUE INDEX "users_provider_user_id_idx" ON "users" USING btree ("provider","provider_user_id");--> statement-breakpoint
|
|
|
|
UPDATE "employees"
|
|
SET
|
|
"display_name" = COALESCE("display_name", "full_name"),
|
|
"company_name" = COALESCE("company_name", "company"),
|
|
"status" = CASE WHEN "is_active" = true THEN 'active' ELSE 'inactive' END;--> statement-breakpoint
|
|
|
|
UPDATE "users"
|
|
SET "provider" = COALESCE("provider", 'credentials')
|
|
WHERE "provider" IS NULL;--> statement-breakpoint
|
|
|
|
UPDATE "users" u
|
|
SET "employee_id" = e."id"
|
|
FROM "memberships" m
|
|
INNER JOIN "employees" e
|
|
ON e."organization_id" = m."organization_id"
|
|
AND e."employee_code" = u."employee_code"
|
|
WHERE m."user_id" = u."id"
|
|
AND u."employee_code" IS NOT NULL
|
|
AND (u."employee_id" IS NULL OR u."employee_id" <> e."id");--> statement-breakpoint
|
|
|
|
UPDATE "training_records" tr
|
|
SET "employee_id" = u."employee_id"
|
|
FROM "users" u
|
|
WHERE tr."user_id" = u."id"
|
|
AND tr."employee_id" IS NULL
|
|
AND u."employee_id" IS NOT NULL;--> statement-breakpoint
|
|
|
|
UPDATE "employee_training_targets" ett
|
|
SET "employee_id" = u."employee_id"
|
|
FROM "users" u
|
|
WHERE ett."user_id" = u."id"
|
|
AND ett."employee_id" IS NULL
|
|
AND u."employee_id" IS NOT NULL;
|