package usecase import "context" type MentionSummary struct { MediaID string AuthorUsername string Text string Permalink string Shortcode string Timestamp string MediaType string IsReply bool IsQuotePost bool HasReplies bool RootPostID string ParentID string ThreadPostText string ParentReplyText string ReplyReady bool ReplyReadyMsg string SyncedAt int64 } type Pagination struct { Total int64 ReadyTotal int64 Page int64 PageSize int64 TotalPages int64 NewestSyncedAt int64 } type SyncRequest struct { TenantID string OwnerUID string AccountID string Limit int MaxPages int } type SyncResult struct { Synced int Ready int Total int64 } type ListRequest struct { TenantID string OwnerUID string AccountID string Page int PageSize int } type ListResult struct { List []MentionSummary Pagination Pagination } type PublishReplyRequest struct { TenantID string OwnerUID string AccountID string MediaID string Text string } type PublishReplyResult struct { MediaID string Permalink string } type UseCase interface { SyncFromAPI(ctx context.Context, req SyncRequest) (*SyncResult, error) List(ctx context.Context, req ListRequest) (*ListResult, error) PublishReply(ctx context.Context, req PublishReplyRequest) (*PublishReplyResult, error) }