package database import ( "context" "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models" ) type Post interface { // CreatePost adds a new post to the database. CreatePost(ctx context.Context, anthrovePost *models.Post) error // TODO: Everything CreatePostInBatch(ctx context.Context, anthrovePost []models.Post, batchSize int) error // GetPostByAnthroveID retrieves a post by its Anthrove ID. GetPostByAnthroveID(ctx context.Context, anthrovePostID models.AnthrovePostID) (*models.Post, error) // GetPostByURL retrieves a post by its source URL. GetPostByURL(ctx context.Context, postURL string) (*models.Post, error) // GetPostBySourceID retrieves a post by its source ID. GetPostBySourceID(ctx context.Context, sourceID models.AnthroveSourceID) (*models.Post, error) // CreatePostWithReferenceToTagAnd adds a tag with a relation to a post. CreatePostWithReferenceToTagAnd(ctx context.Context, anthrovePostID models.AnthrovePostID, anthroveTag *models.Tag) error // CreatePostReference links a post with a source. CreatePostReference(ctx context.Context, anthrovePostID models.AnthrovePostID, sourceDomain models.AnthroveSourceDomain, postURL models.AnthrovePostURL, config models.PostReferenceConfig) error }