- Introduced new tables `timeline_footprints` and `timeline_activities` to manage employee location data and activity records. - Updated `company_settings` to include `gps_interval_seconds` and `checkout_warning_radius_meters` for enhanced tracking configuration. - Implemented foreign key constraints to ensure data integrity between new tables and existing `employees`, `customers`, and `visits` tables. - Created services and controllers for handling timeline activities and footprints, including ingestion and retrieval of data. - Enhanced DTOs and validation logic to support new fields and ensure correct data formats in API requests. - Added unit and integration tests to validate the new functionalities and ensure proper handling of timeline records. - Created migration scripts to apply the necessary database schema changes for the new features.
74 lines
2.8 KiB
TypeScript
74 lines
2.8 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { BranchesModule } from '../configuration/branches/branches.module';
|
|
import { CustomersModule } from '../configuration/customers/customers.module';
|
|
import { EmployeesModule } from '../configuration/employees/employees.module';
|
|
import { PrivilegesModule } from '../privileges/privileges.module';
|
|
import { PackingSlipsModule } from '../sales/packing-slips/packing-slips.module';
|
|
import { SalesInvoicesModule } from '../sales/sales-invoices/sales-invoices.module';
|
|
import { AttendancesReadController } from './attendances/attendances-read.controller';
|
|
import { AttendancesWriteController } from './attendances/attendances-write.controller';
|
|
import { AttendancesRepository } from './attendances/attendances.repository';
|
|
import { AttendancesService } from './attendances/attendances.service';
|
|
import { CyclesReadController } from './cycles/cycles-read.controller';
|
|
import { CyclesWriteController } from './cycles/cycles-write.controller';
|
|
import { CyclesRepository } from './cycles/cycles.repository';
|
|
import { CyclesService } from './cycles/cycles.service';
|
|
import { PlansReadController } from './plans/plans-read.controller';
|
|
import { PlansWriteController } from './plans/plans-write.controller';
|
|
import { PlansRepository } from './plans/plans.repository';
|
|
import { PlansService } from './plans/plans.service';
|
|
import { CompanySettingsController } from './settings/company-settings.controller';
|
|
import { CompanySettingsRepository } from './settings/company-settings.repository';
|
|
import { CompanySettingsService } from './settings/company-settings.service';
|
|
import { VisitsReadController } from './visits/visits-read.controller';
|
|
import { VisitsWriteController } from './visits/visits-write.controller';
|
|
import { VisitsRepository } from './visits/visits.repository';
|
|
import { VisitsService } from './visits/visits.service';
|
|
import { FieldPrivilegeGuard } from './shared/field-privilege.guard';
|
|
import { TimelineModule } from './timeline/timeline.module';
|
|
|
|
@Module({
|
|
imports: [
|
|
PrivilegesModule,
|
|
EmployeesModule,
|
|
BranchesModule,
|
|
CustomersModule,
|
|
SalesInvoicesModule,
|
|
PackingSlipsModule,
|
|
TimelineModule,
|
|
],
|
|
controllers: [
|
|
CompanySettingsController,
|
|
AttendancesReadController,
|
|
AttendancesWriteController,
|
|
CyclesReadController,
|
|
CyclesWriteController,
|
|
PlansReadController,
|
|
PlansWriteController,
|
|
VisitsReadController,
|
|
VisitsWriteController,
|
|
],
|
|
providers: [
|
|
FieldPrivilegeGuard,
|
|
CompanySettingsRepository,
|
|
CompanySettingsService,
|
|
AttendancesRepository,
|
|
AttendancesService,
|
|
CyclesRepository,
|
|
CyclesService,
|
|
PlansRepository,
|
|
PlansService,
|
|
VisitsRepository,
|
|
VisitsService,
|
|
],
|
|
exports: [
|
|
CompanySettingsService,
|
|
AttendancesService,
|
|
CyclesService,
|
|
PlansService,
|
|
VisitsService,
|
|
TimelineModule,
|
|
],
|
|
})
|
|
export class FieldModule {}
|