package graph import ( "context" "git.dragse.it/anthrove/otter-space-sdk/pkg/models" ) type Post interface { CreatePost(ctx context.Context, anthrovePost *models.AnthrovePost) error DeletePost() error // LinkPostWithSource establishes a link between a post and a source in the OtterSpace graph. // It returns an error if the operation fails. LinkPostWithSource(ctx context.Context, anthrovePostID models.AnthrovePostID, anthroveSourceDomain string, anthrovePostRelationship *models.AnthrovePostRelationship) error // CheckPostNodeExistsByAnthroveID checks if a post node exists in the OtterSpace graph by its Anthrove ID. // It returns the post if it exists, a boolean indicating whether the post was found, and an error if the operation fails. CheckPostNodeExistsByAnthroveID(ctx context.Context, anthrovePost *models.AnthrovePost) (*models.AnthrovePost, bool, error) // CheckPostNodeExistsBySourceURL checks if a post node exists in the OtterSpace graph by its source URL. // It returns the post if it exists, a boolean indicating whether the post was found, and an error if the operation fails. CheckPostNodeExistsBySourceURL(ctx context.Context, sourceUrl string) (*models.AnthrovePost, bool, error) // CheckPostNodeExistsBySourceID checks if a post node exists in the OtterSpace graph by its source ID. // It returns the post if it exists, a boolean indicating whether the post was found, and an error if the operation fails. CheckPostNodeExistsBySourceID(ctx context.Context, sourcePostID string) (*models.AnthrovePost, bool, error) }