import express from "express"; const vaRoutes = express.Router(); import { va_username_callback } from "../../controllers/va/vaUsername.controller.js"; import { va_register } from "../../controllers/va/vaProfile/vaRegister.controller.js"; import { va_profile_callback } from "../../controllers/va/vaProfile/vaProfile.controller.js"; import { va_profile_update_callback } from "../../controllers/va/vaProfile/vaProfileUpdate.controller.js"; import { va_login_callback } from "../../controllers/va/vaAuth/vaLogin.controller.js"; import { va_refresh_token_callback } from "../../controllers/va/vaAuth/vaRefreshToken.controller.js"; import { va_logout_callback } from "../../controllers/va/vaAuth/vaLogout.controller.js"; import { va_filter_search } from "../../controllers/va/vaFilterSearch.controller.js"; import { va_log_callback } from "../../controllers/va/vaLog/vaLog.controller.js"; import { va_callback } from "../../controllers/va/vaLog/vaListLog.controller.js"; import { va_project_log_callback } from "../../controllers/va/vaProjects/vaProjectLog.controller.js"; import { authValidator } from "../../middlewares/auth.middleware.js"; import { va_log_track_work_callback } from "../../controllers/va/vaLog/vaLogTrackWork.controller.js"; import { va_log_work_report_callback } from "../../controllers/va/vaLog/vaLogWorkReport.js"; import { va_projects_report_function } from "../../controllers/va/vaProjects/vaProjectReport.controller.js"; import { va_projects_log_list_function } from "../../controllers/va/vaProjects/vaProjectLogList.controller.js"; import { va_request_password_reset } from "../../controllers/passwordReset.controllers.js"; import { va_timesheet_summary_function } from "../../controllers/va/vaTimesheetAdjustment/vaTimesheetAdjustmentSummary.controller.js"; import { va_timesheet_adjustment_function } from "../../controllers/va/vaTimesheetAdjustment/vaTimesheetAdjustment.controller.js"; import { get_adjustment_requests_list } from "../../controllers/va/vaTimesheetAdjustment/vaAllTimesheetAdjustmentReuqest.controller.js" import { va_timesheet_manage_adjustment_request } from "../../controllers/va/vaTimesheetAdjustment/vaManageTimesheetAdjustment.controller.js" import { va_verify_email } from "../../controllers/va/vaAuth/vaVerifyEmail.controller.js"; import { va_leave_apply_function } from "../../controllers/va/vaLeaves/vaLeavesApply.controller.js"; import { va_leave_list_function } from "../../controllers/va/vaLeaves/vaLeaveList.controller.js" import { va_leave_manage_function } from "../../controllers/va/vaLeaves/vaLeaveManage.controller.js"; import { va_remove_function } from "../../controllers/va/vaProfile/vaDelete.controller.js"; vaRoutes.get("/", va_callback); // VA Callback for getting active VA vaRoutes.post("/login", va_login_callback); // VA Callback for login VA vaRoutes.get("/logout", authValidator, va_logout_callback); // VA Callback for login VA vaRoutes.post("/refreshToken", va_refresh_token_callback); // VA Callback for refresh token vaRoutes.post("/register", va_register); // Register a new VA vaRoutes.post("/forgot-password", va_request_password_reset); vaRoutes.post("/verify-va-email", va_verify_email); vaRoutes.get("/profile", authValidator, va_profile_callback); // Get VA Profile vaRoutes.patch("/profile", authValidator, va_profile_update_callback); // Update VA Profile vaRoutes.get("/:userName", va_username_callback); // VA Username Callback vaRoutes.delete("/:id", va_remove_function); // VA Username Callback // timesheet adjustment routes vaRoutes.get("/timesheet/summary/:projectId/:date/:vaId?", authValidator, va_timesheet_summary_function); // Get Timesheet Adjustment for VA on specific project and date vaRoutes.post("/timesheet/adjustment/request", authValidator, va_timesheet_adjustment_function); // Timesheet Adjustment for VA // vaRoutes.get("/timesheet/adjustments/list/:status?/:projectId?/:vaId?", get_adjustment_requests_list); // show all adjustment list to approve and reject vaRoutes.patch("/timesheet/adjustments/:adjustmentId", va_timesheet_manage_adjustment_request); // Leaves routes vaRoutes.get("/leaves/all", authValidator, va_leave_list_function); // Get all leaves vaRoutes.get("/leaves/status/:status", authValidator, va_leave_list_function); // Leaves Filter by status vaRoutes.get("/leaves/type/:leaveType", authValidator, va_leave_list_function); // Filter by leave type vaRoutes.get("/leaves/status/:status/type/:leaveType", authValidator, va_leave_list_function); // leaves Filter vaRoutes.post("/leave/request", authValidator, va_leave_apply_function); // Timesheet Adjustment for VA vaRoutes.patch("/leave/:leaveId", va_leave_manage_function); // timesheet adjustment routes // Example: GET /va/search?name=john&email=@example.com&from=2025-01-01&to=2025-01-31 (NC) vaRoutes.get("/search", va_filter_search); // GET Windows Tab Logged Data for VA IN Between Login and LOGOUT vaRoutes.get("/report/project/:projectId/:from?/:to?/:vaId?", authValidator, va_projects_report_function); // Getting Project List assigned to VA should be ACTIVE and add total logged hours added by VA vaRoutes.get("/list/projects/:projectId?/:from?/:to?", authValidator, va_projects_log_list_function); vaRoutes.post("/log/project", authValidator, va_project_log_callback); // VA Logged IN / Logged Out in project vaRoutes.post("/log/project/track", authValidator, va_log_track_work_callback); // Track Window Tabs Logs Data vaRoutes.patch("/log/project/track", authValidator, va_log_track_work_callback); // Update Track Window Tab Closing Time vaRoutes.get("/log/workReport/", authValidator, va_log_work_report_callback); // VA Audit Report // All Projects vaRoutes.get("/log/project/:projectId/:from?/:to?", authValidator, va_log_callback); // VA / Project Audit Report // VA filter search: supports query params `name`, `email`, `from`, `to` export default vaRoutes;