haixunMaster/haixun-backend/internal/model/brand/domain/usecase/usecase.go

65 lines
1.4 KiB
Go
Raw Normal View History

2026-06-24 10:02:42 +00:00
package usecase
import (
"context"
"haixun-backend/internal/model/brand/domain/entity"
)
type BrandSummary struct {
ID string
DisplayName string
SeedQuery string
Brief string
ProductBrief string
ProductContext string
TargetAudience string
Goals string
ResearchMap entity.ResearchMap
CreateAt int64
UpdateAt int64
}
type CreateRequest struct {
TenantID string
OwnerUID string
DisplayName string
SeedQuery string
Brief string
ProductContext string
ProductBrief string
TargetAudience string
Goals string
ResearchMap *entity.ResearchMap
}
type UpdateRequest struct {
TenantID string
OwnerUID string
BrandID string
Patch BrandPatch
}
type BrandPatch struct {
DisplayName *string
SeedQuery *string
Brief *string
ProductBrief *string
ProductContext *string
TargetAudience *string
Goals *string
ResearchMap *entity.ResearchMap
}
type ListResult struct {
List []BrandSummary
}
type UseCase interface {
List(ctx context.Context, tenantID, ownerUID string) (*ListResult, error)
Create(ctx context.Context, req CreateRequest) (*BrandSummary, error)
Get(ctx context.Context, tenantID, ownerUID, brandID string) (*BrandSummary, error)
Update(ctx context.Context, req UpdateRequest) (*BrandSummary, error)
Delete(ctx context.Context, tenantID, ownerUID, brandID string) error
}