thread-master/backend/internal/model/copy_draft/domain/usecase/usecase.go

124 lines
3.1 KiB
Go
Raw Normal View History

2026-06-26 08:37:04 +00:00
package usecase
import (
"context"
)
type CopyDraftSummary struct {
ID string
PersonaID string
CopyMissionID string
ScanPostID string
2026-07-01 08:42:51 +00:00
FormulaID string
2026-06-26 08:37:04 +00:00
DraftType string
SortOrder int
Text string
Angle string
Hook string
Rationale string
ReferenceNotes string
Sources []string
Status string
2026-06-30 09:10:23 +00:00
PublishQueueID string
2026-06-26 08:37:04 +00:00
PublishedMediaID string
PublishedPermalink string
PublishedAt int64
CreateAt int64
}
type MarkPublishedRequest struct {
TenantID string
OwnerUID string
PersonaID string
DraftID string
MediaID string
Permalink string
}
2026-06-30 09:10:23 +00:00
type MarkScheduledRequest struct {
TenantID string
OwnerUID string
PersonaID string
DraftID string
QueueID string
}
2026-06-26 08:37:04 +00:00
type CreateRequest struct {
TenantID string
OwnerUID string
PersonaID string
CopyMissionID string
ScanPostID string
2026-07-01 08:42:51 +00:00
FormulaID string
2026-06-26 08:37:04 +00:00
DraftType string
SortOrder int
Text string
Angle string
Hook string
Rationale string
ReferenceNotes string
Sources []string
}
type CreateManyRequest struct {
TenantID string
OwnerUID string
PersonaID string
Drafts []CreateRequest
}
type CopyDraftPatch struct {
Text *string
Hook *string
Angle *string
Status *string
}
type UpdateRequest struct {
TenantID string
OwnerUID string
PersonaID string
DraftID string
Patch CopyDraftPatch
}
2026-07-01 08:42:51 +00:00
type InboxListRequest struct {
TenantID string
OwnerUID string
PersonaID string
Status string
RangeStart int64
RangeEnd int64
Page int
PageSize int
}
type InboxListResult struct {
Items []CopyDraftSummary
Total int64
}
2026-06-28 08:28:42 +00:00
type DeleteMissionMatrixDraftsRequest struct {
TenantID string
OwnerUID string
PersonaID string
MissionID string
DraftIDs []string
}
2026-06-26 08:37:04 +00:00
type UseCase interface {
Create(ctx context.Context, req CreateRequest) (*CopyDraftSummary, error)
CreateMany(ctx context.Context, req CreateManyRequest) ([]CopyDraftSummary, error)
ReplaceMissionMatrix(ctx context.Context, tenantID, ownerUID, personaID, missionID string, drafts []CreateRequest) ([]CopyDraftSummary, error)
Get(ctx context.Context, tenantID, ownerUID, personaID, draftID string) (*CopyDraftSummary, error)
Update(ctx context.Context, req UpdateRequest) (*CopyDraftSummary, error)
MarkPublished(ctx context.Context, req MarkPublishedRequest) (*CopyDraftSummary, error)
2026-06-30 09:10:23 +00:00
MarkScheduled(ctx context.Context, req MarkScheduledRequest) (*CopyDraftSummary, error)
2026-06-26 08:37:04 +00:00
List(ctx context.Context, tenantID, ownerUID, personaID string, limit int) ([]CopyDraftSummary, error)
2026-07-01 08:42:51 +00:00
ListInbox(ctx context.Context, req InboxListRequest) (*InboxListResult, error)
2026-06-26 08:37:04 +00:00
ListByMission(ctx context.Context, tenantID, ownerUID, personaID, missionID string, limit int) ([]CopyDraftSummary, error)
2026-06-28 08:28:42 +00:00
Delete(ctx context.Context, tenantID, ownerUID, personaID, draftID string) error
DeleteMissionMatrixDrafts(ctx context.Context, req DeleteMissionMatrixDraftsRequest) (int, error)
2026-06-26 08:37:04 +00:00
ClearByMission(ctx context.Context, tenantID, ownerUID, personaID, missionID string) error
}