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.
This commit is contained in:
AmirReza Jamali
2026-06-03 13:32:42 +03:30
parent 83b77c05ef
commit dde66521f6
35 changed files with 1362 additions and 659 deletions
+24 -19
View File
@@ -87,25 +87,30 @@ class DesktopNavigationWidget extends StatelessWidget {
iconPath: AssetsManager.tenders,
activeIconPath: AssetsManager.tendersActive,
),
const SizedBox(width: 24),
_navigationItem(
context: context,
text: TendersStrings.board,
isActive: currentIndex == 2,
onTap: () {
if (currentIndex == 2) {
return;
} else {
Router.neglect(
context,
() => const BoardRouteData().go(context),
);
// context.read<TendersViewModel>().getTenders();
}
},
iconPath: AssetsManager.board,
activeIconPath: AssetsManager.boardActive,
),
// AI-NOTE (for PR reviewer): Board tab disabled (commented, not
// removed) to hide the Board page from desktop navigation per request.
// The Board route/page itself is left intact; re-enable this nav item
// to bring the tab back. Note the tab indices of later items are
// unchanged because this block is fully commented out.
// const SizedBox(width: 24),
// _navigationItem(
// context: context,
// text: TendersStrings.board,
// isActive: currentIndex == 2,
// onTap: () {
// if (currentIndex == 2) {
// return;
// } else {
// Router.neglect(
// context,
// () => const BoardRouteData().go(context),
// );
// // context.read<TendersViewModel>().getTenders();
// }
// },
// iconPath: AssetsManager.board,
// activeIconPath: AssetsManager.boardActive,
// ),
const SizedBox(width: 24),
_navigationItem(
context: context,