CREATE TABLE "modules" ( "module_id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, "name" text NOT NULL, "active" boolean DEFAULT false, "add_User" text DEFAULT 'LST_System' NOT NULL, "add_Date" timestamp DEFAULT now(), "upd_User" text DEFAULT 'LST_System' NOT NULL, "upd_date" timestamp DEFAULT now() ); --> statement-breakpoint CREATE TABLE "roles" ( "role_id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, "name" text NOT NULL, "add_User" text DEFAULT 'LST_System' NOT NULL, "add_Date" timestamp DEFAULT now(), "upd_User" text DEFAULT 'LST_System' NOT NULL, "upd_date" timestamp DEFAULT now() ); --> statement-breakpoint CREATE TABLE "userRoles" ( "user_id" uuid NOT NULL, "role_id" uuid NOT NULL, "module_id" uuid NOT NULL, "roles" text NOT NULL, "add_User" text DEFAULT 'LST_System' NOT NULL, "add_Date" timestamp DEFAULT now(), "upd_User" text DEFAULT 'LST_System' NOT NULL, "upd_date" timestamp DEFAULT now() ); --> statement-breakpoint ALTER TABLE "userRoles" ADD CONSTRAINT "userRoles_user_id_users_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("user_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "userRoles" ADD CONSTRAINT "userRoles_role_id_roles_role_id_fk" FOREIGN KEY ("role_id") REFERENCES "public"."roles"("role_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "userRoles" ADD CONSTRAINT "userRoles_module_id_modules_module_id_fk" FOREIGN KEY ("module_id") REFERENCES "public"."modules"("module_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint CREATE UNIQUE INDEX "module_name" ON "modules" USING btree ("name");--> statement-breakpoint CREATE UNIQUE INDEX "role_name" ON "roles" USING btree ("name");--> statement-breakpoint CREATE UNIQUE INDEX "user_module_unique" ON "userRoles" USING btree ("user_id","module_id");