Update Saqel Platform: 2026-09-05 23:24:49

This commit is contained in:
Hamza-Ayed
2026-09-05 23:24:49 +03:00
parent 0e5be7adbb
commit 0f424062fe
20 changed files with 2132 additions and 324 deletions
+36 -7
View File
@@ -2,21 +2,23 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'core/theme/teacher_theme.dart';
import 'data/repositories/teacher_repository.dart';
import 'logic/cubits/teacher_auth_cubit.dart';
import 'logic/cubits/teacher_studio_cubit.dart';
import 'logic/cubits/teacher_monetization_cubit.dart';
import 'logic/cubits/teacher_qna_cubit.dart';
import 'presentation/screens/auth/teacher_auth_screen.dart';
import 'presentation/screens/teacher_main_shell.dart';
/**
* ==============================================================================
* SAQEL ENTERPRISE (EDTECH 2.0) - TEACHER STUDIO APP
* SAQEL ENTERPRISE (EDTECH 2.0) - TEACHER STUDIO APP (ZERO-MOCK PRODUCTION)
* ==============================================================================
*
* نقطة انطلاق تطبيق استوديو المعلم المعتمد — بنية معمارية رشيقة ومنظمة بنمط Cubit:
* - فحص جودة الحصص وبوابة التركيز الإدراكي (MIT 20-25 Min Quality Gate)
* - نموذج التسعير المزدوج وتقاسم العوائد الثلاثي (55% / 15% / 30%)
* - سحب المستحقات الفوري عبر كليك (CliQ Payout Direct Rail)
* - الواجبات المؤتمتة وغرفة الشكوك والردود الصوتية السقراطية 🎙️.
* نقطة انطلاق تطبيق استوديو المعلم المعتمد:
* - بوابة مصادقة حقيقية عبر الواتساب (WhatsApp OTP via Nabeh Gateway)
* - استعلام وتحديد الصفوف والمواد التي يدرسها المعلم
* - غرفة المحادثات الحية والردود الصوتية السقراطية (Socratic Voice Notes)
* - بث مقاطع صوتية توجيهية لكافة طلبة الشعبة عبر الويب سوكت (0ms Broadcast).
*/
void main() {
WidgetsFlutterBinding.ensureInitialized();
@@ -35,6 +37,9 @@ class SaqelTeacherApp extends StatelessWidget {
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider<TeacherAuthCubit>(
create: (_) => TeacherAuthCubit(repository: repository)..checkSession(),
),
BlocProvider<TeacherStudioCubit>(
create: (_) => TeacherStudioCubit(repository: repository),
),
@@ -49,8 +54,32 @@ class SaqelTeacherApp extends StatelessWidget {
title: 'صَقِل — استوديو المعلم المعتمد',
debugShowCheckedModeBanner: false,
theme: TeacherTheme.darkTheme,
home: const TeacherMainShell(),
home: const TeacherAuthGate(),
),
);
}
}
/// Global Auth Gate: Auto-Directs to TeacherMainShell if Logged In, or TeacherAuthScreen
class TeacherAuthGate extends StatelessWidget {
const TeacherAuthGate({super.key});
@override
Widget build(BuildContext context) {
return BlocBuilder<TeacherAuthCubit, TeacherAuthState>(
builder: (context, state) {
if (state is TeacherAuthenticated) {
return TeacherMainShell(initialProfile: state.profile);
} else if (state is TeacherAuthLoading || state is TeacherAuthInitial) {
return const Scaffold(
backgroundColor: TeacherTheme.backgroundDark,
body: Center(
child: CircularProgressIndicator(color: TeacherTheme.emeraldPrimary),
),
);
}
return const TeacherAuthScreen();
},
);
}
}