<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Intervention\Image\Facades\Image; /** * @method static where(string $string, $name) * @method static truncate() * @method static create(array|string[] $conf) */ class AppConfig extends Model { /** * model database * * @var string */ protected $table = 'app_config'; /** * mass fillable value * * @var string[] */ protected $fillable = ['setting', 'value']; /** * default settings * * @return array */ public function defaultSettings(): array { $categories = collect(config('customer-permissions'))->map(function ($value, $key) { $value['name'] = $key; return $value; })->groupBy('default')->first->toArray(); $permissions = collect($categories)->map(function ($item) { return $item['name']; })->toArray(); return [ [ 'setting' => 'app_name', 'value' => 'Ultimate SMS', ], [ 'setting' => 'app_title', 'value' => 'Bulk SMS Application For Marketing', ], [ 'setting' => 'app_keyword', 'value' => 'ultimate sms, codeglen, bulk sms, sms, sms marketing, laravel, framework', ], [ 'setting' => 'license', 'value' => '', ], [ 'setting' => 'license_type', 'value' => 'Regular license', ], [ 'setting' => 'valid_domain', 'value' => 'yes', ], [ 'setting' => 'from_email', 'value' => 'akasham67@gmail.com', ], [ 'setting' => 'from_name', 'value' => 'Ultimate SMS', ], [ 'setting' => 'company_address', 'value' => 'House#11, Block#B, <br>Rampura<br>Banasree Project<br>Dhaka<br>1219<br>Bangladesh', ], [ 'setting' => 'software_version', 'value' => '3.4.0', ], [ 'setting' => 'footer_text', 'value' => 'Copyright © Codeglen - 2020', ], [ 'setting' => 'app_logo', 'value' => 'images/logo/1e4fd743756c6c73940e089cf853b602.png', ], [ 'setting' => 'app_favicon', 'value' => 'images/logo/428eedaaee070f72c0a4f14aa08be0c4.png', ], [ 'setting' => 'country', 'value' => 'Bangladesh', ], [ 'setting' => 'timezone', 'value' => 'Asia/Dhaka', ], [ 'setting' => 'app_stage', 'value' => 'live', ], [ 'setting' => 'maintenance_mode', 'value' => true, ], [ 'setting' => 'maintenance_mode_message', 'value' => 'We\'re undergoing a bit of scheduled maintenance.', ], [ 'setting' => 'maintenance_mode_end', 'value' => 'Jan 5, 2021 15:37:25', ], [ 'setting' => 'php_bin_path', 'value' => '/usr/bin/php', ], [ 'setting' => 'driver', 'value' => 'default', ], [ 'setting' => 'host', 'value' => 'smtp.gmail.com', ], [ 'setting' => 'username', 'value' => 'user@example.com', ], [ 'setting' => 'password', 'value' => 'testpassword', ], [ 'setting' => 'port', 'value' => '587', ], [ 'setting' => 'encryption', 'value' => 'tls', ], [ 'setting' => 'date_format', 'value' => 'jS M y', ], [ 'setting' => 'language', 'value' => '1', ], [ 'setting' => 'client_registration', 'value' => true, ], [ 'setting' => 'registration_verification', 'value' => true, ], [ 'setting' => 'two_factor', 'value' => false, ], [ 'setting' => 'two_factor_send_by', 'value' => 'email', ], [ 'setting' => 'captcha_in_login', 'value' => false, ], [ 'setting' => 'captcha_in_client_registration', 'value' => false, ], [ 'setting' => 'captcha_site_key', 'value' => '6Lfp3ugUAAAAANwwZcKZ9qfOS4ha-Wla15B4IGVh', ], [ 'setting' => 'captcha_secret_key', 'value' => '6Lfp3ugUAAAAAFW1exmw0I4C8K33mhkLdraWF8PA', ], [ 'setting' => 'login_with_facebook', 'value' => false, ], [ 'setting' => 'facebook_client_id', 'value' => '', ], [ 'setting' => 'facebook_client_secret', 'value' => '', ], [ 'setting' => 'login_with_twitter', 'value' => false, ], [ 'setting' => 'twitter_client_id', 'value' => '', ], [ 'setting' => 'twitter_client_secret', 'value' => '', ], [ 'setting' => 'login_with_google', 'value' => false, ], [ 'setting' => 'google_client_id', 'value' => '', ], [ 'setting' => 'google_client_secret', 'value' => '', ], [ 'setting' => 'login_with_github', 'value' => false, ], [ 'setting' => 'github_client_id', 'value' => '', ], [ 'setting' => 'github_client_secret', 'value' => '', ], [ 'setting' => 'notification_sms_gateway', 'value' => '5eddfce2b68e6', ], [ 'setting' => 'notification_sender_id', 'value' => config('app.name'), ], [ 'setting' => 'notification_phone', 'value' => '8801721970168', ], [ 'setting' => 'notification_from_name', 'value' => config('app.name'), ], [ 'setting' => 'notification_email', 'value' => 'akasham67@gmail.com', ], [ 'setting' => 'sender_id_notification_email', 'value' => true, ], [ 'setting' => 'sender_id_notification_sms', 'value' => true, ], [ 'setting' => 'user_registration_notification_email', 'value' => true, ], [ 'setting' => 'user_registration_notification_sms', 'value' => false, ], [ 'setting' => 'subscription_notification_email', 'value' => true, ], [ 'setting' => 'subscription_notification_sms', 'value' => false, ], [ 'setting' => 'keyword_notification_email', 'value' => true, ], [ 'setting' => 'keyword_notification_sms', 'value' => false, ], [ 'setting' => 'phone_number_notification_email', 'value' => true, ], [ 'setting' => 'phone_number_notification_sms', 'value' => false, ], [ 'setting' => 'block_message_notification_email', 'value' => false, ], [ 'setting' => 'block_message_notification_sms', 'value' => false, ], [ 'setting' => 'unsubscribe_message', 'value' => 'Reply Stop to unsubscribe', ], [ 'setting' => 'custom_script', 'value' => '', ], /*Version 3.3*/ [ 'setting' => 'login_notification_email', 'value' => false, ], /*Version 3.3*/ [ 'setting' => 'customer_permissions', 'value' => json_encode($permissions), ], ]; } /** * updateLogo * * @param $file * @param null $name * * @return bool */ public static function uploadFile($file, $name = null): bool { $path = 'images/logo/'; $upload_path = public_path($path); if ( ! file_exists($upload_path)) { mkdir($upload_path, 0777, true); } $md5file = md5_file($file); $filename = $md5file.'.'.$file->getClientOriginalExtension(); $img = Image::make($file->getRealPath()); if ($name == 'app_logo') { $img->fit(150, 26, function ($c) { $c->aspectRatio(); $c->upsize(); }); } else { $img->fit(32, 32, function ($c) { $c->aspectRatio(); $c->upsize(); }); } $img->save($upload_path.$filename); $file_location = $path.$filename; AppConfig::where('setting', $name)->update([ 'value' => $file_location, ]); AppConfig::setEnv(strtoupper($name), $file_location); return true; } /** * Update setting one line. * * @param $key * @param $value */ public static function setEnv($key, $value) { $file_path = base_path('.env'); $data = file($file_path); $data = array_map(function ($data) use ($key, $value) { return stristr($data, $key) ? "$key=\"$value\"\n" : $data; }, $data); // Write file $env_file = fopen($file_path, 'w') or die('Unable to open file!'); fwrite($env_file, implode('', $data)); fclose($env_file); } /** * get default notifications value * * @return string[] */ public static function notificationsValues(): array { return [ 'sender_id_notification_email', 'sender_id_notification_sms', 'user_registration_notification_email', 'user_registration_notification_sms', 'subscription_notification_email', 'subscription_notification_sms', 'keyword_notification_email', 'keyword_notification_sms', 'phone_number_notification_email', 'phone_number_notification_sms', 'block_message_notification_email', 'block_message_notification_sms', 'login_notification_email', ]; } }