public function addAttachment(
        string $name,
        string $mimetype,
        string $file,
        CNabuIContactProspectDiary $nb_diary = null,
        bool $save = true
    ) {
        if ($this->isFetched()) {
            $nb_icontact = $this->getIContact();
            $base_path = $nb_icontact->getBasePath();
            $retval = $nb_attachment = new CNabuIContactProspectAttachment();
            $nb_attachment->setIcontactProspect($this);
            $nb_attachment->setIcontactProspectDiaryId(
                $nb_diary instanceof CNabuIContactProspectDiary ? $nb_diary->getId() : null
            );
            $nb_attachment->setName($name);
            $nb_attachment->setMIMEType($mimetype);
            $nb_attachment->grantHash();
            $nb_attachment->putFile($file);

            if ($save) {
                $nb_attachment->save();
                $this->nb_attachment_list->addItem($nb_attachment);
            }

            return $retval;
        } else {
            throw new ENabuIContactException(ENabuIContactException::ERROR_ICONTACT_NOT_FETCHED);
        }
    }