package tenant import "mengstack/internal/config" type Resolver interface { Resolve(headerValue, queryValue string) (string, bool) IsMulti() bool } func NewResolver(cfg config.TenantConfig) Resolver { if cfg.Mode == "single" { return &singleResolver{defaultID: cfg.DefaultID} } return &multiResolver{} } type singleResolver struct { defaultID string } func (r *singleResolver) Resolve(_, _ string) (string, bool) { return r.defaultID, r.defaultID != "" } func (r *singleResolver) IsMulti() bool { return false } type multiResolver struct{} func (r *multiResolver) Resolve(headerValue, queryValue string) (string, bool) { if headerValue != "" { return headerValue, true } if queryValue != "" { return queryValue, true } return "", false } func (r *multiResolver) IsMulti() bool { return true }