package meeting import ( "github.com/echochat/backend/app/meeting/controller" "github.com/echochat/backend/app/meeting/dao" "github.com/echochat/backend/app/meeting/service" "github.com/echochat/backend/app/meeting/task" "github.com/google/wire" ) // MeetingSet 会议模块 Wire Provider Set // 对外暴露: // - *service.MeetingService —— REST 业务服务(Task 5) // - *service.MeetingBroadcaster —— WS 广播中枢(Task 6 新增,供 SignalService 复用) // - *service.MeetingSignalService —— WS 信令事件业务逻辑(Task 6) // - *controller.MeetingController —— REST API 控制器 // - *controller.MeetingWSHandler —— WS 事件 Handler(Task 6,启动时自动注册到 Hub) // 依赖的接口 NotifyPusher / UserInfoResolver / OnlineChecker 由上游 wire.Bind 绑定具体实现 var MeetingSet = wire.NewSet( dao.NewMeetingRoomDAO, dao.NewMeetingParticipantDAO, dao.NewMeetingChatDAO, dao.NewMeetingRecordingDAO, // Phase B 新增:录制记录 DAO service.NewMeetingBroadcaster, service.NewMeetingLifecycleService, // Task 8 新增:会议生命周期状态机 service.NewMeetingService, service.NewMeetingSignalService, service.NewMeetingRecordingService, // Phase B 新增:录制业务服务 controller.NewMeetingController, controller.NewMeetingRecordingController, // Phase B 新增:录制 REST 控制器 controller.NewMeetingWSHandler, task.NewMeetingCleanupTask, // Task 8 新增:生命周期兜底定时任务 // MediaOrchestrator 使用真实 HTTP 实现(Task 7 落地) // 注入 *config.Config,通过 cfg.MediaServer 获取 base_url / internal_token / timeout 等配置 // 如需回退到本地 stub 调试,可临时改为 service.NewNoopMediaOrchestrator 并调整 wire.Bind service.NewHTTPMediaOrchestrator, wire.Bind(new(service.MediaOrchestrator), new(*service.HTTPMediaOrchestrator)), )