@@ -164,6 +164,9 @@ lazy val root = project
164164 .aggregate(commonInfrastructure)
165165 .aggregate(discussions.projectRefs * )
166166 .aggregate(discussionsApi.projectRefs * )
167+ .aggregate(notifications.projectRefs * )
168+ .aggregate(notificationsApi.projectRefs * )
169+ .aggregate(notificationsImpl)
167170 .aggregate(users.projectRefs * )
168171 .aggregate(usersApi.projectRefs * )
169172 .aggregate(usersImpl)
@@ -390,6 +393,63 @@ val usersImpl = project
390393 users.jvm(Dependencies .scalaVersion)
391394 )
392395
396+ // notifications
397+
398+ val notifications = projectMatrix
399+ .in(file(" modules/notifications" ))
400+ .jvmPlatform(List (Dependencies .scalaVersion))
401+ .enablePlugins(GitVersioning , GitBranchPrompt )
402+ .settings(
403+ name := " notifications" ,
404+ description := " Notifications' published language"
405+ )
406+ .settings(settings)
407+ .settings(tests)
408+ .settings(
409+ libraryDependencies ++= Seq (
410+ Dependencies .fs2
411+ ),
412+ customPredef(" scala.util.chaining" , " cats.implicits" , " neotype" )
413+ )
414+ .dependsOn(common)
415+
416+ val notificationsApi = projectMatrix
417+ .in(file(" modules/notifications-api" ))
418+ .jvmPlatform(List (Dependencies .scalaVersion))
419+ .enablePlugins(GitVersioning , GitBranchPrompt )
420+ .settings(
421+ name := " notifications-api" ,
422+ description := " Notifications' HTTP API"
423+ )
424+ .settings(settings)
425+ .settings(tests)
426+ .settings(
427+ libraryDependencies ++= Seq (
428+ Dependencies .kindlingsJsoniter
429+ ),
430+ customPredef(" scala.util.chaining" , " cats.implicits" , " neotype" )
431+ )
432+ .dependsOn(commonApi, notifications)
433+
434+ val notificationsImpl = project
435+ .in(file(" modules/notifications-impl" ))
436+ .enablePlugins(GitVersioning , GitBranchPrompt )
437+ .settings(
438+ name := " notifications-impl" ,
439+ description := " Notifications' Reads, Writes and Services' implementations"
440+ )
441+ .settings(settings)
442+ .settings(integrationTests)
443+ .settings(
444+ customPredef(" scala.util.chaining" , " cats.implicits" , " neotype" )
445+ )
446+ .dependsOn(
447+ common.jvm(Dependencies .scalaVersion) % s " $Compile-> $Compile ; $Test-> $Test" ,
448+ commonInfrastructure % s " $Compile-> $Compile ; $Test-> $Test" ,
449+ discussions.jvm(Dependencies .scalaVersion),
450+ notifications.jvm(Dependencies .scalaVersion)
451+ )
452+
393453// application
394454
395455val server = project
@@ -435,6 +495,9 @@ val server = project
435495 discussions.jvm(Dependencies .scalaVersion),
436496 discussionsApi.jvm(Dependencies .scalaVersion),
437497 discussionsImpl % s " $Test-> $Test" ,
498+ notifications.jvm(Dependencies .scalaVersion),
499+ notificationsApi.jvm(Dependencies .scalaVersion),
500+ notificationsImpl % s " $Test-> $Test" ,
438501 users.jvm(Dependencies .scalaVersion),
439502 usersApi.jvm(Dependencies .scalaVersion),
440503 usersImpl % s " $Test-> $Test"
@@ -480,7 +543,7 @@ val application = project
480543 },
481544 assembly / mainClass := Some (" io.branchtalk.Main" )
482545 )
483- .dependsOn(server, discussionsImpl, usersImpl)
546+ .dependsOn(server, discussionsImpl, notificationsImpl, usersImpl)
484547
485548// aliases
486549
0 commit comments