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

48 lines
1.1 KiB
Go
Raw Normal View History

2026-06-27 16:03:28 +00:00
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)
}