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
/otp/model/otp_verify_response_model.dart
→
lib/
features
/otp/model/otp_verify_response_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
import
'../../../
base
/base_response_model.dart'
;
import
'../../../
shared/widgets/base_view
/base_response_model.dart'
;
import
'otp_claim_verify_response_model.dart'
;
part
'otp_verify_response_model.g.dart'
;
...
...
lib/
screen
/otp/model/otp_verify_response_model.g.dart
→
lib/
features
/otp/model/otp_verify_response_model.g.dart
View file @
6b980613
File moved
lib/
screen
/otp/otp_screen.dart
→
lib/
features
/otp/otp_screen.dart
View file @
6b980613
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:pin_code_fields/pin_code_fields.dart'
;
import
'../../
base
/base_screen.dart'
;
import
'../../
base
/basic_state.dart'
;
import
'../../
resources
/base_color.dart'
;
import
'../../widgets/back_button.dart'
;
import
'../../widgets/support_button.dart'
;
import
'../../
shared/widgets/base_view
/base_screen.dart'
;
import
'../../
shared/widgets/base_view
/basic_state.dart'
;
import
'../../
core/theme
/base_color.dart'
;
import
'../../
shared/
widgets/back_button.dart'
;
import
'../../
shared/
widgets/support_button.dart'
;
import
'otp_viewmodel.dart'
;
class
OtpScreen
extends
BaseScreen
{
...
...
@@ -24,7 +24,7 @@ class _OtpScreenState extends BaseState<OtpScreen> with BasicState {
super
.
initState
();
final
OtpViewModel
otpVM
=
Get
.
put
(
OtpViewModel
(
widget
.
repository
));
ever
(
otpVM
.
errorMessage
,
(
value
)
{
if
(
value
!=
null
&&
value
.
toString
().
isNotEmpty
)
{
if
(
value
.
toString
().
isNotEmpty
)
{
WidgetsBinding
.
instance
.
addPostFrameCallback
((
_
)
{
showAlertError
(
content:
value
);
});
...
...
lib/
screen
/otp/otp_viewmodel.dart
→
lib/
features
/otp/otp_viewmodel.dart
View file @
6b980613
import
'dart:async'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/base/base_response_model.dart'
;
import
'package:mypoint_flutter_app/configs/constants.dart'
;
import
'package:mypoint_flutter_app/screen/create_pass/create_pass_screen.dart'
;
import
'package:mypoint_flutter_app/screen/login/login_screen.dart'
;
import
'package:mypoint_flutter_app/screen/splash/splash_screen_viewmodel.dart'
;
import
'../create_pass/signup_create_password_repository.dart'
;
import
'model/otp_verify_response_model.dart'
;
import
'package:mypoint_flutter_app/shared/widgets/base_view/base_response_model.dart'
;
import
'package:mypoint_flutter_app/app/config/constants.dart'
;
abstract
class
IOtpRepository
{
Future
<
void
>
sendOtp
();
...
...
@@ -85,8 +80,8 @@ class OtpViewModel extends GetxController {
}
}
Future
<
int
?
>
onResendOtp
()
async
{
if
(
currentCountdown
.
value
>
0
)
return
null
;
Future
<
void
>
onResendOtp
()
async
{
if
(
currentCountdown
.
value
>
0
)
return
;
try
{
final
response
=
await
repository
.
resendOtp
();
_maxCountdown
=
response
??
Constants
.
otpTtl
;
...
...
lib/
screen
/otp/verify_otp_repository.dart
→
lib/
features
/otp/verify_otp_repository.dart
View file @
6b980613
// sign_up_otp_repository.dart
import
'package:flutter/material.dart'
;
import
'package:get/get.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/shared/router_gage.dart'
;
import
'../../
base
/base_response_model.dart'
;
import
'../../network
ing
/restful_api_viewmodel.dart'
;
import
'../../
shared/widgets/base_view
/base_response_model.dart'
;
import
'../../
core/
network/restful_api_viewmodel.dart'
;
import
'../create_pass/create_pass_screen.dart'
;
import
'../create_pass/signup_create_password_repository.dart'
;
import
'model/otp_verify_response_model.dart'
;
...
...
lib/
screen
/pageDetail/campaign_detail_screen.dart
→
lib/
features
/pageDetail/campaign_detail_screen.dart
View file @
6b980613
import
'package:flutter/foundation.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart'
;
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/widgets/custom_empty_widget.dart'
;
import
'package:mypoint_flutter_app/
shared/
widgets/custom_empty_widget.dart'
;
import
'package:share_plus/share_plus.dart'
;
import
'../../
base
/base_screen.dart'
;
import
'../../
base
/basic_state.dart'
;
import
'../../extensions/string_extension.dart'
;
import
'../../
resources
/base_color.dart'
;
import
'../../
shared/widgets/base_view
/base_screen.dart'
;
import
'../../
shared/widgets/base_view
/basic_state.dart'
;
import
'../../
core/utils/
extensions/string_extension.dart'
;
import
'../../
core/theme
/base_color.dart'
;
import
'../../shared/router_gage.dart'
;
import
'../../widgets/back_button.dart'
;
import
'../../widgets/network_image_with_aspect_ratio.dart'
;
import
'../../
shared/
widgets/back_button.dart'
;
import
'../../
shared/
widgets/network_image_with_aspect_ratio.dart'
;
import
'campaign_detail_viewmodel.dart'
;
import
'campaign_item_page_widget.dart'
;
import
'model/campaign_detail_item_model.dart'
;
...
...
@@ -56,7 +55,7 @@ class _CampaignDetailScreenState extends BaseState<CampaignDetailScreen> with Ba
if
(
pageDetail
==
null
)
{
return
Stack
(
children:
[
const
Center
(
child:
EmptyWidget
()),
Center
(
child:
EmptyWidget
(
isLoading:
_viewModel
.
isLoading
.
value
)),
Positioned
(
top:
MediaQuery
.
of
(
context
)
.
padding
...
...
lib/
screen
/pageDetail/campaign_detail_viewmodel.dart
→
lib/
features
/pageDetail/campaign_detail_viewmodel.dart
View file @
6b980613
import
'package:get/get.dart'
;
import
'package:mypoint_flutter_app/config
s
/constants.dart'
;
import
'package:mypoint_flutter_app/network
ing
/api/website_api.dart'
deferred
as
website_api
;
import
'package:mypoint_flutter_app/network
ing
/restful_api_client_all_request.dart'
;
import
'../../network
ing
/restful_api_viewmodel.dart'
;
import
'package:mypoint_flutter_app/
app/
config/constants.dart'
;
import
'package:mypoint_flutter_app/
core/
network/api/website_api.dart'
deferred
as
website_api
;
import
'package:mypoint_flutter_app/
core/
network/restful_api_client_all_request.dart'
;
import
'../../
core/
network/restful_api_viewmodel.dart'
;
import
'model/campaign_detail_model.dart'
;
import
'model/detail_page_rule_type.dart'
;
import
'../faqs/faqs_model.dart'
;
...
...
lib/
screen
/pageDetail/campaign_item_page_widget.dart
→
lib/
features
/pageDetail/campaign_item_page_widget.dart
View file @
6b980613
...
...
@@ -41,7 +41,7 @@ class CampaignItemPageWidget extends StatelessWidget {
width:
60
,
height:
60
,
fit:
BoxFit
.
cover
,
errorBuilder:
(
_
,
_
_
,
__
_
)
=>
const
Icon
(
Icons
.
image_not_supported
),
errorBuilder:
(
_
,
_
,
_
)
=>
const
Icon
(
Icons
.
image_not_supported
),
),
),
],
...
...
lib/
screen
/pageDetail/model/campaign_detail_item_model.dart
→
lib/
features
/pageDetail/model/campaign_detail_item_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
import
'media_type_item_campaign.dart'
;
part
'campaign_detail_item_model.g.dart'
;
@JsonSerializable
()
...
...
lib/
screen
/pageDetail/model/campaign_detail_item_model.g.dart
→
lib/
features
/pageDetail/model/campaign_detail_item_model.g.dart
View file @
6b980613
File moved
lib/
screen
/pageDetail/model/campaign_detail_model.dart
→
lib/
features
/pageDetail/model/campaign_detail_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
import
'package:mypoint_flutter_app/
direc
tion
al
/directional_screen.dart'
;
import
'package:mypoint_flutter_app/
shared/naviga
tion/directional_screen.dart'
;
import
'campaign_detail_item_model.dart'
;
part
'campaign_detail_model.g.dart'
;
@JsonSerializable
()
class
CampaignDetailModel
{
final
String
?
title
;
...
...
lib/
screen
/pageDetail/model/campaign_detail_model.g.dart
→
lib/
features
/pageDetail/model/campaign_detail_model.g.dart
View file @
6b980613
File moved
lib/
screen
/pageDetail/model/detail_page_rule_type.dart
→
lib/
features
/pageDetail/model/detail_page_rule_type.dart
View file @
6b980613
...
...
@@ -29,6 +29,8 @@ extension DetailPageRuleTypeExtension on DetailPageRuleType {
return
DetailPageRuleType
.
decree
;
case
"APP_TERM_OF_DELETE_ACCOUNT"
:
return
DetailPageRuleType
.
policyDeleteAccount
;
default
:
return
null
;
}
}
}
\ No newline at end of file
lib/
screen
/pageDetail/model/media_type_item_campaign.dart
→
lib/
features
/pageDetail/model/media_type_item_campaign.dart
View file @
6b980613
import
'package:get/get.dart'
;
import
'package:json_annotation/json_annotation.dart'
;
enum
MediaTypeItemCampaign
{
image
,
...
...
lib/model
/auth
/profile_response_model.dart
→
lib/
features/personal/
model/profile_response_model.dart
View file @
6b980613
// profile_response_model.dart
import
'package:json_annotation/json_annotation.dart'
;
import
'working_site_model.dart'
;
import
'worker_site_model.dart'
;
...
...
lib/model
/auth
/profile_response_model.g.dart
→
lib/
features/personal/
model/profile_response_model.g.dart
View file @
6b980613
File moved
lib/model
/auth
/user_agreement_model.dart
→
lib/
features/personal/
model/user_agreement_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
part
'user_agreement_model.g.dart'
;
@JsonSerializable
()
class
UserAgreementModel
{
@JsonKey
(
name:
'working_site_id'
)
...
...
lib/model
/auth
/user_agreement_model.g.dart
→
lib/
features/personal/
model/user_agreement_model.g.dart
View file @
6b980613
File moved
lib/model
/auth
/worker_site_model.dart
→
lib/
features/personal/
model/worker_site_model.dart
View file @
6b980613
import
'package:json_annotation/json_annotation.dart'
;
part
'worker_site_model.g.dart'
;
@JsonSerializable
()
class
WorkerSiteModel
{
final
String
?
id
;
...
...
lib/model
/auth
/worker_site_model.g.dart
→
lib/
features/personal/
model/worker_site_model.g.dart
View file @
6b980613
File moved
Prev
1
…
12
13
14
15
16
17
18
19
20
…
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