32 lines
1.2 KiB
Go
32 lines
1.2 KiB
Go
|
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
|
||
|
}
|