21 lines
977 B
Go
21 lines
977 B
Go
package domain
|
|
|
|
import "context"
|
|
|
|
type Repository interface {
|
|
// Contact unique key: owner_uid + source_platform + author_handle
|
|
UpsertContactByIdentity(ctx context.Context, c *Contact) (*Contact, error)
|
|
GetContact(ctx context.Context, id string) (*Contact, error)
|
|
SaveContact(ctx context.Context, c *Contact) error
|
|
ListContacts(ctx context.Context, ownerUID int64, f ContactListFilter) ([]*Contact, int64, error)
|
|
CountByStage(ctx context.Context, ownerUID int64) (map[string]int, error)
|
|
|
|
InsertTouch(ctx context.Context, t *ContactTouch) error
|
|
ListTouches(ctx context.Context, ownerUID int64, contactID string, page, pageSize int) ([]*ContactTouch, int64, error)
|
|
|
|
SaveFollowUp(ctx context.Context, f *FollowUp) error
|
|
GetFollowUp(ctx context.Context, id string) (*FollowUp, error)
|
|
ListFollowUps(ctx context.Context, ownerUID int64, f FollowUpListFilter) ([]*FollowUp, int64, error)
|
|
ListDueFollowUps(ctx context.Context, now int64, limit int) ([]*FollowUp, error)
|
|
}
|