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
Hide whitespace changes
Inline
Side-by-side
lib/
screen
/location_address/location_address_screen.dart
→
lib/
features
/location_address/location_address_screen.dart
View file @
6b980613
import
'package:flutter/cupertino.dart'
;
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/
resources
/base_color.dart'
;
import
'package:mypoint_flutter_app/
core/theme
/base_color.dart'
;
import
'../../widgets/custom_navigation_bar.dart'
;
import
'../../
shared/
widgets/custom_navigation_bar.dart'
;
import
'location_address_viewmodel.dart'
;
import
'location_address_viewmodel.dart'
;
enum
LocationAddressType
{
enum
LocationAddressType
{
...
@@ -96,7 +95,7 @@ class _LocationAddressScreenState extends State<LocationAddressScreen> {
...
@@ -96,7 +95,7 @@ class _LocationAddressScreenState extends State<LocationAddressScreen> {
return
ListView
.
separated
(
return
ListView
.
separated
(
controller:
scrollController
,
controller:
scrollController
,
itemCount:
items
.
length
,
itemCount:
items
.
length
,
separatorBuilder:
(
_
,
_
_
)
=>
const
Divider
(
height:
1
),
separatorBuilder:
(
_
,
_
)
=>
const
Divider
(
height:
1
),
itemBuilder:
(
context
,
index
)
{
itemBuilder:
(
context
,
index
)
{
final
item
=
items
[
index
];
final
item
=
items
[
index
];
final
isSelected
=
viewModel
.
selectedCode
.
value
==
item
.
code
;
final
isSelected
=
viewModel
.
selectedCode
.
value
==
item
.
code
;
...
...
lib/
screen
/location_address/location_address_viewmodel.dart
→
lib/
features
/location_address/location_address_viewmodel.dart
View file @
6b980613
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/network
ing
/api/location_api.dart'
deferred
as
location_api
;
import
'package:mypoint_flutter_app/
core/
network/api/location_api.dart'
deferred
as
location_api
;
import
'../../
base
/base_response_model.dart'
;
import
'../../
shared/widgets/base_view
/base_response_model.dart'
;
import
'../../network
ing
/restful_api_viewmodel.dart'
;
import
'../../
core/
network/restful_api_viewmodel.dart'
;
import
'location_address_screen.dart'
;
import
'location_address_screen.dart'
;
import
'models/district_address_model.dart'
;
import
'models/district_address_model.dart'
;
import
'models/province_address_model.dart'
;
import
'models/province_address_model.dart'
;
...
...
lib/
screen
/location_address/models/district_address_model.dart
→
lib/
features
/location_address/models/district_address_model.dart
View file @
6b980613
File moved
lib/
screen
/location_address/models/province_address_model.dart
→
lib/
features
/location_address/models/province_address_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
import
'package:json_annotation/json_annotation.dart'
;
part
'province_address_model.g.dart'
;
part
'province_address_model.g.dart'
;
...
...
lib/
screen
/location_address/models/province_address_model.g.dart
→
lib/
features
/location_address/models/province_address_model.g.dart
View file @
6b980613
File moved
lib/
screen
/login/login_screen.dart
→
lib/
features
/login/login_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
'../../
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
'../../
permission
/biometric_manager.dart'
;
import
'../../
core/services
/biometric_manager.dart'
;
import
'../../
resources
/base_color.dart'
;
import
'../../
core/theme
/base_color.dart'
;
import
'../../widgets/alert/custom_alert_dialog.dart'
;
import
'../../
shared/
widgets/alert/custom_alert_dialog.dart'
;
import
'../../widgets/alert/data_alert_model.dart'
;
import
'../../
shared/
widgets/alert/data_alert_model.dart'
;
import
'../../widgets/back_button.dart'
;
import
'../../
shared/
widgets/back_button.dart'
;
import
'../../widgets/support_button.dart'
;
import
'../../
shared/
widgets/support_button.dart'
;
import
'login_viewmodel.dart'
;
import
'login_viewmodel.dart'
;
class
LoginScreen
extends
BaseScreen
{
class
LoginScreen
extends
BaseScreen
{
...
...
lib/
screen
/login/login_viewmodel.dart
→
lib/
features
/login/login_viewmodel.dart
View file @
6b980613
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/config
s
/constants.dart'
;
import
'package:mypoint_flutter_app/
app/
config/constants.dart'
;
import
'package:mypoint_flutter_app/network
ing
/restful_api_client_all_request.dart'
;
import
'package:mypoint_flutter_app/
core/
network/restful_api_client_all_request.dart'
;
import
'package:mypoint_flutter_app/
screen
/otp/forgot_pass_otp_repository.dart'
;
import
'package:mypoint_flutter_app/
features
/otp/forgot_pass_otp_repository.dart'
;
import
'package:mypoint_flutter_app/
screen
/otp/otp_screen.dart'
;
import
'package:mypoint_flutter_app/
features
/otp/otp_screen.dart'
;
import
'package:mypoint_flutter_app/shared/router_gage.dart'
;
import
'package:mypoint_flutter_app/shared/router_gage.dart'
;
import
'../../network
ing
/restful_api_viewmodel.dart'
;
import
'../../
core/
network/restful_api_viewmodel.dart'
;
import
'../../
permission
/biometric_manager.dart'
;
import
'../../
core/services
/biometric_manager.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../
shared/
preference
s
/data_preference.dart'
;
import
'../../services/login_service.dart'
;
import
'../../
core/
services/login_service.dart'
;
import
'../otp/model/create_otp_response_model.dart'
;
import
'../otp/model/create_otp_response_model.dart'
;
enum
LoginState
{
idle
,
typing
,
error
}
enum
LoginState
{
idle
,
typing
,
error
}
...
...
lib/model
/auth
/login_token_response_model.dart
→
lib/
features/login/
model/login_token_response_model.dart
View file @
6b980613
File moved
lib/model
/auth
/login_token_response_model.g.dart
→
lib/
features/login/
model/login_token_response_model.g.dart
View file @
6b980613
File moved
lib/
screen
/main_tab_screen/main_tab_screen.dart
→
lib/
features
/main_tab_screen/main_tab_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
'../affiliate/affiliate_tab_screen.dart'
;
import
'../affiliate/affiliate_tab_screen.dart'
;
import
'../game/game_tab_screen.dart'
;
import
'../game/game_tab_screen.dart'
;
import
'../home/header_home_viewmodel.dart'
;
import
'../home/header_home_viewmodel.dart'
;
...
...
lib/
screen
/membership/member_level_header_widget.dart
→
lib/
features
/membership/member_level_header_widget.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:get/get_core/src/get_main.dart'
;
import
'package:intl/intl.dart'
;
import
'package:intl/intl.dart'
;
import
'package:mypoint_flutter_app/extensions/string_extension.dart'
;
import
'package:mypoint_flutter_app/core/utils/extensions/string_extension.dart'
;
import
'../../shared/preferences/data_preference.dart'
;
import
'../../preference/data_preference.dart'
;
import
'../../core/theme/base_color.dart'
;
import
'../../resources/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
'../../widgets/measure_size.dart'
;
import
'models/membership_level_model.dart'
;
import
'models/membership_level_model.dart'
;
class
MemberLevelHeaderWidget
extends
StatelessWidget
{
class
MemberLevelHeaderWidget
extends
StatelessWidget
{
...
...
lib/
screen
/membership/membership_screen.dart
→
lib/
features
/membership/membership_screen.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart'
;
import
'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/widgets/image_loader.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/image_loader.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
'../../shared/router_gage.dart'
;
import
'../../shared/router_gage.dart'
;
import
'../../widgets/back_button.dart'
;
import
'../../
shared/
widgets/back_button.dart'
;
import
'member_level_header_widget.dart'
;
import
'member_level_header_widget.dart'
;
import
'membership_viewmodel.dart'
;
import
'membership_viewmodel.dart'
;
import
'models/membership_level_term_and_condition_model.dart'
;
import
'models/membership_level_term_and_condition_model.dart'
;
...
@@ -113,7 +113,7 @@ class _MembershipScreenState extends BaseState<MembershipScreen> with BasicState
...
@@ -113,7 +113,7 @@ class _MembershipScreenState extends BaseState<MembershipScreen> with BasicState
}
}
Widget
_buildTagLevels
()
{
Widget
_buildTagLevels
()
{
final
levels
=
_viewModel
.
membershipInfo
?
.
value
?.
levels
;
final
levels
=
_viewModel
.
membershipInfo
.
value
?.
levels
;
if
(
levels
==
null
||
levels
.
isEmpty
)
{
if
(
levels
==
null
||
levels
.
isEmpty
)
{
return
const
SizedBox
.
shrink
();
return
const
SizedBox
.
shrink
();
}
}
...
...
lib/
screen
/membership/membership_viewmodel.dart
→
lib/
features
/membership/membership_viewmodel.dart
View file @
6b980613
import
'package:flutter/foundation.dart'
;
import
'package:flutter/foundation.dart'
;
import
'package:get/get.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/extensions/collection_extension.dart'
;
import
'package:mypoint_flutter_app/
core/utils/
extensions/collection_extension.dart'
;
import
'package:mypoint_flutter_app/network
ing
/restful_api_client_all_request.dart'
;
import
'package:mypoint_flutter_app/
core/
network/restful_api_client_all_request.dart'
;
import
'../../network
ing
/restful_api_viewmodel.dart'
;
import
'../../
core/
network/restful_api_viewmodel.dart'
;
import
'models/membership_info_response.dart'
;
import
'models/membership_info_response.dart'
;
import
'models/membership_level_model.dart'
;
import
'models/membership_level_model.dart'
;
import
'models/membership_level_term_and_condition_model.dart'
;
import
'models/membership_level_term_and_condition_model.dart'
;
...
...
lib/
screen
/membership/models/accumulated_counter_model.dart
→
lib/
features
/membership/models/accumulated_counter_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
import
'package:json_annotation/json_annotation.dart'
;
part
'accumulated_counter_model.g.dart'
;
part
'accumulated_counter_model.g.dart'
;
...
...
lib/
screen
/membership/models/accumulated_counter_model.g.dart
→
lib/
features
/membership/models/accumulated_counter_model.g.dart
View file @
6b980613
File moved
lib/
screen
/membership/models/membership_info_response.dart
→
lib/
features
/membership/models/membership_info_response.dart
View file @
6b980613
File moved
lib/
screen
/membership/models/membership_info_response.g.dart
→
lib/
features
/membership/models/membership_info_response.g.dart
View file @
6b980613
File moved
lib/
screen
/membership/models/membership_level_model.dart
→
lib/
features
/membership/models/membership_level_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
import
'package:json_annotation/json_annotation.dart'
;
import
'package:mypoint_flutter_app/screen/home/models/image_model.dart'
;
import
'package:mypoint_flutter_app/features/home/models/image_model.dart'
;
import
'accumulated_counter_model.dart'
;
import
'accumulated_counter_model.dart'
;
import
'membership_level_term_and_condition_model.dart'
;
import
'membership_level_term_and_condition_model.dart'
;
part
'membership_level_model.g.dart'
;
part
'membership_level_model.g.dart'
;
@JsonSerializable
()
@JsonSerializable
()
class
MembershipLevelModel
{
class
MembershipLevelModel
{
final
String
?
id
;
final
String
?
id
;
...
...
lib/
screen
/membership/models/membership_level_model.g.dart
→
lib/
features
/membership/models/membership_level_model.g.dart
View file @
6b980613
File moved
lib/
screen
/membership/models/membership_level_term_and_condition_model.dart
→
lib/
features
/membership/models/membership_level_term_and_condition_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
// part 'membership_level_term_and_condition_model.g.dart';
// @JsonSerializable()
class
MembershipLevelTermAndConditionModel
{
class
MembershipLevelTermAndConditionModel
{
final
String
?
icon
;
final
String
?
icon
;
final
String
?
title
;
final
String
?
title
;
...
...
Prev
1
…
9
10
11
12
13
14
15
16
17
…
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