diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index d59eecf..6a292df 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -5,6 +5,8 @@
+
+
'}
static String editDiscount(String id) => '$baseUrl/discount/edit/$id';
static String deleteDiscount(String id) => '$baseUrl/discount/delete/$id';
+
+ // ========== Order Endpoints ==========
+ /// Endpoint to add a new order.
+ /// Method: POST
+ /// Body: {'Discount': discountId, 'User': userId}
+ /// Headers: {'Authorization': 'Bearer '}
+ static const String addOrder = '$baseUrl/order/add';
}
\ No newline at end of file
diff --git a/lib/main.dart b/lib/main.dart
index e0ffce9..656da74 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -1,6 +1,7 @@
import 'package:business_panel/core/config/app_colors.dart';
import 'package:business_panel/presentation/auth/bloc/auth_bloc.dart';
import 'package:business_panel/presentation/home/bloc/home_bloc.dart';
+import 'package:business_panel/presentation/order/bloc/order_bloc.dart';
import 'package:business_panel/presentation/pages/splash_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
@@ -31,6 +32,7 @@ class MyApp extends StatelessWidget {
BlocProvider(
create: (context) => HomeBloc()..add(FetchDiscounts()),
),
+ BlocProvider(create: (context) => OrderBloc()),
],
child: MaterialApp(
title: 'Proxibuy',
diff --git a/lib/presentation/discount/bloc/discount_bloc.dart b/lib/presentation/discount/bloc/discount_bloc.dart
index 3134069..345d67c 100644
--- a/lib/presentation/discount/bloc/discount_bloc.dart
+++ b/lib/presentation/discount/bloc/discount_bloc.dart
@@ -1,4 +1,3 @@
-// lib/presentation/discount/bloc/discount_bloc.dart
import 'dart:developer';
import 'package:business_panel/core/config/api_config.dart';
@@ -6,10 +5,8 @@ import 'package:business_panel/core/services/token_storage_service.dart';
import 'package:business_panel/core/utils/logging_interceptor.dart';
import 'package:dio/dio.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
-import 'package:intl/intl.dart';
import 'discount_event.dart';
import 'discount_state.dart';
-import 'dart:convert'; // Import for jsonEncode
class DiscountBloc extends Bloc {
final Dio _dio = Dio();
@@ -156,6 +153,10 @@ class DiscountBloc extends Bloc {
discountId: event.discountId,
);
});
+
+ on((event, emit) {
+ emit(state.copyWith(clearErrorMessage: true));
+ });
}
Future _submitDiscountForm(
@@ -224,7 +225,7 @@ class DiscountBloc extends Bloc {
);
emit(state.copyWith(isSubmitting: false, isSuccess: true));
- } on DioException catch (e) {
+ }on DioException catch (e) {
emit(
state.copyWith(
isSubmitting: false,
diff --git a/lib/presentation/discount/bloc/discount_event.dart b/lib/presentation/discount/bloc/discount_event.dart
index fa28db6..2d5df61 100644
--- a/lib/presentation/discount/bloc/discount_event.dart
+++ b/lib/presentation/discount/bloc/discount_event.dart
@@ -58,8 +58,9 @@ class NotificationRadiusChanged extends DiscountEvent {
class SubmitDiscount extends DiscountEvent {}
-// Event for updating an existing discount
class UpdateDiscount extends DiscountEvent {
final String discountId;
UpdateDiscount(this.discountId);
-}
\ No newline at end of file
+}
+
+class ClearErrorMessage extends DiscountEvent {} // <-- این رویداد جدید را اضافه کنید
diff --git a/lib/presentation/discount/bloc/discount_state.dart b/lib/presentation/discount/bloc/discount_state.dart
index 769ad64..15d2b16 100644
--- a/lib/presentation/discount/bloc/discount_state.dart
+++ b/lib/presentation/discount/bloc/discount_state.dart
@@ -1,10 +1,7 @@
-// lib/presentation/discount/bloc/discount_state.dart
-
import 'package:equatable/equatable.dart';
class DiscountState extends Equatable {
final String? discountId;
- // *** CHANGE IS HERE: Storing image ID and URL together ***
final List