CREATE TABLE "activity" ( "id" text PRIMARY KEY NOT NULL, "task_id" text NOT NULL, "type" text NOT NULL, "created_at" timestamp DEFAULT now() NOT NULL, "user_email" text NOT NULL, "content" text ); --> statement-breakpoint CREATE TABLE "label" ( "id" text PRIMARY KEY NOT NULL, "name" text NOT NULL, "color" text NOT NULL, "created_at" timestamp DEFAULT now() NOT NULL, "task_id" text NOT NULL ); --> statement-breakpoint CREATE TABLE "notification" ( "id" text PRIMARY KEY NOT NULL, "user_email" text NOT NULL, "title" text NOT NULL, "content" text, "type" text DEFAULT 'info' NOT NULL, "is_read" boolean DEFAULT false, "resource_id" text, "resource_type" text, "created_at" timestamp DEFAULT now() NOT NULL ); --> statement-breakpoint CREATE TABLE "project" ( "id" text PRIMARY KEY NOT NULL, "workspace_id" text NOT NULL, "slug" text NOT NULL, "icon" text DEFAULT 'Layout', "name" text NOT NULL, "description" text, "created_at" timestamp DEFAULT now() NOT NULL, "is_public" boolean DEFAULT false ); --> statement-breakpoint CREATE TABLE "session" ( "id" text PRIMARY KEY NOT NULL, "user_id" text NOT NULL, "expires_at" timestamp NOT NULL ); --> statement-breakpoint CREATE TABLE "task" ( "id" text PRIMARY KEY NOT NULL, "project_id" text NOT NULL, "position" integer DEFAULT 0, "number" integer DEFAULT 1, "assignee_email" text, "title" text NOT NULL, "description" text, "status" text DEFAULT 'to-do' NOT NULL, "priority" text DEFAULT 'low', "due_date" timestamp, "created_at" timestamp DEFAULT now() NOT NULL ); --> statement-breakpoint CREATE TABLE "time_entry" ( "id" text PRIMARY KEY NOT NULL, "task_id" text NOT NULL, "user_email" text, "description" text, "start_time" timestamp NOT NULL, "end_time" timestamp, "duration" integer DEFAULT 0, "created_at" timestamp DEFAULT now() NOT NULL ); --> statement-breakpoint CREATE TABLE "user" ( "id" text PRIMARY KEY NOT NULL, "name" text NOT NULL, "password" text NOT NULL, "email" text NOT NULL, "created_at" timestamp DEFAULT now() NOT NULL, CONSTRAINT "user_email_unique" UNIQUE("email") ); --> statement-breakpoint CREATE TABLE "workspace" ( "id" text PRIMARY KEY NOT NULL, "name" text NOT NULL, "description" text, "owner_email" text NOT NULL, "created_at" timestamp DEFAULT now() NOT NULL ); --> statement-breakpoint CREATE TABLE "workspace_member" ( "id" text PRIMARY KEY NOT NULL, "workspace_id" text, "user_email" text NOT NULL, "role" text DEFAULT 'member' NOT NULL, "joined_at" timestamp DEFAULT now() NOT NULL, "status" text DEFAULT 'pending' NOT NULL ); --> statement-breakpoint ALTER TABLE "activity" ADD CONSTRAINT "activity_task_id_task_id_fk" FOREIGN KEY ("task_id") REFERENCES "public"."task"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "activity" ADD CONSTRAINT "activity_user_email_user_email_fk" FOREIGN KEY ("user_email") REFERENCES "public"."user"("email") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "label" ADD CONSTRAINT "label_task_id_task_id_fk" FOREIGN KEY ("task_id") REFERENCES "public"."task"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "notification" ADD CONSTRAINT "notification_user_email_user_email_fk" FOREIGN KEY ("user_email") REFERENCES "public"."user"("email") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "project" ADD CONSTRAINT "project_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE cascade ON UPDATE cascade;--> 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 cascade;--> statement-breakpoint ALTER TABLE "task" ADD CONSTRAINT "task_project_id_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."project"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "task" ADD CONSTRAINT "task_assignee_email_user_email_fk" FOREIGN KEY ("assignee_email") REFERENCES "public"."user"("email") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "time_entry" ADD CONSTRAINT "time_entry_task_id_task_id_fk" FOREIGN KEY ("task_id") REFERENCES "public"."task"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "time_entry" ADD CONSTRAINT "time_entry_user_email_user_email_fk" FOREIGN KEY ("user_email") REFERENCES "public"."user"("email") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "workspace" ADD CONSTRAINT "workspace_owner_email_user_email_fk" FOREIGN KEY ("owner_email") REFERENCES "public"."user"("email") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "workspace_member" ADD CONSTRAINT "workspace_member_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE cascade ON UPDATE cascade;