Update Saqel Platform: 2026-09-08 18:44:36

This commit is contained in:
Hamza-Ayed
2026-09-08 18:44:36 +03:00
parent dbbd7786f2
commit dd8b95035f
4 changed files with 38 additions and 24 deletions
+3
View File
@@ -0,0 +1,3 @@
description: This file stores settings for Dart & Flutter DevTools.
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
extensions:
@@ -113,7 +113,7 @@ class TeacherRepository {
Uri.parse('$baseUrl${AppConfig.meEndpoint}'),
headers: headers,
)
.timeout(const Duration(seconds: 4));
.timeout(const Duration(seconds: 30));
if (response.statusCode == 200) {
return json.decode(response.body);
@@ -134,19 +134,21 @@ class TeacherRepository {
Uri.parse('$baseUrl${AppConfig.profileStatusEndpoint}'),
headers: headers,
)
.timeout(const Duration(seconds: 4));
.timeout(const Duration(seconds: 30));
final decoded = json.decode(response.body);
if (response.statusCode == 200) {
final decoded = json.decode(response.body);
if (decoded['status'] == 'success') {
return TeacherProfileModel.fromJson(decoded);
}
}
throw StateError(decoded['message']?.toString() ??
'فشل تحميل ملف المعلم (HTTP ${response.statusCode}).');
} catch (e) {
AppLogger.log('getProfileStatus notice: $e', tag: 'TEACHER_REPO');
if (e is StateError) rethrow;
throw StateError('تعذر الاتصال بملف المعلم: $e');
}
throw StateError('تعذر تحميل ملف المعلم من الخادم.');
}
Future<TeacherProfileModel> setupProfile({
@@ -569,10 +571,11 @@ class TeacherRepository {
totalLessons:
int.tryParse(c['lessons_total']?.toString() ?? '0') ?? 0,
militaryStudents: (c['military_students'] as num?)?.toInt() ?? 0,
externalSubscribers: (c['external_subscribers'] as num?)?.toInt() ?? 0,
priceJod:
double.tryParse(c['price_jod']?.toString() ?? '') ?? 0,
netRevenueJod: double.tryParse(c['net_revenue_jod']?.toString() ?? '') ?? 0,
externalSubscribers:
(c['external_subscribers'] as num?)?.toInt() ?? 0,
priceJod: double.tryParse(c['price_jod']?.toString() ?? '') ?? 0,
netRevenueJod:
double.tryParse(c['net_revenue_jod']?.toString() ?? '') ?? 0,
);
}).toList();
}
@@ -77,21 +77,29 @@ class _TeacherAuthScreenState extends State<TeacherAuthScreen> {
SaqelToast.showError(context, 'يرجى إدخال رمز التحقق المكون من 6 أرقام');
return;
}
if (_fullNameController.text.trim().isEmpty ||
_selectedSubject == null ||
_schoolController.text.trim().isEmpty ||
_selectedGrades.isEmpty) {
final hasAnyProfileData = _fullNameController.text.trim().isNotEmpty ||
_selectedSubject != null ||
_schoolController.text.trim().isNotEmpty ||
_selectedGrades.isNotEmpty;
final hasCompleteProfileData = _fullNameController.text.trim().isNotEmpty &&
_selectedSubject != null &&
_schoolController.text.trim().isNotEmpty &&
_selectedGrades.isNotEmpty;
if (hasAnyProfileData && !hasCompleteProfileData) {
SaqelToast.showError(context,
'أكمل الاسم والمادة والمدرسة وصفًا واحدًا على الأقل قبل التحقق');
'إما اترك بيانات الملف فارغة لتسجيل الدخول، أو أكملها كلها لإنشاء ملف معلم جديد');
return;
}
context.read<TeacherAuthCubit>().verifyOtp(
phone,
otp,
fullName: _fullNameController.text.trim(),
specialization: _selectedSubject,
schoolName: _schoolController.text.trim(),
gradesTaught: _selectedGrades.toList(),
fullName:
hasCompleteProfileData ? _fullNameController.text.trim() : null,
specialization: hasCompleteProfileData ? _selectedSubject : null,
schoolName:
hasCompleteProfileData ? _schoolController.text.trim() : null,
gradesTaught:
hasCompleteProfileData ? _selectedGrades.toList() : null,
);
}
+6 -6
View File
@@ -340,10 +340,10 @@ packages:
dependency: transitive
description:
name: matcher
sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6"
url: "https://pub.dev"
source: hosted
version: "0.12.19"
version: "0.12.18"
material_color_utilities:
dependency: transitive
description:
@@ -356,10 +356,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349"
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
url: "https://pub.dev"
source: hosted
version: "1.18.0"
version: "1.17.0"
nested:
dependency: transitive
description:
@@ -585,10 +585,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e"
sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636"
url: "https://pub.dev"
source: hosted
version: "0.7.11"
version: "0.7.9"
typed_data:
dependency: transitive
description: