Do not forget to add routes in routes/index.ts file.
Create routes, controllers, services, constants, validation, utils for the management department module given below.
router.post(
'/create-management',
validateRequest(ManagementDepartmentValidation.createManagementDepartmentZodSchema),
ManagementDepartmentController.createManagementDepartment
);
router.get('/', ManagementDepartmentController.getAllManagementDepartments);
router.get('/:id', ManagementDepartmentController.getSinglelManagementDepartment);
router.patch(
'/:id',
validateRequest(ManagementDepartmentValidation.updateManagementDepartmentZodSchema),
ManagementDepartmentController.updateManagementDepartment
);router.post(
'/create-admin',
validateRequest(AdminValidatio.createAdminZodSchema),
AdminController.createAdmint)
);- Generate a utility function to create admin incremental id. Pattern
A-00001
router.get('/',AdminController.getAllAdmins);
router.get('/:id', AdminController.getSingleAdmin);
router.patch(('/:id',
validateRequest(AdminValidation.updateAdminZodSchema),
AdminController.updateAdmin
);- _id
- title
- createdAt
- updatedAt
{
"_id": "6473c6a50c56d0d40b9bb6a3",
"title": "Account Management",
"createdAt": "2023-05-28T21:24:53.677Z",
"updatedAt": "2023-05-28T21:24:53.677Z"
}- _id: ObjectID
- id: string;
- name:
- firstName
- middleName (optional)
- lastName
- dateOfBirth
- contactNo
- emergencyContactNo
- gender
- permanentAddress
- presentAddress
- bloodGroup (optional)
- managementDepartment
- designation
- profileImage (optional)
- createdAt
- updatedAt
{
"id": "A-00002",
"name": {
"firstName": "kader",
"lastName": "khan",
"middleName": "ahmed"
},
"dateOfBirth": "1990-02-07",
"gender": "male",
"bloodGroup": "AB+",
"email": "kader@gmail.com",
"contactNo": "01800000006",
"emergencyContactNo": "01800000006",
"presentAddress": "asf",
"permanentAddress": "asdf",
"managementDepartment": "6473c6a50c56d0d40b9bb6a3",
"designation": "HR executive",
"profileImage": "https://via.placeholder.com/150x150",
"createdAt": "2023-05-31T14:42:22.747Z",
"updatedAt": "2023-06-01T08:54:57.058Z"
}{
"id": "A-00002",
"name": {
"firstName": "kader",
"lastName": "khan",
"middleName": "ahmed"
},
"dateOfBirth": "1990-02-07",
"gender": "male",
"bloodGroup": "AB+",
"email": "kader@gmail.com",
"contactNo": "01800000006",
"emergencyContactNo": "01800000006",
"presentAddress": "asf",
"permanentAddress": "asdf",
"managementDepartment": {
"_id": "6473c6a50c56d0d40b9bb6a3",
"title": "Account Management",
"createdAt": "2023-05-28T21:24:53.677Z",
"updatedAt": "2023-05-28T21:24:53.677Z"
},
"designation": "HR executive",
"profileImage": "https://via.placeholder.com/150x150",
"createdAt": "2023-05-31T14:42:22.747Z",
"updatedAt": "2023-06-01T08:54:57.058Z"
}