DeleteCreatedArticleAndComments.kt
package com.example.realworldkotlinspringbootjdbc.domain
import arrow.core.Either
import com.example.realworldkotlinspringbootjdbc.util.MyError
/**
* ドメインサービス
*
* - 作成済み記事を削除
* - 関連づくコメントを削除
*/
interface DeleteCreatedArticleAndComments {
/**
* 実行
*
* @param articleId 削除したい作成済み記事のId
* @return 準正常系: エラー or 正常系: Unit
*/
fun execute(articleId: ArticleId): Either<Error, Unit> = throw NotImplementedError()
sealed interface Error : MyError {
data class NotFoundArticle(val articleId: ArticleId) : Error, MyError.Basic
}
}