25 lines
778 B
Go
25 lines
778 B
Go
package port
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.threesix.ai/jordan/persona-community-5/services/persona-api/internal/domain"
|
|
)
|
|
|
|
// PersonaRepository defines the interface for persona persistence operations.
|
|
type PersonaRepository interface {
|
|
// Create stores a new persona.
|
|
Create(ctx context.Context, persona *domain.Persona) error
|
|
|
|
// GetByID returns a persona by ID.
|
|
// Returns domain.ErrPersonaNotFound if not found.
|
|
GetByID(ctx context.Context, id domain.PersonaID) (*domain.Persona, error)
|
|
|
|
// List returns personas with pagination.
|
|
List(ctx context.Context, limit, offset int) ([]*domain.Persona, error)
|
|
|
|
// Update persists changes to an existing persona.
|
|
// Returns domain.ErrPersonaNotFound if not found.
|
|
Update(ctx context.Context, persona *domain.Persona) error
|
|
}
|