Commit Graph

104 Commits

Author SHA1 Message Date
AmirReza Jamali 6cd8d7cc7f Update tenders recommendations view
continuous-integration/drone/push Build is passing
2026-06-29 13:27:21 +03:30
AmirReza Jamali 50e4f43738 feat: add AI recommendations flow for tenders
Implement company AI onboarding/recommendation models, services, repository, and tender UI integration with supporting tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 11:47:52 +03:30
AmirReza Jamali deda384aaa Harden AuthInterceptor: retry guard, single-flight refresh, shared pref keys
Addresses PR review on the auth interceptor:

- Guard against unbounded retry recursion: tag the replayed request with
  extra['auth_retried'] and skip the refresh/replay path on a second 401 so
  it can't recurse refresh -> replay indefinitely. Drop the redundant manual
  Authorization header on the replay (onRequest re-injects it).
- Fix the concurrent-refresh race: coalesce concurrent 401s onto a single
  in-flight refresh future so the rotating refresh token is only consumed
  once, instead of later refreshes posting an already-consumed token and
  spuriously logging out. (Chose the shared-future approach over
  QueuedInterceptor, which deadlocks with the replay-via-same-Dio pattern.)
- Centralise the 'bearer' / 'refresh_token' / 'customer_data' pref keys in
  a PrefKeys constants class used by the interceptor, network manager, auth
  service and router so they can't silently diverge.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 12:21:03 +03:30
AmirReza Jamali 86ed7bc665 Refactor tender detail models and UI components for improved clarity and functionality
- Updated the `Lot`, `Organization`, and `OrganizationAddress` models to enhance data mapping for tender details.
- Revised the `TenderData` model to include additional fields reflecting the API response structure.
- Improved UI components across desktop, mobile, and tablet views by commenting out unused sections for future use.
- Added new string constants for lot details in the tender information section.
- Enhanced unit tests to cover new model fields and ensure resilience to partial API payloads.
2026-06-05 19:42:09 +03:30
AmirReza Jamali dde66521f6 Add Docker support and enhance data models for tender details
- Introduced a .dockerignore file to optimize Docker builds by excluding unnecessary files.
- Updated the Dockerfile to use a Flutter base image, enabling web builds for the application.
- Added new data models for `Lot` and `OrganizationAddress` to represent tender details more accurately.
- Enhanced the `Organization` model to include `companyId` and a nested `address` field.
- Updated the `TenderData` model to include new fields such as `noticeTypeCode`, `formType`, and `lots`, reflecting the API response structure.
- Regenerated necessary code for data models to ensure compatibility with the updated structures.
2026-06-03 13:32:42 +03:30
AmirReza Jamali ae08b946f6 Refactor tenders pagination and enhance API integration
- Updated TendersRepository and TendersService to support cursor-based pagination.
- Modified TendersViewModel to manage pagination state and handle API responses more effectively.
- Replaced existing pagination UI components with a new WindowedPagination widget across desktop, mobile, and tablet views.
- Improved notification handling in the UI to reflect the presence of notifications dynamically.
- Adjusted main tenders slider to ensure proper rendering based on the current page index.
2026-05-26 18:30:46 +03:30
AmirReza Jamali 02057988dc Remove TaskStatus enum and related extensions, refactor BoardService and BoardResponse models for improved API integration, and update BoardViewModel to handle card movements between columns. Adjust UI components to reflect these changes and enhance error handling for card operations. 2026-05-26 10:41:34 +03:30
AmirReza Jamali 35af3e94ea Add liked tenders functionality to HomeRepository and ViewModel
- Integrated LikedTendersService into HomeRepository to fetch the count of user-liked tenders.
- Updated HomeViewModel to load and manage the userLikedTendersCount.
- Adjusted UI components across home pages to display the liked tenders count.
- Refactored date handling in date_utils.dart to improve timestamp parsing and validation.
- Enhanced unit tests for date utilities to cover new edge cases.
2026-05-24 18:23:37 +03:30
AmirReza Jamali 2515190576 Refactor date handling in tender data model and UI components. Added unixTimestampFromJson for parsing timestamps and updated timeConvertor to handle null values. Updated relevant model fields and UI to use the new parsing logic. Added unit tests for date utilities. 2026-05-24 15:28:47 +03:30
a.ghabeli 4525e06119 Merge pull request 'profile_changes' (#224) from profile_changes into develop
Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/224
2026-05-24 12:13:00 +03:30
amirrezaghabeli 00a3180499 edit key word api added 2026-04-25 12:13:49 +03:30
amirrezaghabeli 41bba5d32c fixed home 2026-04-16 09:10:37 +03:30
amirrezaghabeli a5b01ffac4 Update ProfileData model to include companies and enhance profile UI
- Added a new field for companies in the ProfileData model to store associated company information.
- Updated JSON serialization methods to handle the new companies field.
- Modified profile page views to display the user's full name and company name, replacing previous role and department fields for improved clarity.
- Introduced new string constants for full name and phone in ProfileStrings.
2025-11-23 10:47:51 +03:30
amirrezaghabeli abf1cc3f7d Add board service and repository, update routes and assets
- Introduced BoardService and BoardRepository for managing board-related data.
- Updated app routes to reflect the new board screen structure.
- Added new board-related assets to the asset manager.
- Refactored BoardScreen navigation to utilize the new provider structure.
2025-11-11 12:58:05 +03:30
amirrezaghabeli 38222afcfa Enhance authentication flow and user role management
- Updated AuthViewModel to hydrate user data from storage on initialization.
- Added method to AuthRepository for retrieving stored customer data.
- Enhanced AuthService to save and retrieve customer data from SharedPreferences.
- Refactored UI components to use context.watch for user role updates in MeetingTimeDialog, TenderDetailActions, and TendersPage.
- Improved navigation logic in final completion pages to handle user interactions more effectively.
2025-10-14 12:24:04 +03:30
amirrezaghabeli 13dbb5fae5 Enhance Customer model to include role attribute and update related components
- Added a new `role` attribute to the `Customer` model in `customer.dart` and updated the corresponding generated files.
- Modified the `AuthViewModel` to set the user role based on the logged-in user's role.
- Updated UI components in `TenderDetailActions` and `DesktopTendersPage` to conditionally render elements based on the user's role.
- Refactored tests to validate the new role attribute in the `Customer` model.
2025-10-14 09:12:24 +03:30
amirrezaghabeli f0cbe00b2f Update dependencies, enhance API endpoints, and refactor UI components
- Updated `pubspec.lock` to new package versions for `async`, `fake_async`, `leak_tracker`, and `vm_service`.
- Modified API endpoint for unread notifications to include `event_type=PUSH`.
- Refactored `CompletionOfDocumentsMobilePage` layout for improved structure.
- Simplified `DetailDropDown` widget by removing unnecessary animations.
- Updated `CommentBox` styling and adjusted padding for better UI consistency.
- Replaced deprecated `FormCard` implementation in final completion pages with a new widget structure.
- Enhanced button styles across various dialogs and pages for a cohesive design.
2025-10-13 16:10:18 +03:30
amirrezaghabeli 6d674a4a1b Update dependencies and enhance tender approval status handling
- Updated `pubspec.lock` to reflect new versions for several packages, including `async`, `fake_async`, `leak_tracker`, and `vm_service`.
- Modified `TenderApprovalStatus` enum to include a new status `approved`.
- Updated routing for `YourTendersRouteData` to accept a status parameter and pass it to the `YourTendersScreen`.
- Adjusted API calls and view models to utilize the new status handling, ensuring proper filtering and display of tender data based on approval status.
- Enhanced filter dialog to support new status options and improved user feedback in the UI for submitted and approved tenders.
2025-10-12 14:57:33 +03:30
amirrezaghabeli 42f2e93a8e Update .gitignore to exclude Firebase configuration files and refactor notification handling in the app. Removed redundant logging and notification data storage in SharedPreferences. Introduced NotificationCheckService and NotificationStateService for improved notification management. Updated view models and UI components to utilize the new services, enhancing notification state tracking and user experience. 2025-10-06 11:59:54 +03:30
amirrezaghabeli 06fc708e21 filter notifications based on event type which should be PUSH 2025-10-06 09:47:20 +03:30
amirrezaghabeli 1746ff81bd TM-164,165,167 bugs fixed 2025-09-30 12:14:05 +03:30
amirrezaghabeli 11ae01d76a firebase permission in login 2025-09-29 10:27:06 +03:30
amirrezaghabeli cc08a799ed Enhance FCM token retrieval with error handling in AuthService 2025-09-29 09:25:58 +03:30
amirrezaghabeli 6e82f2c73f mark single notification as read 2025-09-28 14:28:18 +03:30
amirrezaghabeli fd19e8c66c fixing conflict 2025-09-28 07:23:25 +03:30
amirrezaghabeli 26a29003d9 notification se more added 2025-09-27 15:31:40 +03:30
llsajjad fa974bc4a2 added new response data from notifications api 2025-09-27 13:02:12 +03:30
amirrezaghabeli e49c12b6cc merge with conflict 2025-09-25 12:48:32 +03:30
amirrezaghabeli eee1d9cdd8 feedback response model changes 2025-09-25 09:01:10 +03:30
a.ghabeli 060609c86a Merge pull request 'added_unread_allread_notification' (#157) from added_unread_allread_notification into main
Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/157
2025-09-24 08:43:05 +03:30
llsajjad 1901b84b2d Fixed CircularProgressIndicator color and position show in notification 2025-09-23 16:07:44 +03:30
llsajjad 1f60954c53 Added unread list api in notification 2025-09-23 15:49:30 +03:30
llsajjad 70066c26e8 Added markAll as read for notification 2025-09-23 15:01:42 +03:30
a.ghabeli f630c0d0ab Merge pull request 'splash_scren' (#156) from splash_scren into main
Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/156
2025-09-23 13:38:01 +03:30
amirrezaghabeli 801e170d7c sort and filter added to tenders web 2025-09-23 13:15:41 +03:30
a.ghabeli da3efc730a Merge pull request 'Added notification logic and view api' (#152) from logic_notification into main
Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/152
2025-09-22 16:09:10 +03:30
llsajjad cfc61daf71 Added notification logic and view api 2025-09-22 16:05:08 +03:30
amirrezaghabeli f1214d8a28 added splash screen 2025-09-22 16:04:49 +03:30
amirrezaghabeli e85ac8d649 forgot password screns logic fixed 2025-09-22 14:25:59 +03:30
amirrezaghabeli 0c2f953636 added fcm (device) token to login data 2025-09-22 09:47:47 +03:30
amirrezaghabeli f70229ab30 search logic added to desktop tenders 2025-09-22 09:28:09 +03:30
llsajjad 6e6f248702 Fixed pagination tenders for desktop and
added new config for notification
2025-09-21 14:03:32 +03:30
llsajjad 6a51c3656a Fixed password and otp bugs 2025-09-17 15:58:49 +03:30
amirrezaghabeli 43ef5bd48b merging branches 2025-09-17 10:15:41 +03:30
llsajjad e9a1d0c665 added api for forgot password otp 2025-09-16 17:18:51 +03:30
llsajjad 69980925ad added api for forgot password 2025-09-16 15:51:56 +03:30
amirrezaghabeli f6da74f739 removed hardcoded status feedback and submission mode 2025-09-08 12:22:08 +03:30
amirrezaghabeli 65822036c8 tender stat model naming fixed 2025-09-08 11:06:25 +03:30
amirrezaghabeli daba428d67 get like tenders refactor services 2025-09-08 10:48:05 +03:30
amirrezaghabeli 9a1ec0b34e fixed your tenders filters and service and home your tneders use your tenders service 2025-09-08 09:53:21 +03:30