48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
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)
|
|
}
|