package repository

import (
	"context"

	"github.com/tidbcloud/tidb-management-service/tidb-mgmt-service/domain/entity"
)

const (
	// SystemDefaultRuVersion is the system-wide default RU version when no organization config exists.
	SystemDefaultRuVersion int32 = 1
)

// OrganizationRuConfigRepository manages organization-level RU version configurations.
type OrganizationRuConfigRepository interface {
	// GetByOrganizationId returns the organization's RU config.
	// If the organization has no config, it returns a non-nil config
	// initialized with the system default RU version (SystemDefaultRuVersion).
	GetByOrganizationId(ctx context.Context, organizationId uint64) (*entity.OrganizationRuConfig, error)

	// Upsert creates or updates the organization's default RU version.
	Upsert(ctx context.Context, config *entity.OrganizationRuConfig) error
}
