Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Hoàng Văn Đạt
mypoint_flutter_app
Commits
6b980613
Commit
6b980613
authored
Nov 14, 2025
by
DatHV
Browse files
update project structure
parent
bfff9e47
Changes
507
Show whitespace changes
Inline
Side-by-side
lib/
screen
/affiliate/model/affiliate_category_model.g.dart
→
lib/
features
/affiliate/model/affiliate_category_model.g.dart
View file @
6b980613
File moved
lib/
screen
/affiliate/model/affiliate_category_type.dart
→
lib/
features
/affiliate/model/affiliate_category_type.dart
View file @
6b980613
File moved
lib/
screen
/affiliate/model/affiliate_product_top_sale_model.dart
→
lib/
features
/affiliate/model/affiliate_product_top_sale_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
import
'package:json_annotation/json_annotation.dart'
;
import
'package:mypoint_flutter_app/directional/directional_screen.dart'
;
import
'package:mypoint_flutter_app/shared/navigation/directional_screen.dart'
;
import
'../../../app/routing/directional_action_type.dart'
;
import
'../../../directional/directional_action_type.dart'
;
part
'affiliate_product_top_sale_model.g.dart'
;
part
'affiliate_product_top_sale_model.g.dart'
;
@JsonSerializable
()
@JsonSerializable
()
...
...
lib/
screen
/affiliate/model/affiliate_product_top_sale_model.g.dart
→
lib/
features
/affiliate/model/affiliate_product_top_sale_model.g.dart
View file @
6b980613
File moved
lib/
screen
/affiliate/model/cashback_overview_model.dart
→
lib/
features
/affiliate/model/cashback_overview_model.dart
View file @
6b980613
File moved
lib/
screen
/affiliate/model/cashback_overview_model.g.dart
→
lib/
features
/affiliate/model/cashback_overview_model.g.dart
View file @
6b980613
File moved
lib/
screen
/affiliate/sub_widget/build_affiliate_brand.dart
→
lib/
features
/affiliate/sub_widget/build_affiliate_brand.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/string_extension.dart'
;
import
'../../../
resources
/base_color.dart'
;
import
'../../../
core/theme
/base_color.dart'
;
import
'../../../shared/router_gage.dart'
;
import
'../../../shared/router_gage.dart'
;
import
'../../../widgets/image_loader.dart'
;
import
'../../../
shared/
widgets/image_loader.dart'
;
import
'../model/affiliate_brand_model.dart'
;
import
'../model/affiliate_brand_model.dart'
;
class
AffiliateBrand
extends
StatelessWidget
{
class
AffiliateBrand
extends
StatelessWidget
{
...
@@ -65,7 +65,7 @@ class AffiliateBrand extends StatelessWidget {
...
@@ -65,7 +65,7 @@ class AffiliateBrand extends StatelessWidget {
Widget
buildAffiliateBrandItem
(
AffiliateBrandModel
brand
)
{
Widget
buildAffiliateBrandItem
(
AffiliateBrandModel
brand
)
{
return
LayoutBuilder
(
return
LayoutBuilder
(
builder:
(
context
,
constraints
)
{
builder:
(
context
,
constraints
)
{
final
double
imageWidth
=
constraints
.
maxWidth
/
2
;
final
double
imageWidth
=
constraints
.
maxWidth
/
1.9
;
return
GestureDetector
(
return
GestureDetector
(
onTap:
()
{
onTap:
()
{
Get
.
toNamed
(
affiliateBrandDetailScreen
,
arguments:
{
"brandId"
:
brand
.
brandId
});
Get
.
toNamed
(
affiliateBrandDetailScreen
,
arguments:
{
"brandId"
:
brand
.
brandId
});
...
@@ -80,22 +80,18 @@ Widget buildAffiliateBrandItem(AffiliateBrandModel brand) {
...
@@ -80,22 +80,18 @@ Widget buildAffiliateBrandItem(AffiliateBrandModel brand) {
child:
Column
(
child:
Column
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
children:
[
// SizedBox(
SizedBox
(
// width: imageWidth,
width:
imageWidth
,
// height: imageWidth, // ✅ 1:1 tỉ lệ
height:
imageWidth
,
// child: ClipOval(
child:
ClipRRect
(
// child: Image.network(
borderRadius:
BorderRadius
.
circular
(
imageWidth
),
// brand.logo ?? '',
child:
loadNetworkImage
(
// fit: BoxFit.contain,
// errorBuilder: (_, __, ___) => const Icon(Icons.broken_image),
// ),
// ),
// ),
loadNetworkImage
(
url:
brand
.
logo
??
''
,
url:
brand
.
logo
??
''
,
width:
imageWidth
,
width:
imageWidth
,
height:
imageWidth
,
height:
imageWidth
,
fit:
BoxFit
.
contain
,
fit:
BoxFit
.
cover
,
),
),
),
),
const
SizedBox
(
height:
4
),
const
SizedBox
(
height:
4
),
Text
(
Text
(
...
...
lib/
screen
/affiliate/sub_widget/build_affiliate_category.dart
→
lib/
features
/affiliate/sub_widget/build_affiliate_category.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'../../../
resources
/base_color.dart'
;
import
'../../../
core/theme
/base_color.dart'
;
import
'../model/affiliate_category_model.dart'
;
import
'../model/affiliate_category_model.dart'
;
class
AffiliateCategory
extends
StatelessWidget
{
class
AffiliateCategory
extends
StatelessWidget
{
...
@@ -54,7 +54,7 @@ class AffiliateCategory extends StatelessWidget {
...
@@ -54,7 +54,7 @@ class AffiliateCategory extends StatelessWidget {
Image
.
asset
(
'assets/images/cashback/
${category.icon}
.png'
,
width:
imageWidth
,
height:
imageWidth
,),
Image
.
asset
(
'assets/images/cashback/
${category.icon}
.png'
,
width:
imageWidth
,
height:
imageWidth
,),
const
SizedBox
(
height:
4
),
const
SizedBox
(
height:
4
),
Text
(
Text
(
category
.
name
??
''
,
category
.
name
,
textAlign:
TextAlign
.
center
,
textAlign:
TextAlign
.
center
,
maxLines:
2
,
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
overflow:
TextOverflow
.
ellipsis
,
...
...
lib/
screen
/affiliate/sub_widget/build_affiliate_product_topsale.dart
→
lib/
features
/affiliate/sub_widget/build_affiliate_product_topsale.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:intl/intl.dart'
;
import
'package:intl/intl.dart'
;
import
'package:mypoint_flutter_app/extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/string_extension.dart'
;
import
'../model/affiliate_product_top_sale_model.dart'
;
import
'../model/affiliate_product_top_sale_model.dart'
;
class
AffiliateProductTopSale
extends
StatelessWidget
{
class
AffiliateProductTopSale
extends
StatelessWidget
{
...
@@ -72,7 +72,7 @@ class AffiliateProductTopSale extends StatelessWidget {
...
@@ -72,7 +72,7 @@ class AffiliateProductTopSale extends StatelessWidget {
child:
Image
.
network
(
child:
Image
.
network
(
imageUrl
,
imageUrl
,
fit:
BoxFit
.
cover
,
fit:
BoxFit
.
cover
,
errorBuilder:
(
_
,
_
_
,
__
_
)
=>
Image
.
asset
(
'assets/images/
ic_logo
.png'
),
errorBuilder:
(
_
,
_
,
_
)
=>
Image
.
asset
(
'assets/images/
bg_default_11
.png'
),
),
),
),
),
),
),
...
@@ -93,7 +93,7 @@ class AffiliateProductTopSale extends StatelessWidget {
...
@@ -93,7 +93,7 @@ class AffiliateProductTopSale extends StatelessWidget {
children:
[
children:
[
const
TextSpan
(
text:
"Hoàn đến: "
),
const
TextSpan
(
text:
"Hoàn đến: "
),
TextSpan
(
TextSpan
(
text:
"
${(commission
?? ''
).toNum()?.toString() ?? ''}
%"
,
text:
"
${(commission).toNum()?.toString() ?? ''}
%"
,
style:
const
TextStyle
(
color:
Colors
.
orange
,
fontWeight:
FontWeight
.
bold
,
fontSize:
14
),
style:
const
TextStyle
(
color:
Colors
.
orange
,
fontWeight:
FontWeight
.
bold
,
fontSize:
14
),
),
),
],
],
...
...
lib/
screen
/affiliate_brand_detail/affiliate_brand_detail_screen.dart
→
lib/
features
/affiliate_brand_detail/affiliate_brand_detail_screen.dart
View file @
6b980613
import
'dart:math'
;
import
'dart:math'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:mypoint_flutter_app/extensions/num_extension.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/num_extension.dart'
;
import
'../../
../base
/base_screen.dart'
;
import
'../../
shared/widgets/base_view
/base_screen.dart'
;
import
'../../
../base
/basic_state.dart'
;
import
'../../
shared/widgets/base_view
/basic_state.dart'
;
import
'../../
resources
/base_color.dart'
;
import
'../../
core/theme
/base_color.dart'
;
import
'../../widgets/back_button.dart'
;
import
'../../
shared/
widgets/back_button.dart'
;
import
'../../widgets/image_loader.dart'
;
import
'../../
shared/
widgets/image_loader.dart'
;
import
'../../widgets/measure_size.dart'
;
import
'../../
shared/
widgets/measure_size.dart'
;
import
'affiliate_brand_detail_tip_box.dart'
;
import
'affiliate_brand_detail_tip_box.dart'
;
import
'affiliate_brand_detail_viewmodel.dart'
;
import
'affiliate_brand_detail_viewmodel.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
...
@@ -250,7 +250,7 @@ class _AffiliateBrandDetailScreenState extends BaseState<AffiliateBrandDetailScr
...
@@ -250,7 +250,7 @@ class _AffiliateBrandDetailScreenState extends BaseState<AffiliateBrandDetailScr
style:
const
TextStyle
(
color:
Colors
.
black
,
fontSize:
13
),
style:
const
TextStyle
(
color:
Colors
.
black
,
fontSize:
13
),
children:
[
children:
[
TextSpan
(
TextSpan
(
text:
detail
.
showCommision
??
''
,
text:
detail
.
showCommision
,
style:
const
TextStyle
(
color:
Colors
.
deepOrangeAccent
,
fontWeight:
FontWeight
.
bold
),
style:
const
TextStyle
(
color:
Colors
.
deepOrangeAccent
,
fontWeight:
FontWeight
.
bold
),
),
),
],
],
...
@@ -262,7 +262,7 @@ class _AffiliateBrandDetailScreenState extends BaseState<AffiliateBrandDetailScr
...
@@ -262,7 +262,7 @@ class _AffiliateBrandDetailScreenState extends BaseState<AffiliateBrandDetailScr
const
Icon
(
Icons
.
check_circle
,
color:
Colors
.
green
,
size:
16
),
const
Icon
(
Icons
.
check_circle
,
color:
Colors
.
green
,
size:
16
),
const
SizedBox
(
width:
2
),
const
SizedBox
(
width:
2
),
Text
(
Text
(
'
${detail
?
.quantitySold?.money(CurrencyUnit.noneSpace) ?? '1'}
đơn hàng'
,
'
${detail.quantitySold?.money(CurrencyUnit.noneSpace) ?? '1'}
đơn hàng'
,
style:
TextStyle
(
color:
Colors
.
green
,
fontSize:
13
),
style:
TextStyle
(
color:
Colors
.
green
,
fontSize:
13
),
),
),
],
],
...
...
lib/
screen
/affiliate_brand_detail/affiliate_brand_detail_tag_list.dart
→
lib/
features
/affiliate_brand_detail/affiliate_brand_detail_tag_list.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'models/affiliate_brand_detail_model.dart'
;
import
'models/affiliate_brand_detail_model.dart'
;
class
AffiliateTagListScrollable
extends
StatelessWidget
{
class
AffiliateTagListScrollable
extends
StatelessWidget
{
...
@@ -81,65 +80,3 @@ class AffiliateTagListScrollable extends StatelessWidget {
...
@@ -81,65 +80,3 @@ class AffiliateTagListScrollable extends StatelessWidget {
);
);
}
}
}
}
// import 'package:flutter/material.dart';
//
// import 'models/affiliate_brand_detail_model.dart';
//
// class AffiliateTagList extends StatelessWidget {
// final List<AffiliateBrandCategoryModel> items;
//
// const AffiliateTagList({super.key, required this.items});
//
// @override
// Widget build(BuildContext context) {
// int maxLines = 2;
// if (items.length > 20) {
// maxLines = 3;
// } else if (items.length < 10) {
// maxLines = 1;
// }
//
// return Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// const Padding(
// padding: EdgeInsets.all(8.0),
// child: Text(
// "Tỉ lệ hoàn điểm",
// style: TextStyle(fontWeight: FontWeight.bold),
// ),
// ),
// Wrap(
// spacing: 8,
// runSpacing: 8,
// children: items
// .take(maxLines * 3) // optional: limit total number if needed
// .map(
// (item) => Container(
// padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
// decoration: BoxDecoration(
// color: Colors.grey.shade100,
// borderRadius: BorderRadius.circular(16),
// ),
// child: RichText(
// text: TextSpan(
// text: '${item.categoryName}: ',
// style: const TextStyle(color: Colors.black87, fontSize: 14),
// children: [
// TextSpan(
// text: item.commision ?? '',
// style: const TextStyle(color: Colors.orange, fontSize: 14),
// ),
// ],
// ),
// ),
// ),
// )
// .toList(),
// ),
// ],
// );
// }
// }
lib/
screen
/affiliate_brand_detail/affiliate_brand_detail_tip_box.dart
→
lib/
features
/affiliate_brand_detail/affiliate_brand_detail_tip_box.dart
View file @
6b980613
File moved
lib/
screen
/affiliate_brand_detail/affiliate_brand_detail_viewmodel.dart
→
lib/
features
/affiliate_brand_detail/affiliate_brand_detail_viewmodel.dart
View file @
6b980613
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/app/config/constants.dart'
;
import
'package:mypoint_flutter_app/networking/api/affiliate_api.dart'
import
'package:mypoint_flutter_app/core/network/api/affiliate_api.dart'
deferred
as
affiliate_api
;
deferred
as
affiliate_api
;
import
'../../core/network/restful_api_viewmodel.dart'
;
import
'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart'
;
import
'../../networking/restful_api_viewmodel.dart'
;
import
'models/affiliate_brand_detail_model.dart'
;
import
'models/affiliate_brand_detail_model.dart'
;
class
AffiliateBrandDetailViewModel
extends
RestfulApiViewModel
{
class
AffiliateBrandDetailViewModel
extends
RestfulApiViewModel
{
...
@@ -13,8 +10,7 @@ class AffiliateBrandDetailViewModel extends RestfulApiViewModel {
...
@@ -13,8 +10,7 @@ class AffiliateBrandDetailViewModel extends RestfulApiViewModel {
AffiliateBrandDetailViewModel
(
this
.
brandId
);
AffiliateBrandDetailViewModel
(
this
.
brandId
);
void
Function
(
String
message
)?
onShowAlertError
;
void
Function
(
String
message
)?
onShowAlertError
;
final
Rxn
<
AffiliateBrandDetailModel
>
brandDetailData
=
final
Rxn
<
AffiliateBrandDetailModel
>
brandDetailData
=
Rxn
<
AffiliateBrandDetailModel
>();
Rxn
<
AffiliateBrandDetailModel
>();
bool
_affiliateLibLoaded
=
false
;
bool
_affiliateLibLoaded
=
false
;
...
...
lib/
screen
/affiliate_brand_detail/affiliate_brand_list_screen.dart
→
lib/
features
/affiliate_brand_detail/affiliate_brand_list_screen.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
import
'../../
shared/
widgets/custom_navigation_bar.dart'
;
import
'../affiliate/model/affiliate_brand_model.dart'
;
import
'../affiliate/model/affiliate_brand_model.dart'
;
import
'../affiliate/sub_widget/build_affiliate_brand.dart'
;
import
'../affiliate/sub_widget/build_affiliate_brand.dart'
;
...
...
lib/
screen
/affiliate_brand_detail/affiliate_category_grid_screen.dart
→
lib/
features
/affiliate_brand_detail/affiliate_category_grid_screen.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'../../
resources
/base_color.dart'
;
import
'../../
core/theme
/base_color.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
import
'../../
shared/
widgets/custom_navigation_bar.dart'
;
import
'../affiliate/affiliate_popup_brands.dart'
;
import
'../affiliate/affiliate_popup_brands.dart'
;
import
'../affiliate/model/affiliate_category_model.dart'
;
import
'../affiliate/model/affiliate_category_model.dart'
;
import
'affiliate_category_grid_viewmodel.dart'
;
import
'affiliate_category_grid_viewmodel.dart'
;
...
@@ -67,7 +67,7 @@ class _AffiliateCategoryGridScreenState extends State<AffiliateCategoryGridScree
...
@@ -67,7 +67,7 @@ class _AffiliateCategoryGridScreenState extends State<AffiliateCategoryGridScree
Image
.
asset
(
'assets/images/cashback/
${category.icon}
.png'
,
width:
imageWidth
,
height:
imageWidth
),
Image
.
asset
(
'assets/images/cashback/
${category.icon}
.png'
,
width:
imageWidth
,
height:
imageWidth
),
const
SizedBox
(
height:
4
),
const
SizedBox
(
height:
4
),
Text
(
Text
(
category
.
name
??
''
,
category
.
name
,
textAlign:
TextAlign
.
center
,
textAlign:
TextAlign
.
center
,
maxLines:
2
,
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
overflow:
TextOverflow
.
ellipsis
,
...
...
lib/
screen
/affiliate_brand_detail/affiliate_category_grid_viewmodel.dart
→
lib/
features
/affiliate_brand_detail/affiliate_category_grid_viewmodel.dart
View file @
6b980613
import
'package:get/get_rx/src/rx_types/rx_types.dart'
;
import
'package:mypoint_flutter_app/core/network/api/affiliate_api.dart'
deferred
as
affiliate_api
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'../../core/network/restful_api_viewmodel.dart'
;
import
'package:mypoint_flutter_app/networking/api/affiliate_api.dart'
deferred
as
affiliate_api
;
import
'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart'
;
import
'../../networking/restful_api_viewmodel.dart'
;
import
'../affiliate/model/affiliate_brand_model.dart'
;
import
'../affiliate/model/affiliate_brand_model.dart'
;
import
'../affiliate/model/affiliate_category_model.dart'
;
import
'../affiliate/model/affiliate_category_model.dart'
;
class
AffiliateCategoryGridViewModel
extends
RestfulApiViewModel
{
class
AffiliateCategoryGridViewModel
extends
RestfulApiViewModel
{
void
Function
((
List
<
AffiliateBrandModel
>,
String
)
data
)?
void
Function
((
List
<
AffiliateBrandModel
>,
String
)
data
)?
onShowAffiliateBrandPopup
;
onShowAffiliateBrandPopup
;
void
Function
(
String
message
)?
onShowAlertError
;
void
Function
(
String
message
)?
onShowAlertError
;
bool
_affiliateLibLoaded
=
false
;
bool
_affiliateLibLoaded
=
false
;
...
@@ -20,20 +15,16 @@ class AffiliateCategoryGridViewModel extends RestfulApiViewModel {
...
@@ -20,20 +15,16 @@ class AffiliateCategoryGridViewModel extends RestfulApiViewModel {
_affiliateLibLoaded
=
true
;
_affiliateLibLoaded
=
true
;
}
}
Future
<
void
>
affiliateBrandGetListBuyCategory
(
Future
<
void
>
affiliateBrandGetListBuyCategory
(
AffiliateCategoryModel
category
)
async
{
AffiliateCategoryModel
category
,
)
async
{
await
callApi
<
List
<
AffiliateBrandModel
>>(
await
callApi
<
List
<
AffiliateBrandModel
>>(
request:
()
async
{
request:
()
async
{
await
_ensureAffiliateLibraryLoaded
();
await
_ensureAffiliateLibraryLoaded
();
final
api
=
affiliate_api
.
AffiliateApi
(
client
);
final
api
=
affiliate_api
.
AffiliateApi
(
client
);
return
api
.
affiliateBrandGetList
(
return
api
.
affiliateBrandGetList
(
categoryCode:
AffiliateCategoryModel
.
codeToJson
(
category
.
code
));
categoryCode:
AffiliateCategoryModel
.
codeToJson
(
category
.
code
),
);
},
},
onSuccess:
(
data
,
_
)
{
onSuccess:
(
data
,
_
)
{
if
(
data
.
isNotEmpty
)
{
if
(
data
.
isNotEmpty
)
{
onShowAffiliateBrandPopup
?.
call
((
data
,
category
.
name
??
''
));
onShowAffiliateBrandPopup
?.
call
((
data
,
category
.
name
));
}
}
},
},
onFailure:
(
msg
,
_
,
_
)
async
{
onFailure:
(
msg
,
_
,
_
)
async
{
...
...
lib/
screen
/affiliate_brand_detail/models/affiliate_brand_detail_model.dart
→
lib/
features
/affiliate_brand_detail/models/affiliate_brand_detail_model.dart
View file @
6b980613
import
'package:mypoint_flutter_app/
directional
/directional_action_type.dart'
;
import
'package:mypoint_flutter_app/
app/routing
/directional_action_type.dart'
;
import
'../../../config
s
/constants.dart'
;
import
'../../../
app/
config/constants.dart'
;
import
'../../../
direc
tion
al
/directional_screen.dart'
;
import
'../../../
shared/naviga
tion/directional_screen.dart'
;
class
AffiliateBrandDetailModel
{
class
AffiliateBrandDetailModel
{
final
String
?
commision
;
final
String
?
commision
;
...
...
lib/
screen/home
/models/brand_category_model.dart
→
lib/
features/affiliate_brand_detail
/models/brand_category_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
import
'package:json_annotation/json_annotation.dart'
;
part
'brand_category_model.g.dart'
;
// Nếu dùng build_runner
part
'brand_category_model.g.dart'
;
// Nếu dùng build_runner
@JsonSerializable
()
@JsonSerializable
()
class
BrandCategoryModel
{
class
BrandCategoryModel
{
final
String
?
id
;
final
String
?
id
;
...
...
lib/
screen/home
/models/brand_category_model.g.dart
→
lib/
features/affiliate_brand_detail
/models/brand_category_model.g.dart
View file @
6b980613
// GENERATED CODE - DO NOT MODIFY BY HAND
// GENERATED CODE - DO NOT MODIFY BY HAND
part of
'brand_category_model.dart'
;
part of
'
../../affiliate_brand_detail/models/
brand_category_model.dart'
;
// **************************************************************************
// **************************************************************************
// JsonSerializableGenerator
// JsonSerializableGenerator
...
...
lib/
screen/home
/models/brand_model.dart
→
lib/
features/affiliate_brand_detail
/models/brand_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
import
'package:json_annotation/json_annotation.dart'
;
import
'brand_category_model.dart'
;
import
'brand_category_model.dart'
;
import
'image_model.dart'
;
import
'
../../home/models/
image_model.dart'
;
part
'brand_model.g.dart'
;
part
'brand_model.g.dart'
;
@JsonSerializable
()
@JsonSerializable
()
...
...
Prev
1
2
3
4
5
6
7
8
9
…
26
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment