private static function create_default_record()
 {
     $config = ProfiledConfig::create(array('SendEmailFrom' => static::config()->get('send_email_from'), 'SendAdminEmailTo' => static::config()->get('send_admin_email_to'), 'SendToAdminFromMember' => static::config()->get('send_to_admin_from_member')));
     $config->write();
     return $config;
 }
 protected function sendEmail($what, Member $member, array $data = [])
 {
     $profiledConfig = ProfiledConfig::current_profiled_config();
     $templateData = array_merge(['Member' => $member], $data);
     $memberEmailTemplate = self::MemberEmailPrefix . strtolower($what);
     if (SSViewer::hasTemplate($memberEmailTemplate)) {
         // send email to member from ProfiledConfig.SendEmailFrom to Member.Email
         $emailMember = new Email($profiledConfig->getProfiledSender('Member'), $member->Email, $profiledConfig->getProfiledEmailSubject('Member', $what));
         $emailMember->setTemplate($memberEmailTemplate);
         $emailMember->populateTemplate($templateData);
         $emailMember->send();
     }
     $adminEmailTemplate = self::AdminEmailPrefix . strtolower($what);
     if (SSViewer::hasTemplate([$adminEmailTemplate])) {
         // send admin email from either Member.Email or ProfiledConfig.SendEmailFrom to Profiled.AdminEmail
         $emailAdmin = new Email($profiledConfig->getProfiledSender('Admin', $member->Email), $profiledConfig->getAdminEmail(), $profiledConfig->getProfiledEmailSubject('Admin', $what));
         $emailAdmin->setTemplate($adminEmailTemplate);
         $emailAdmin->populateTemplate($templateData);
         // save body to attach to admin email
         if (isset($emailMember)) {
             $emailAdmin->attachFileFromString($emailMember->Body(), $member->Email . "_registration.txt");
         }
         $emailAdmin->send();
     }
 }