Line data Source code
1 : // Package skill は Skillに関するユースケース(アプリケーションロジック)を提供します
2 : // ドメイン層のエンティティやリポジトリを操作し、アプリケーション全体で再利用可能なビジネスフローを実装します。
3 : package skill
4 :
5 : // Interactor は Skillに関するユースケースの実装です
6 : // リポジトリ層及びトランザクション実行を通じて、ドメインロジックを仲介します
7 : type Interactor struct {
8 : tx TxRunner
9 : usRepo UsRepo
10 : scRepo ScRepo
11 : slRepo SlRepo
12 : }
13 :
14 : // New は Skillに関するユースケースのインスタンスを生成します
15 : // 各リポジトリとトランザクションランナーを依存として受け取る
16 : func New(
17 : tx TxRunner,
18 : usRepo UsRepo,
19 : scRepo ScRepo,
20 : slRepo SlRepo,
21 0 : ) Usecase {
22 0 : return &Interactor{
23 0 : tx: tx,
24 0 : usRepo: usRepo,
25 0 : scRepo: scRepo,
26 0 : slRepo: slRepo,
27 0 : }
28 0 : }
|