repository.go 932 B

1234567891011121314151617181920212223242526
  1. package interfaces
  2. import (
  3. "context"
  4. "github.com/dmitriygnatenko/internal/models"
  5. )
  6. type IArticleRepository interface {
  7. GetAllPreview(ctx context.Context) ([]models.ArticlePreview, error)
  8. GetPreviewByTagID(ctx context.Context, tagID int) ([]models.ArticlePreview, error)
  9. GetByURL(ctx context.Context, url string) (*models.Article, error)
  10. GetByID(ctx context.Context, ID int) (*models.Article, error)
  11. }
  12. type ITagRepository interface {
  13. GetAll(ctx context.Context) ([]models.Tag, error)
  14. GetAllUsed(ctx context.Context) ([]models.Tag, error)
  15. IsUsed(ctx context.Context, ID int) (bool, error)
  16. GetByArticleID(ctx context.Context, ID int) ([]models.Tag, error)
  17. GetByURL(ctx context.Context, tag string) (*models.Tag, error)
  18. GetByID(ctx context.Context, ID int) (*models.Tag, error)
  19. Add(ctx context.Context, m models.Tag) error
  20. Update(ctx context.Context, m models.Tag) error
  21. Delete(ctx context.Context, ID int) error
  22. }