package app import ( "context" "fmt" "github.com/geo-platform/tenant-api/internal/shared/objectstorage" ) type KolPromptAsset struct { storage objectstorage.Client } func NewKolPromptAsset(storage objectstorage.Client) *KolPromptAsset { return &KolPromptAsset{storage: storage} } func (a *KolPromptAsset) assetKey(tenantID, promptID int64, revisionNo int) string { return fmt.Sprintf("kol-prompts/%d/%d/%d.txt", tenantID, promptID, revisionNo) } func (a *KolPromptAsset) Put(ctx context.Context, tenantID, promptID int64, revisionNo int, content string) (string, error) { key := a.assetKey(tenantID, promptID, revisionNo) if err := a.storage.PutBytes(ctx, key, []byte(content), "text/plain; charset=utf-8"); err != nil { return "", err } return key, nil } func (a *KolPromptAsset) Get(ctx context.Context, assetKey string) (string, error) { content, err := a.storage.GetBytes(ctx, assetKey) if err != nil { return "", err } return string(content), nil }