Add field management module with database schema and validation

- Introduced `FieldModule` to manage cycles and plans, including read and write controllers.
- Created database migrations for `company_settings`, `cycles`, `cycle_weekdays`, `cycle_destinations`, `plans`, `plan_destinations`, `plan_invoices`, and `plan_packing_slips` tables, including constraints and unique indexes.
- Developed service and repository layers for handling cycle and plan data operations.
- Added unit tests for the cycles and plans services, repositories, and controllers to ensure functionality and correctness.
- Updated application module to include the new `FieldModule` for better organization.
This commit is contained in:
shancheas
2026-08-25 18:20:19 +07:00
parent 34d4f2c120
commit c9f9b31abf
53 changed files with 5990 additions and 5 deletions
+48
View File
@@ -0,0 +1,48 @@
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 { 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 { FieldPrivilegeGuard } from './shared/field-privilege.guard';
@Module({
imports: [
PrivilegesModule,
EmployeesModule,
BranchesModule,
CustomersModule,
SalesInvoicesModule,
PackingSlipsModule,
],
controllers: [
CompanySettingsController,
CyclesReadController,
CyclesWriteController,
PlansReadController,
PlansWriteController,
],
providers: [
FieldPrivilegeGuard,
CompanySettingsRepository,
CompanySettingsService,
CyclesRepository,
CyclesService,
PlansRepository,
PlansService,
],
exports: [CompanySettingsService, CyclesService, PlansService],
})
export class FieldModule {}