- Introduced `EmployeesModule` to manage employee data, including read and write controllers. - Created database migrations for the `employees` table, including constraints and unique indexes. - Implemented validation for employee fields such as name, code, and position with corresponding utility functions. - Developed service and repository layers for handling employee data operations. - Added unit tests for the employees service, repository, and controllers to ensure functionality and correctness. - Updated application module to include the new `EmployeesModule` for better organization.
20 lines
1004 B
SQL
20 lines
1004 B
SQL
CREATE TABLE "employees" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"code" varchar(16) NOT NULL,
|
|
"name" varchar(64) NOT NULL,
|
|
"phone" text NOT NULL,
|
|
"position" text NOT NULL,
|
|
"status" text DEFAULT 'draft' NOT NULL,
|
|
"created_at" bigint NOT NULL,
|
|
"updated_at" bigint NOT NULL,
|
|
"created_by" uuid NOT NULL,
|
|
"updated_by" uuid NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "employees" ADD CONSTRAINT "employees_created_by_users_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "employees" ADD CONSTRAINT "employees_updated_by_users_id_fk" FOREIGN KEY ("updated_by") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
CREATE UNIQUE INDEX "employees_code_unique" ON "employees" USING btree ("code");
|
|
--> statement-breakpoint
|
|
INSERT INTO "privilege_keys" ("code", "label", "sort_order") VALUES
|
|
('CONFIGURATION.EMPLOYEE', 'Employees', 6);
|