package contact

import "context"

type Repository interface {
	ListContacts(ctx context.Context, filter ListFilter) ([]ContactListItem, int64, error)
	GetContactByID(ctx context.Context, userID []byte) (*ContactListItem, error)
	IsActorAdmin(ctx context.Context) (bool, error)
	ResolveRoleCodeByID(ctx context.Context, roleID []byte) (string, error)
	CreateContact(ctx context.Context, in CreateInput) ([]byte, error)
	UpdateContact(ctx context.Context, in UpdateInput) error
	DeleteContact(ctx context.Context, userID []byte) error
	UpdateContactStatus(ctx context.Context, userID []byte, isActive bool) error
	UpdateContactRole(ctx context.Context, userID []byte, roleCode string) error
	UpdatePilotCategory(ctx context.Context, userID []byte, category string) error
	UpdateLicense(ctx context.Context, userID []byte, licenseNo *string) error
	UpdateChiefFlags(ctx context.Context, userID []byte, patch ProfilePatch) error
	UpdateResponsibleComplaints(ctx context.Context, userID []byte, value bool) error
	BulkUpdateStatus(ctx context.Context, userIDs [][]byte, isActive bool) (int64, error)
}
