package error

import "fmt"

const (
	SourceListIsEmpty     = "sourceList cannot be empty"
	SourceIDIsEmpty       = "SourceID cannot be empty"
	SourceIDIsWrongLength = "sourceID has the wrong length"
	SourceDomainIsEmpty   = "source Domain cannot be empty"

	UserSourceIDIsEmpty     = "userSourceID cannot be empty"
	UserSourceIsWrongLength = "userSourceID has the wrong length"

	TagNameIsEmpty = "tagName cannot be empty"
	TagTypeIsEmpty = "tagType cannot be empty"
	TagListIsEmpty = "tagList cannot be empty"

	TagAliasNameIsEmpty = "tagAliasName cannot be empty"
	TagAliasListIsEmpty = "tagAliasList cannot be empty"

	TagGroupListIsEmpty = "tagGroupList cannot be empty"
	TagGroupNameIsEmpty = "tagGroupName cannot be empty"

	UserFavoriteListIsEmpty   = "userFavoriteList cannot be empty"
	UserFavoriteIDIsEmpty     = "userFavoriteID cannot be empty"
	UserFavoriteIsWrongLength = "userFavoriteID has the wrong length"

	PostListIsEmpty     = "userFavoriteList cannot be empty"
	PostIDIsEmpty       = "PostID cannot be empty"
	PostIDIsWrongLength = "PostID has the wrong length"

	BatchSizeIsEmpty = "batchSize cannot be empty"

	PoolIDIsEmpty       = "PoolID cannot be empty"
	PoolIDIsWrongLength = "PoolID has the wrong length"

	PoolURLIsEmpty = "PoolURL cannot be empty"

	ScrapeTaskIDIsEmpty       = "ScrapeTaskID cannot be empty"
	ScrapeTaskIDIsWrongLength = "ScrapeTaskID has the wrong length, needs to be 25 characters long"

	PostReportIDIsEmpty       = "PostReportID cannot be empty"
	PostReportIDIsWrongLength = "PostReportID has the wrong length"
)

type EntityValidationFailed struct {
	Reason string
}

func (e EntityValidationFailed) Error() string {
	return fmt.Sprintf("Entity validation failed: %s", e.Reason)
}