@@ -130,6 +130,8 @@ func NewContainer(projectID string, version string) (container *Container) {
130130 container .RegisterHeartbeatListeners ()
131131
132132 container .RegisterUserRoutes ()
133+ container .RegisterSendScheduleRoutes ()
134+ container .RegisterSendScheduleListeners ()
133135 container .RegisterUserListeners ()
134136
135137 container .RegisterPhoneRoutes ()
@@ -364,6 +366,10 @@ ALTER TABLE discords ADD CONSTRAINT IF NOT EXISTS uni_discords_server_id CHECK (
364366 container .logger .Fatal (stacktrace .Propagate (err , fmt .Sprintf ("cannot migrate %T" , & entities.User {})))
365367 }
366368
369+ if err = db .AutoMigrate (& entities.MessageSendSchedule {}); err != nil {
370+ container .logger .Fatal (stacktrace .Propagate (err , fmt .Sprintf ("cannot migrate %T" , & entities.MessageSendSchedule {})))
371+ }
372+
367373 if err = db .AutoMigrate (& entities.Phone {}); err != nil {
368374 container .logger .Fatal (stacktrace .Propagate (err , fmt .Sprintf ("cannot migrate %T" , & entities.Phone {})))
369375 }
@@ -753,6 +759,46 @@ func (container *Container) PhoneRepository() (repository repositories.PhoneRepo
753759 )
754760}
755761
762+ // SendScheduleRepository creates a new instance of repositories.SendScheduleRepository
763+ func (container * Container ) SendScheduleRepository () repositories.SendScheduleRepository {
764+ container .logger .Debug ("creating GORM repositories.SendScheduleRepository" )
765+ return repositories .NewGormSendScheduleRepository (
766+ container .Logger (),
767+ container .Tracer (),
768+ container .DB (),
769+ )
770+ }
771+
772+ // SendScheduleService creates a new instance of services.SendScheduleService
773+ func (container * Container ) SendScheduleService () * services.SendScheduleService {
774+ container .logger .Debug ("creating services.SendScheduleService" )
775+ return services .NewSendScheduleService (
776+ container .Logger (),
777+ container .Tracer (),
778+ container .SendScheduleRepository (),
779+ )
780+ }
781+
782+ // SendScheduleHandlerValidator creates a new instance of validators.SendScheduleHandlerValidator
783+ func (container * Container ) SendScheduleHandlerValidator () * validators.SendScheduleHandlerValidator {
784+ container .logger .Debug ("creating validators.SendScheduleHandlerValidator" )
785+ return validators .NewSendScheduleHandlerValidator (
786+ container .Logger (),
787+ container .Tracer (),
788+ )
789+ }
790+
791+ // SendScheduleHandler creates a new instance of handlers.SendScheduleHandler
792+ func (container * Container ) SendScheduleHandler () * handlers.SendScheduleHandler {
793+ container .logger .Debug ("creating handlers.SendScheduleHandler" )
794+ return handlers .NewSendScheduleHandler (
795+ container .Logger (),
796+ container .Tracer (),
797+ container .SendScheduleHandlerValidator (),
798+ container .SendScheduleService (),
799+ )
800+ }
801+
756802// BillingUsageRepository creates a new instance of repositories.BillingUsageRepository
757803func (container * Container ) BillingUsageRepository () (repository repositories.BillingUsageRepository ) {
758804 container .logger .Debug ("creating GORM repositories.BillingUsageRepository" )
@@ -1097,6 +1143,20 @@ func (container *Container) RegisterMessageListeners() {
10971143 }
10981144}
10991145
1146+ // RegisterSendScheduleListeners registers event listeners for listeners.SendScheduleListener
1147+ func (container * Container ) RegisterSendScheduleListeners () {
1148+ container .logger .Debug (fmt .Sprintf ("registering listeners for %T" , listeners.SendScheduleListener {}))
1149+ _ , routes := listeners .NewSendScheduleListener (
1150+ container .Logger (),
1151+ container .Tracer (),
1152+ container .SendScheduleService (),
1153+ )
1154+
1155+ for event , handler := range routes {
1156+ container .EventDispatcher ().Subscribe (event , handler )
1157+ }
1158+ }
1159+
11001160// LemonsqueezyService creates a new instance of services.LemonsqueezyService
11011161func (container * Container ) LemonsqueezyService () (service * services.LemonsqueezyService ) {
11021162 container .logger .Debug (fmt .Sprintf ("creating %T" , service ))
@@ -1510,6 +1570,7 @@ func (container *Container) NotificationService() (service *services.PhoneNotifi
15101570 container .FirebaseMessagingClient (),
15111571 container .PhoneRepository (),
15121572 container .PhoneNotificationRepository (),
1573+ container .SendScheduleRepository (),
15131574 container .EventDispatcher (),
15141575 )
15151576}
@@ -1565,6 +1626,12 @@ func (container *Container) RegisterUserRoutes() {
15651626 container .UserHandler ().RegisterRoutes (container .App (), container .AuthenticatedMiddleware ())
15661627}
15671628
1629+ // RegisterSendScheduleRoutes registers routes for the /send-schedules prefix
1630+ func (container * Container ) RegisterSendScheduleRoutes () {
1631+ container .logger .Debug (fmt .Sprintf ("registering %T routes" , & handlers.SendScheduleHandler {}))
1632+ container .SendScheduleHandler ().RegisterRoutes (container .App (), container .AuthenticatedMiddleware ())
1633+ }
1634+
15681635// RegisterEventRoutes registers routes for the /events prefix
15691636func (container * Container ) RegisterEventRoutes () {
15701637 container .logger .Debug (fmt .Sprintf ("registering %T routes" , & handlers.EventsHandler {}))
0 commit comments