پیش به سوی تابستان؛ با تخفیفهای داغ راکت!
بزن بریم!سلام
من یه قطعه کد دارم که کارش اینه که سفارش مشتری رو بسازه.
حالا اگر باقی مانده تعداد سفارش های مشتری بر ۵ برابر با ۰ باشه میاد برای مشتری یک کوپن تخفیف میسازه و یه پیامک بهش میده که بفرما اینم کد تخفیفت!
حالا متوجه شدم که این کار درستی نیست که همینجوری کلاس ها و متد هارو add کنم و بهتره برای همچنین action هایی از event class و listener class ها استفاده کنم و اونجا بیام اون کلاس ها و متد هارو add کنم.
تا اینجا درست میگم؟؟
کد معمولی:
<?php
namespace App\Services;
use App\Jobs\SMSLog;
use App\Repositories\CouponRepository;
use App\Repositories\CustomerRepository;
use App\Repositories\MobileNumberRepository;
use App\Repositories\OrderRepository;
use Illuminate\Support\Facades\Log;
class OrderService
{
static function create($customerID, $discount, $description, $price)
{
$order = OrderRepository::create($customerID, $discount, $description, $price);
$orders = OrderRepository::getCountOfOrders($customerID);
$customer = CustomerRepository::find($customerID);
if ($orders % 5 == 0) {
$coupon = CouponRepository::create($couponName = "orders", 50, null);
CouponRepository::AttachCoupon($coupon, $customer);
$customerMobileNumber = MobileNumberRepository::getUniqueDefaultMobileNumber($customer);
$mobileNumber = $customerMobileNumber->mobile_number;
$smsText = "آرایشگاه رویال
سلام " . $customer->first_name . " عزیز
کوپن جدیدی به نام " . $couponName . " برای شما ثبت شده است";
Log::info('مشتری ' . $customer->first_name . ' ' . $customer->last_name . ' ۵ تا سفارش داده و کوپن ' . $coupon->coupon . ' به مقدار 50 درصد تخفیف ثبت و پیامک شد');
SMSLog::dispatchSync($smsText, $mobileNumber);
}
Log::info('سفارش ' . $order->description . ' برای مشتری ' . $customer->first_name . ' ' . $customer->last_name . ' ثبت شد');
return [
"status" => true,
"message" => "سفارش با موفقیت اضافه شد",
];
}
}
خب سوال من اینه که میخوام محتوای داخل شرط if رو ببرم داخل event و listener ولی نمیدونم که باید ۲ تا event class و ۲ تا listener class داشته باشم یا یک event class و یک listener class؟
سوالم رو میپرسم چون محتوای داخل if شامل دو تا action میشه!
یکی ساختن کوپن
یکی هم ارسال پیامک
حالا از دید استاندارد کار درست اینه که ۴ تا کلاس داشته باشم و هر کدوم از این کار ها رو جدا کنم یا اینکه میتونم کنار هم بزارمشون و کلا ۲ تا کلاس داشته باشم؟
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟