package usecase import "context" // PersonaSnapshot — 靈感 prompt 注入用的完整人設(不含 API key)。 type PersonaSnapshot struct { ID string Name string Brief string Status string DraftText string Voice string GuardAvoid []string MaxChars int BanAiTone bool // DimSummaries key like d1Tone → summary DimSummaries map[string]string } // BrandSnapshot + products for catalog injection. type BrandSnapshot struct { ID string DisplayName string Brief string Audience string Goals string Products []ProductSnapshot } type ProductSnapshot struct { ID string Label string Context string Tags []string Pains []string } // PersonaSource resolves current / requested persona. type PersonaSource interface { ResolvePersona(ctx context.Context, ownerUID int64, personaID string) (*PersonaSnapshot, error) } // BrandCatalogSource lists brands and nested products for the owner. type BrandCatalogSource interface { ListCatalog(ctx context.Context, ownerUID int64) ([]BrandSnapshot, error) }