44 lines
1.5 KiB
Go
44 lines
1.5 KiB
Go
// File Path: monorepo/cloud/maplepress-backend/internal/domain/page/interface.go
|
|
package page
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/gocql/gocql"
|
|
)
|
|
|
|
// Repository defines the interface for page data operations
|
|
type Repository interface {
|
|
// Create inserts a new page
|
|
Create(ctx context.Context, page *Page) error
|
|
|
|
// Update updates an existing page
|
|
Update(ctx context.Context, page *Page) error
|
|
|
|
// Upsert creates or updates a page
|
|
Upsert(ctx context.Context, page *Page) error
|
|
|
|
// GetByID retrieves a page by site_id and page_id
|
|
GetByID(ctx context.Context, siteID gocql.UUID, pageID string) (*Page, error)
|
|
|
|
// GetBySiteID retrieves all pages for a site
|
|
GetBySiteID(ctx context.Context, siteID gocql.UUID) ([]*Page, error)
|
|
|
|
// GetBySiteIDPaginated retrieves pages for a site with pagination
|
|
GetBySiteIDPaginated(ctx context.Context, siteID gocql.UUID, limit int, pageState []byte) ([]*Page, []byte, error)
|
|
|
|
// Delete deletes a page
|
|
Delete(ctx context.Context, siteID gocql.UUID, pageID string) error
|
|
|
|
// DeleteBySiteID deletes all pages for a site
|
|
DeleteBySiteID(ctx context.Context, siteID gocql.UUID) error
|
|
|
|
// DeleteMultiple deletes multiple pages by their IDs
|
|
DeleteMultiple(ctx context.Context, siteID gocql.UUID, pageIDs []string) error
|
|
|
|
// CountBySiteID counts pages for a site
|
|
CountBySiteID(ctx context.Context, siteID gocql.UUID) (int64, error)
|
|
|
|
// Exists checks if a page exists
|
|
Exists(ctx context.Context, siteID gocql.UUID, pageID string) (bool, error)
|
|
}
|