package training import ( "context" ) type Repository interface { FindAll(ctx context.Context) ([]Training, error) FindByID(ctx context.Context, id ID) (*Training, error) Create(ctx context.Context, training *Training) error Update(ctx context.Context, training *Training) error Publish(ctx context.Context, id ID) error Unpublish(ctx context.Context, id ID) error Retire(ctx context.Context, id ID) error } type PricingRepository interface { UpdateForCurrency(ctx context.Context, trainingID ID, currency string, price float64) error AddCurrency(ctx context.Context, trainingID ID, currency string, price float64) error RemoveCurrency(ctx context.Context, trainingID ID, currency string) error }