Add API documentation for TrackGo HTTP API and enhance employee management features

- Created a new `api.md` file detailing the TrackGo HTTP API, including authentication, user management, and employee operations.
- Updated `Employee` type to simplify user relation handling by replacing `UserRelation` with a more concise structure.
- Enhanced filtering capabilities in employee queries to support an array of positions.
- Refactored employee-related services and repositories to accommodate the new position filtering logic.
- Added unit and e2e tests to validate the new API documentation and employee management functionalities.
This commit is contained in:
shancheas
2026-08-27 15:07:20 +07:00
parent 4c45a4371e
commit 627aeac4a0
13 changed files with 270 additions and 47 deletions
@@ -5,7 +5,7 @@ import {
NotFoundException,
} from '@nestjs/common';
import { and, count, eq, ilike, inArray, or, SQL } from 'drizzle-orm';
import { toOrderClauses } from '../../../common/http/response';
import { toOrderClauses } from '../../../common/http/response/order-clause';
import { attachAuditUsers } from '../../../database/load-user-refs';
import { DateTime } from '../../../common/value-objects/date-time/date-time';
import { PhoneNumber } from '../../../common/value-objects/phone-number/phone-number';
@@ -252,8 +252,8 @@ export class EmployeesRepository {
if (filters.phone) {
parts.push(ilike(employees.phone, `%${filters.phone}%`));
}
if (filters.position) {
parts.push(eq(employees.position, filters.position));
if (filters.position && filters.position.length > 0) {
parts.push(inArray(employees.position, [...filters.position]));
}
if (filters.status) {
parts.push(eq(employees.status, filters.status));