create submission

This commit is contained in:
Phuoc Nguyen
2025-11-27 16:56:01 +07:00
parent ba04576750
commit b6cb9e865a
18 changed files with 1445 additions and 138 deletions

View File

@@ -62,6 +62,62 @@ final class ProjectStatusLocalDataSourceProvider
String _$projectStatusLocalDataSourceHash() =>
r'c57291e51bd390f9524369860c241d7a0a90fdbf';
/// Project Progress Local Data Source Provider
@ProviderFor(projectProgressLocalDataSource)
const projectProgressLocalDataSourceProvider =
ProjectProgressLocalDataSourceProvider._();
/// Project Progress Local Data Source Provider
final class ProjectProgressLocalDataSourceProvider
extends
$FunctionalProvider<
ProjectProgressLocalDataSource,
ProjectProgressLocalDataSource,
ProjectProgressLocalDataSource
>
with $Provider<ProjectProgressLocalDataSource> {
/// Project Progress Local Data Source Provider
const ProjectProgressLocalDataSourceProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'projectProgressLocalDataSourceProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$projectProgressLocalDataSourceHash();
@$internal
@override
$ProviderElement<ProjectProgressLocalDataSource> $createElement(
$ProviderPointer pointer,
) => $ProviderElement(pointer);
@override
ProjectProgressLocalDataSource create(Ref ref) {
return projectProgressLocalDataSource(ref);
}
/// {@macro riverpod.override_with_value}
Override overrideWithValue(ProjectProgressLocalDataSource value) {
return $ProviderOverride(
origin: this,
providerOverride: $SyncValueProvider<ProjectProgressLocalDataSource>(
value,
),
);
}
}
String _$projectProgressLocalDataSourceHash() =>
r'653d03b47f5642f3391e7a312649a2603489b224';
/// Submissions Remote Data Source Provider
@ProviderFor(submissionsRemoteDataSource)
@@ -155,7 +211,7 @@ final class SubmissionsRepositoryProvider
}
String _$submissionsRepositoryHash() =>
r'd8261cc538c1fdaa47064e4945302b80f49098bb';
r'652208a4ef93cde9b40ae66164d44bba786dfed0';
/// Project Status List Provider
///
@@ -221,10 +277,80 @@ abstract class _$ProjectStatusList extends $AsyncNotifier<List<ProjectStatus>> {
}
}
/// Project Progress List Provider
///
/// Fetches construction progress stages from API with cache-first pattern.
/// Used for dropdown selection when creating/updating project submissions.
@ProviderFor(ProjectProgressList)
const projectProgressListProvider = ProjectProgressListProvider._();
/// Project Progress List Provider
///
/// Fetches construction progress stages from API with cache-first pattern.
/// Used for dropdown selection when creating/updating project submissions.
final class ProjectProgressListProvider
extends $AsyncNotifierProvider<ProjectProgressList, List<ProjectProgress>> {
/// Project Progress List Provider
///
/// Fetches construction progress stages from API with cache-first pattern.
/// Used for dropdown selection when creating/updating project submissions.
const ProjectProgressListProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'projectProgressListProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$projectProgressListHash();
@$internal
@override
ProjectProgressList create() => ProjectProgressList();
}
String _$projectProgressListHash() =>
r'5ee1c23f90bfa61237f38a6b72c353f0ecb7a2a9';
/// Project Progress List Provider
///
/// Fetches construction progress stages from API with cache-first pattern.
/// Used for dropdown selection when creating/updating project submissions.
abstract class _$ProjectProgressList
extends $AsyncNotifier<List<ProjectProgress>> {
FutureOr<List<ProjectProgress>> build();
@$mustCallSuper
@override
void runBuild() {
final created = build();
final ref =
this.ref
as $Ref<AsyncValue<List<ProjectProgress>>, List<ProjectProgress>>;
final element =
ref.element
as $ClassProviderElement<
AnyNotifier<
AsyncValue<List<ProjectProgress>>,
List<ProjectProgress>
>,
AsyncValue<List<ProjectProgress>>,
Object?,
Object?
>;
element.handleValue(ref, created);
}
}
/// All Submissions Provider
///
/// Fetches and manages submissions data from remote.
/// Waits for project status list to be loaded first.
/// Waits for project status list and progress list to be loaded first.
@ProviderFor(AllSubmissions)
const allSubmissionsProvider = AllSubmissionsProvider._();
@@ -232,13 +358,13 @@ const allSubmissionsProvider = AllSubmissionsProvider._();
/// All Submissions Provider
///
/// Fetches and manages submissions data from remote.
/// Waits for project status list to be loaded first.
/// Waits for project status list and progress list to be loaded first.
final class AllSubmissionsProvider
extends $AsyncNotifierProvider<AllSubmissions, List<ProjectSubmission>> {
/// All Submissions Provider
///
/// Fetches and manages submissions data from remote.
/// Waits for project status list to be loaded first.
/// Waits for project status list and progress list to be loaded first.
const AllSubmissionsProvider._()
: super(
from: null,
@@ -258,12 +384,12 @@ final class AllSubmissionsProvider
AllSubmissions create() => AllSubmissions();
}
String _$allSubmissionsHash() => r'a4a7fb0d2953efb21e2e6343429f7550c763ea85';
String _$allSubmissionsHash() => r'ab0f1ffdc5e6bdb62dbd56ff3e586ecc1ff05bea';
/// All Submissions Provider
///
/// Fetches and manages submissions data from remote.
/// Waits for project status list to be loaded first.
/// Waits for project status list and progress list to be loaded first.
abstract class _$AllSubmissions
extends $AsyncNotifier<List<ProjectSubmission>> {
@@ -442,3 +568,142 @@ final class FilteredSubmissionsProvider
String _$filteredSubmissionsHash() =>
r'5be22b3242426c6b0c2f9778eaee5c7cf23e4814';
/// Save Submission Provider
///
/// Handles creating new project submissions via API.
@ProviderFor(SaveSubmission)
const saveSubmissionProvider = SaveSubmissionProvider._();
/// Save Submission Provider
///
/// Handles creating new project submissions via API.
final class SaveSubmissionProvider
extends $NotifierProvider<SaveSubmission, AsyncValue<void>> {
/// Save Submission Provider
///
/// Handles creating new project submissions via API.
const SaveSubmissionProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'saveSubmissionProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$saveSubmissionHash();
@$internal
@override
SaveSubmission create() => SaveSubmission();
/// {@macro riverpod.override_with_value}
Override overrideWithValue(AsyncValue<void> value) {
return $ProviderOverride(
origin: this,
providerOverride: $SyncValueProvider<AsyncValue<void>>(value),
);
}
}
String _$saveSubmissionHash() => r'64afa1a9662c36431c143c46a8ca34a786cb0860';
/// Save Submission Provider
///
/// Handles creating new project submissions via API.
abstract class _$SaveSubmission extends $Notifier<AsyncValue<void>> {
AsyncValue<void> build();
@$mustCallSuper
@override
void runBuild() {
final created = build();
final ref = this.ref as $Ref<AsyncValue<void>, AsyncValue<void>>;
final element =
ref.element
as $ClassProviderElement<
AnyNotifier<AsyncValue<void>, AsyncValue<void>>,
AsyncValue<void>,
Object?,
Object?
>;
element.handleValue(ref, created);
}
}
/// Upload Project Files Provider
///
/// Handles uploading multiple files for a project submission.
/// Tracks upload state for each file individually.
@ProviderFor(UploadProjectFiles)
const uploadProjectFilesProvider = UploadProjectFilesProvider._();
/// Upload Project Files Provider
///
/// Handles uploading multiple files for a project submission.
/// Tracks upload state for each file individually.
final class UploadProjectFilesProvider
extends $NotifierProvider<UploadProjectFiles, List<FileUploadState>> {
/// Upload Project Files Provider
///
/// Handles uploading multiple files for a project submission.
/// Tracks upload state for each file individually.
const UploadProjectFilesProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'uploadProjectFilesProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$uploadProjectFilesHash();
@$internal
@override
UploadProjectFiles create() => UploadProjectFiles();
/// {@macro riverpod.override_with_value}
Override overrideWithValue(List<FileUploadState> value) {
return $ProviderOverride(
origin: this,
providerOverride: $SyncValueProvider<List<FileUploadState>>(value),
);
}
}
String _$uploadProjectFilesHash() =>
r'd6219bc1f0b0d6ac70b9e3cea731267c82a68e1f';
/// Upload Project Files Provider
///
/// Handles uploading multiple files for a project submission.
/// Tracks upload state for each file individually.
abstract class _$UploadProjectFiles extends $Notifier<List<FileUploadState>> {
List<FileUploadState> build();
@$mustCallSuper
@override
void runBuild() {
final created = build();
final ref = this.ref as $Ref<List<FileUploadState>, List<FileUploadState>>;
final element =
ref.element
as $ClassProviderElement<
AnyNotifier<List<FileUploadState>, List<FileUploadState>>,
List<FileUploadState>,
Object?,
Object?
>;
element.handleValue(ref, created);
}
}