mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 02:18:26 +00:00
Refactor scala base db migrations. Add marker trait for task args
This commit is contained in:
@ -18,7 +18,7 @@ import io.circe.{Decoder, Encoder}
|
||||
case class AllPreviewsArgs(
|
||||
collective: Option[CollectiveId],
|
||||
storeMode: MakePreviewArgs.StoreMode
|
||||
)
|
||||
) extends TaskArguments
|
||||
|
||||
object AllPreviewsArgs {
|
||||
|
||||
|
@ -16,7 +16,7 @@ import io.circe.generic.semiauto._
|
||||
* submitted by this task run in the realm of the collective (and only their files are
|
||||
* considered). If it is empty, it is a system task and all files are considered.
|
||||
*/
|
||||
case class ConvertAllPdfArgs(collective: Option[CollectiveId])
|
||||
case class ConvertAllPdfArgs(collective: Option[CollectiveId]) extends TaskArguments
|
||||
|
||||
object ConvertAllPdfArgs {
|
||||
|
||||
|
@ -20,7 +20,7 @@ import io.circe.generic.semiauto._
|
||||
case class EmptyTrashArgs(
|
||||
collective: CollectiveId,
|
||||
minAge: Duration
|
||||
) {
|
||||
) extends TaskArguments {
|
||||
|
||||
def makeSubject: String =
|
||||
s"Empty Trash: Remove older than ${minAge.toJava}"
|
||||
|
@ -22,6 +22,7 @@ import io.circe.{Decoder, Encoder}
|
||||
* selecting "all", it means all enabled stores.
|
||||
*/
|
||||
final case class FileCopyTaskArgs(from: Option[Ident], to: Selection)
|
||||
extends TaskArguments
|
||||
|
||||
object FileCopyTaskArgs {
|
||||
val taskName = Ident.unsafe("copy-file-repositories")
|
||||
|
@ -9,7 +9,7 @@ package docspell.common
|
||||
import io.circe.generic.semiauto.{deriveDecoder, deriveEncoder}
|
||||
import io.circe.{Decoder, Encoder}
|
||||
|
||||
final case class FileIntegrityCheckArgs(pattern: FileKeyPart) {}
|
||||
final case class FileIntegrityCheckArgs(pattern: FileKeyPart) extends TaskArguments
|
||||
|
||||
object FileIntegrityCheckArgs {
|
||||
val taskName: Ident = Ident.unsafe("all-file-integrity-check")
|
||||
|
@ -18,7 +18,7 @@ final case class ItemAddonTaskArgs(
|
||||
collective: CollectiveId,
|
||||
itemId: Ident,
|
||||
addonRunConfigs: Set[Ident]
|
||||
)
|
||||
) extends TaskArguments
|
||||
|
||||
object ItemAddonTaskArgs {
|
||||
val taskName: Ident = Ident.unsafe("addon-existing-item")
|
||||
|
@ -19,11 +19,10 @@ import io.circe.generic.semiauto._
|
||||
*/
|
||||
case class LearnClassifierArgs(
|
||||
collectiveId: CollectiveId
|
||||
) {
|
||||
) extends TaskArguments {
|
||||
|
||||
def makeSubject: String =
|
||||
"Learn tags"
|
||||
|
||||
}
|
||||
|
||||
object LearnClassifierArgs {
|
||||
|
@ -14,7 +14,7 @@ import io.circe.{Decoder, Encoder}
|
||||
*/
|
||||
case class MakePageCountArgs(
|
||||
attachment: Ident
|
||||
)
|
||||
) extends TaskArguments
|
||||
|
||||
object MakePageCountArgs {
|
||||
|
||||
|
@ -16,7 +16,7 @@ import io.circe.{Decoder, Encoder}
|
||||
case class MakePreviewArgs(
|
||||
attachment: Ident,
|
||||
store: MakePreviewArgs.StoreMode
|
||||
)
|
||||
) extends TaskArguments
|
||||
|
||||
object MakePreviewArgs {
|
||||
|
||||
|
@ -22,7 +22,7 @@ import io.circe.generic.semiauto._
|
||||
*
|
||||
* It is also re-used by the 'ReProcessItem' task.
|
||||
*/
|
||||
case class ProcessItemArgs(meta: ProcessMeta, files: List[File]) {
|
||||
case class ProcessItemArgs(meta: ProcessMeta, files: List[File]) extends TaskArguments {
|
||||
|
||||
def makeSubject: String =
|
||||
files.flatMap(_.name) match {
|
||||
|
@ -9,7 +9,7 @@ package docspell.common
|
||||
import io.circe._
|
||||
import io.circe.generic.semiauto._
|
||||
|
||||
final case class ReIndexTaskArgs(collective: Option[CollectiveId])
|
||||
final case class ReIndexTaskArgs(collective: Option[CollectiveId]) extends TaskArguments
|
||||
|
||||
object ReIndexTaskArgs {
|
||||
val taskName = Ident.unsafe("full-text-reindex")
|
||||
|
@ -16,6 +16,7 @@ import io.circe.{Decoder, Encoder}
|
||||
* list is empty, then all attachments are re-processed.
|
||||
*/
|
||||
case class ReProcessItemArgs(itemId: Ident, attachments: List[Ident])
|
||||
extends TaskArguments
|
||||
|
||||
object ReProcessItemArgs {
|
||||
|
||||
|
@ -49,7 +49,7 @@ case class ScanMailboxArgs(
|
||||
postHandleAll: Option[Boolean],
|
||||
// Exclude the mail body when importing
|
||||
attachmentsOnly: Option[Boolean]
|
||||
)
|
||||
) extends TaskArguments
|
||||
|
||||
object ScanMailboxArgs {
|
||||
|
||||
|
@ -10,6 +10,7 @@ import io.circe.generic.semiauto.{deriveDecoder, deriveEncoder}
|
||||
import io.circe.{Decoder, Encoder}
|
||||
|
||||
final case class ScheduledAddonTaskArgs(collective: CollectiveId, addonTaskId: Ident)
|
||||
extends TaskArguments
|
||||
|
||||
object ScheduledAddonTaskArgs {
|
||||
val taskName: Ident = Ident.unsafe("addon-scheduled-task")
|
||||
|
@ -0,0 +1,8 @@
|
||||
package docspell.common
|
||||
|
||||
/** A marker trait for task arguments.
|
||||
*
|
||||
* Arguments for tasks are stored as a JSON blob in the database. Changes in structure
|
||||
* requires a corresponding database migration.
|
||||
*/
|
||||
trait TaskArguments
|
Reference in New Issue
Block a user