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

105 lines
2.4 KiB
Go
Raw Permalink Normal View History

2026-06-25 08:20:03 +00:00
package usecase
import (
"context"
"haixun-backend/internal/model/copy_mission/domain/entity"
)
type SuggestedTagSummary struct {
Tag string
Reason string
SearchIntent string
SearchType string
}
type SimilarAccountSummary struct {
Username string
Reason string
Source string
Confidence string
ProfileURL string
AuthorVerified bool
FollowerCount int
EngagementScore int
LikeCount int
ReplyCount int
PostCount int
}
type ResearchMapSummary struct {
AudienceSummary string
ContentGoal string
Questions []string
Pillars []string
Exclusions []string
SuggestedTags []SuggestedTagSummary
SimilarAccounts []SimilarAccountSummary
BenchmarkNotes string
}
type MissionSummary struct {
ID string
PersonaID string
Label string
SeedQuery string
Brief string
ResearchMap ResearchMapSummary
SelectedTags []string
LastScanJobID string
Status string
CreateAt int64
UpdateAt int64
}
type CreateRequest struct {
2026-06-25 09:34:28 +00:00
TenantID string
OwnerUID string
PersonaID string
Label string
SeedQuery string
Brief string
InitialResearchMap *entity.ResearchMap
2026-06-25 08:20:03 +00:00
InitialSelectedTags []string
}
type MissionPatch struct {
Label *string
SeedQuery *string
Brief *string
AudienceSummary *string
ContentGoal *string
QuestionsSet bool
Questions []string
PillarsSet bool
Pillars []string
ExclusionsSet bool
Exclusions []string
BenchmarkNotes *string
SelectedTagsSet bool
SelectedTags []string
ResearchMap *entity.ResearchMap
LastScanJobID *string
Status *entity.Status
}
type UpdateRequest struct {
TenantID string
OwnerUID string
PersonaID string
MissionID string
Patch MissionPatch
}
type ListResult struct {
List []MissionSummary
}
type UseCase interface {
List(ctx context.Context, tenantID, ownerUID, personaID string) (*ListResult, error)
Create(ctx context.Context, req CreateRequest) (*MissionSummary, error)
Get(ctx context.Context, tenantID, ownerUID, personaID, missionID string) (*MissionSummary, error)
Update(ctx context.Context, req UpdateRequest) (*MissionSummary, error)
Delete(ctx context.Context, tenantID, ownerUID, personaID, missionID string) error
}