40 lines
1.9 KiB
Go
40 lines
1.9 KiB
Go
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)),
|
||
)
|