mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-23 15:36:33 +00:00
89 lines
4.3 KiB
TypeScript
89 lines
4.3 KiB
TypeScript
import { BudgetItems } from '../../db/entities/BudgetItems.entity';
|
|
import { DayAccommodations } from '../../db/entities/DayAccommodations.entity';
|
|
import { DayAssignments } from '../../db/entities/DayAssignments.entity';
|
|
import { Days } from '../../db/entities/Days.entity';
|
|
import { Places } from '../../db/entities/Places.entity';
|
|
import { ReservationDayPositions } from '../../db/entities/ReservationDayPositions.entity';
|
|
import { ReservationEndpoints } from '../../db/entities/ReservationEndpoints.entity';
|
|
import { ReservationTravelers } from '../../db/entities/ReservationTravelers.entity';
|
|
import { Reservations } from '../../db/entities/Reservations.entity';
|
|
import { TripMembers } from '../../db/entities/TripMembers.entity';
|
|
import { Trips } from '../../db/entities/Trips.entity';
|
|
import { Users } from '../../db/entities/Users.entity';
|
|
import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module';
|
|
import { AccommodationsModule } from '../accommodations/accommodations.module';
|
|
import { AssignmentsModule } from '../assignments/assignments.module';
|
|
import { BudgetModule } from '../budget/budget.module';
|
|
import { DaysModule } from '../days/days.module';
|
|
import { AirtrailCoreModule } from '../integrations/airtrail-core.module';
|
|
import { McpSharedModule } from '../mcp-shared/mcp-shared.module';
|
|
import { NotificationsModule } from '../notifications/notifications.module';
|
|
import { PermissionsModule } from '../permissions/permissions.module';
|
|
import { RealtimeModule } from '../realtime/realtime.module';
|
|
import { ReservationWritesService } from './reservation-writes.service';
|
|
import { ReservationsReadModule } from './reservations-read.module';
|
|
import { ReservationsController } from './reservations.controller';
|
|
import { ReservationsMcp } from './reservations.mcp';
|
|
import { ReservationsRpc } from './reservations.rpc';
|
|
import { ReservationsService } from './reservations.service';
|
|
import { UpcomingReservationsController } from './upcoming-reservations.controller';
|
|
import { MikroOrmModule } from '@mikro-orm/nestjs';
|
|
import { Module } from '@nestjs/common';
|
|
|
|
/**
|
|
* Reservations + accommodations domain (S5 — Phase 2 trip sub-domain).
|
|
* Mounts: /api/trips/:tripId/reservations, /accommodations, and the cross-trip
|
|
* /api/reservations/upcoming dashboard feed. ReservationsMcp carries the
|
|
* decorator-registered MCP tools + resource for the domain.
|
|
*
|
|
* `MikroOrmModule.forFeature([...])` registers `ReservationsRepository`/
|
|
* `ReservationEndpointsRepository`/`ReservationTravelersRepository`/
|
|
* `ReservationDayPositionsRepository`/`DayAccommodationsRepository` (this
|
|
* task's own) plus `DaysRepository`/`PlacesRepository`/
|
|
* `DayAssignmentsRepository`/`TripMembersRepository`/`UsersRepository`/
|
|
* `TripsRepository` (owned elsewhere, reached the same way
|
|
* `AssignmentsDomainModule` reaches `Days`/`Places`/`TripMembers` — the
|
|
* entity classes only, never the owning module) for `ReservationsService`'s
|
|
* `@InjectRepository` constructor params (Plan 3d Task 2).
|
|
*/
|
|
@Module({
|
|
// DaysModule: ReservationsMcp injects DaysService for its nine getDay calls.
|
|
// BudgetModule: ReservationsService + ReservationsMcp inject BudgetService (budget-sync seam).
|
|
// AccommodationsModule: a hotel booking writes its own day_accommodations row, and
|
|
// that stay owes the day plan the same stop one entered under Days does. No edge
|
|
// back — accommodations reaches neither days nor reservations (ACC-002).
|
|
imports: [
|
|
McpSharedModule,
|
|
NotificationsModule,
|
|
DaysModule,
|
|
AssignmentsModule,
|
|
AccommodationsModule,
|
|
PermissionsModule,
|
|
BudgetModule,
|
|
RealtimeModule,
|
|
PluginGuardsModule,
|
|
ReservationsReadModule,
|
|
AirtrailCoreModule,
|
|
MikroOrmModule.forFeature([
|
|
Reservations,
|
|
ReservationEndpoints,
|
|
ReservationTravelers,
|
|
ReservationDayPositions,
|
|
DayAccommodations,
|
|
Days,
|
|
Places,
|
|
DayAssignments,
|
|
TripMembers,
|
|
Users,
|
|
Trips,
|
|
BudgetItems,
|
|
]),
|
|
],
|
|
controllers: [ReservationsController, UpcomingReservationsController],
|
|
// ReservationWritesService: the booking use cases the controller and the MCP tools share.
|
|
providers: [ReservationsService, ReservationWritesService, ReservationsMcp, ReservationsRpc],
|
|
// For in-container consumers (ReservationsRpc, TripsService, BookingImportService).
|
|
exports: [ReservationsService],
|
|
})
|
|
export class ReservationsModule {}
|