package usecase import "context" type CRMContactSummary struct { ID string BrandID string AuthorID string AuthorName string AuthorAvatar string AuthorFollowers int ScanPostID string Notes string Tags []string Status string OutreachCount int LastContactedAt int64 CreateAt int64 UpdateAt int64 } type ListRequest struct { TenantID string OwnerUID string BrandID string Status string Tag string Page int PageSize int } type UpdateRequest struct { TenantID string OwnerUID string ContactID string Notes *string Tags *[]string Status *string } type UseCase interface { Create(ctx context.Context, tenantID, ownerUID, brandID, authorID, authorName string) (*CRMContactSummary, error) Get(ctx context.Context, tenantID, ownerUID, contactID string) (*CRMContactSummary, error) Update(ctx context.Context, req UpdateRequest) (*CRMContactSummary, error) Delete(ctx context.Context, tenantID, ownerUID, contactID string) error List(ctx context.Context, req ListRequest) ([]CRMContactSummary, int, error) }