package repository type Repository[T any] interface { Create(T *T) (int64, error) Delete(id int) (int64, error) GetAll() ([]T, error) GetByID(id int) (*T, error) Update(contact *T) error }