Update: 2026-07-02 05:27:04
This commit is contained in:
@@ -72,6 +72,62 @@ class SiroGeminiService {
|
||||
}
|
||||
";
|
||||
|
||||
return $this->callGemini($prompt, $model);
|
||||
}
|
||||
|
||||
/**
|
||||
* يُولّد إشعاراً مخصصاً لحدث دخول الجيوفينس بناءً على بيانات أسعار حقيقية.
|
||||
*
|
||||
* @param string $zoneName اسم منطقة السياج الجغرافي
|
||||
* @param string $countryCode رمز الدولة (SY, JO, EG, IQ)
|
||||
* @param float $savingsPct نسبة التوفير (مثال: 8.5)
|
||||
* @param string $topCompetitor اسم أبرز منافس في المنطقة
|
||||
* @param string $model
|
||||
* @return array|null
|
||||
*/
|
||||
public function generateGeofenceMessage(
|
||||
string $zoneName,
|
||||
string $countryCode,
|
||||
float $savingsPct,
|
||||
string $topCompetitor = 'كريم',
|
||||
string $model = 'gemini-flash-lite-latest'
|
||||
): ?array {
|
||||
if (!$this->apiKey) return null;
|
||||
|
||||
$dialect = match (strtoupper($countryCode)) {
|
||||
'SY' => 'السورية الشامية',
|
||||
'JO' => 'الأردنية',
|
||||
'EG' => 'المصرية العامية',
|
||||
'IQ' => 'العراقية',
|
||||
default => 'العربية الفصحى'
|
||||
};
|
||||
|
||||
$savingsFormatted = number_format($savingsPct, 1);
|
||||
|
||||
$prompt = "
|
||||
أنت كاتب إشعارات تسويقية ذكية لتطبيق Siro لخدمات نقل الركاب.
|
||||
المستخدم الآن موجود بالقرب من '$zoneName'.
|
||||
سعر سيرو أقل بـ $savingsFormatted% من $topCompetitor وبقية التطبيقات في هذه المنطقة.
|
||||
|
||||
المطلوب: اكتب إشعاراً push قصيراً جداً (عنوان + جسم) باللهجة $dialect.
|
||||
- العنوان: لا يتجاوز 5 كلمات، مثير للاهتمام
|
||||
- الجسم: لا يتجاوز 12 كلمة، يذكر التوفير الفعلي ويحفّز على الطلب الآن
|
||||
- اجعله طبيعياً كأنه يكتبه شخص حقيقي وليس روبوت
|
||||
|
||||
الخرج (JSON فقط، بدون أي شرح):
|
||||
{
|
||||
\"push_title\": \"...\",
|
||||
\"push_body\": \"...\"
|
||||
}
|
||||
";
|
||||
|
||||
return $this->callGemini($prompt, $model);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper: يُرسل prompt لـ Gemini ويُعيد JSON مُفكَّك
|
||||
*/
|
||||
private function callGemini(string $prompt, string $model): ?array {
|
||||
$apiUrl = $this->baseUrl . $model . ":generateContent?key=" . $this->apiKey;
|
||||
|
||||
$payload = [
|
||||
@@ -95,7 +151,7 @@ class SiroGeminiService {
|
||||
]);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$curlErr = curl_error($ch);
|
||||
$curlErr = curl_error($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user