CREATE TYPE "public"."user_role" AS ENUM('learner', 'admin', 'suspended');--> statement-breakpoint CREATE TABLE "account" ( "user_id" uuid NOT NULL, "type" text NOT NULL, "provider" text NOT NULL, "provider_account_id" text NOT NULL, "refresh_token" text, "access_token" text, "expires_at" integer, "token_type" text, "scope" text, "id_token" text, "session_state" text, CONSTRAINT "account_provider_provider_account_id_pk" PRIMARY KEY("provider","provider_account_id") ); --> statement-breakpoint CREATE TABLE "session" ( "session_token" text PRIMARY KEY NOT NULL, "user_id" uuid NOT NULL, "expires" timestamp NOT NULL ); --> statement-breakpoint CREATE TABLE "verification_token" ( "identifier" text NOT NULL, "token" text NOT NULL, "expires" timestamp NOT NULL, CONSTRAINT "verification_token_identifier_token_pk" PRIMARY KEY("identifier","token") ); --> statement-breakpoint ALTER TABLE "user" ADD COLUMN "email" varchar(255);--> statement-breakpoint ALTER TABLE "user" ADD COLUMN "email_verified" timestamp;--> statement-breakpoint ALTER TABLE "user" ADD COLUMN "name" varchar(255);--> statement-breakpoint ALTER TABLE "user" ADD COLUMN "image" text;--> statement-breakpoint ALTER TABLE "user" ADD COLUMN "role" "user_role" DEFAULT 'learner' NOT NULL;--> statement-breakpoint ALTER TABLE "user" ADD COLUMN "password_hash" text;--> statement-breakpoint ALTER TABLE "account" ADD CONSTRAINT "account_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint ALTER TABLE "session" ADD CONSTRAINT "session_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint ALTER TABLE "user" ADD CONSTRAINT "user_email_unique" UNIQUE("email");