Merge pull request #323 from Oloodi/264-p0-comp-01-tax-forms-screen

Continuation of the development of the mobile apps
This commit is contained in:
Achintha Isuru
2026-01-29 01:17:31 -05:00
committed by GitHub
59 changed files with 23171 additions and 24322 deletions

View File

@@ -56,8 +56,7 @@ class AppWidget extends StatelessWidget {
Widget build(BuildContext context) {
return BlocProvider<core_localization.LocaleBloc>(
create: (BuildContext context) =>
Modular.get<core_localization.LocaleBloc>()
..add(const core_localization.LoadLocale()),
Modular.get<core_localization.LocaleBloc>(),
child:
BlocBuilder<
core_localization.LocaleBloc,

View File

@@ -1,7 +1,7 @@
name: krowwithus_client
description: "Krow Client Application"
publish_to: "none"
version: 0.0.1-M3+1
version: 0.0.1-M3+2
resolution: workspace
environment:

View File

@@ -1,5 +1,6 @@
import 'package:core_localization/core_localization.dart' as core_localization;
import 'package:design_system/design_system.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
@@ -7,7 +8,6 @@ import 'package:flutter_modular/flutter_modular.dart';
import 'package:staff_authentication/staff_authentication.dart'
as staff_authentication;
import 'package:staff_main/staff_main.dart' as staff_main;
import 'package:firebase_core/firebase_core.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
@@ -36,28 +36,30 @@ class AppWidget extends StatelessWidget {
Widget build(BuildContext context) {
return BlocProvider<core_localization.LocaleBloc>(
create: (BuildContext context) =>
Modular.get<core_localization.LocaleBloc>()
..add(const core_localization.LoadLocale()),
Modular.get<core_localization.LocaleBloc>(),
child:
BlocBuilder<
core_localization.LocaleBloc,
core_localization.LocaleState
>(
builder: (BuildContext context, core_localization.LocaleState state) {
return core_localization.TranslationProvider(
child: MaterialApp.router(
title: "KROW Staff",
theme: UiTheme.light,
routerConfig: Modular.routerConfig,
locale: state.locale,
supportedLocales: state.supportedLocales,
localizationsDelegates: const <LocalizationsDelegate<dynamic>>[
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
));
},
builder:
(BuildContext context, core_localization.LocaleState state) {
return core_localization.TranslationProvider(
child: MaterialApp.router(
title: "KROW Staff",
theme: UiTheme.light,
routerConfig: Modular.routerConfig,
locale: state.locale,
supportedLocales: state.supportedLocales,
localizationsDelegates:
const <LocalizationsDelegate<dynamic>>[
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
),
);
},
),
);
}

View File

@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../domain/usecases/get_default_locale_use_case.dart';
import '../domain/usecases/get_locale_use_case.dart';
import '../domain/usecases/get_supported_locales_use_case.dart';
import '../domain/usecases/set_locale_use_case.dart';
import '../l10n/strings.g.dart';
import 'locale_event.dart';
@@ -11,23 +13,39 @@ import 'locale_state.dart';
/// It coordinates the flow between user language requests and persistent storage
/// using [SetLocaleUseCase] and [GetLocaleUseCase].
class LocaleBloc extends Bloc<LocaleEvent, LocaleState> {
final GetLocaleUseCase getLocaleUseCase;
final SetLocaleUseCase setLocaleUseCase;
/// Creates a [LocaleBloc] with the required use cases.
LocaleBloc({required this.getLocaleUseCase, required this.setLocaleUseCase})
: super(LocaleState.initial()) {
LocaleBloc({
required this.getLocaleUseCase,
required this.setLocaleUseCase,
required this.getSupportedLocalesUseCase,
required this.getDefaultLocaleUseCase,
}) : super(LocaleState.initial()) {
on<ChangeLocale>(_onChangeLocale);
on<LoadLocale>(_onLoadLocale);
/// Initial event
add(const LoadLocale());
}
/// Use case for retrieving the saved locale.
final GetLocaleUseCase getLocaleUseCase;
/// Use case for saving the selected locale.
final SetLocaleUseCase setLocaleUseCase;
/// Use case for retrieving supported locales.
final GetSupportedLocalesUseCase getSupportedLocalesUseCase;
/// Use case for retrieving the default locale.
final GetDefaultLocaleUseCase getDefaultLocaleUseCase;
/// Handles the [ChangeLocale] event by saving it via the use case and emitting new state.
Future<void> _onChangeLocale(
ChangeLocale event,
Emitter<LocaleState> emit,
) async {
// 1. Update slang settings
LocaleSettings.setLocaleRaw(event.locale.languageCode);
await LocaleSettings.setLocaleRaw(event.locale.languageCode);
// 2. Persist using Use Case
await setLocaleUseCase(event.locale);
@@ -46,11 +64,14 @@ class LocaleBloc extends Bloc<LocaleEvent, LocaleState> {
LoadLocale event,
Emitter<LocaleState> emit,
) async {
final Locale? savedLocale = await getLocaleUseCase();
final Locale locale = const Locale('es');
final Locale savedLocale = await getLocaleUseCase();
final List<Locale> supportedLocales = getSupportedLocalesUseCase();
LocaleSettings.setLocaleRaw(locale.languageCode);
await LocaleSettings.setLocaleRaw(savedLocale.languageCode);
emit(LocaleState(locale: locale, supportedLocales: state.supportedLocales));
emit(LocaleState(
locale: savedLocale,
supportedLocales: supportedLocales,
));
}
}

View File

@@ -1,20 +1,21 @@
import 'package:flutter/material.dart';
import '../l10n/strings.g.dart';
/// Represents the current state of the application's localization.
class LocaleState {
/// Creates a [LocaleState] with the specified [locale].
const LocaleState({required this.locale, required this.supportedLocales});
/// The initial state of the application, defaulting to English.
factory LocaleState.initial() => LocaleState(
locale: AppLocaleUtils.findDeviceLocale().flutterLocale,
supportedLocales: AppLocaleUtils.supportedLocales,
);
/// The current active locale.
final Locale locale;
/// The list of supported locales for the application.
final List<Locale> supportedLocales;
/// Creates a [LocaleState] with the specified [locale].
const LocaleState({required this.locale, required this.supportedLocales});
/// The initial state of the application, defaulting to English.
factory LocaleState.initial() => LocaleState(
locale: const Locale('es'),
supportedLocales: AppLocaleUtils.supportedLocales,
);
}

View File

@@ -1,4 +1,6 @@
import 'dart:ui';
import 'package:core_localization/src/l10n/strings.g.dart';
import '../../domain/repositories/locale_repository_interface.dart';
import '../datasources/locale_local_data_source.dart';
@@ -7,22 +9,36 @@ import '../datasources/locale_local_data_source.dart';
/// This class handles the mapping between domain [Locale] objects and the raw
/// strings handled by the [LocaleLocalDataSource].
class LocaleRepositoryImpl implements LocaleRepositoryInterface {
final LocaleLocalDataSource _localDataSource;
/// Creates a [LocaleRepositoryImpl] with the provided [localDataSource].
LocaleRepositoryImpl({required this.localDataSource});
/// Creates a [LocaleRepositoryImpl] with the provided [_localDataSource].
LocaleRepositoryImpl(this._localDataSource);
final LocaleLocalDataSource localDataSource;
@override
Future<void> saveLocale(Locale locale) {
return _localDataSource.saveLanguageCode(locale.languageCode);
return localDataSource.saveLanguageCode(locale.languageCode);
}
@override
Future<Locale?> getSavedLocale() async {
final String? languageCode = await _localDataSource.getLanguageCode();
Future<Locale> getSavedLocale() async {
return getDefaultLocale();
/// TODO: FEATURE_NOT_IMPLEMENTED: Implement saved locale retrieval later
final String? languageCode = await localDataSource.getLanguageCode();
if (languageCode != null) {
return Locale(languageCode);
}
return null;
}
@override
Locale getDefaultLocale() {
final Locale deviceLocale = AppLocaleUtils.findDeviceLocale().flutterLocale;
if (getSupportedLocales().contains(deviceLocale)) {
return deviceLocale;
}
return const Locale('en');
}
@override
List<Locale> getSupportedLocales() => AppLocaleUtils.supportedLocales;
}

View File

@@ -13,5 +13,11 @@ abstract interface class LocaleRepositoryInterface {
/// Retrieves the saved [locale] from persistent storage.
///
/// Returns `null` if no locale has been previously saved.
Future<Locale?> getSavedLocale();
Future<Locale> getSavedLocale();
/// Retrieves the default [Locale] for the application.
Locale getDefaultLocale();
/// Retrieves the list of supported [Locale]s.
List<Locale> getSupportedLocales();
}

View File

@@ -0,0 +1,15 @@
import 'dart:ui';
import '../repositories/locale_repository_interface.dart';
/// Use case to retrieve the default locale.
class GetDefaultLocaleUseCase {
final LocaleRepositoryInterface _repository;
/// Creates a [GetDefaultLocaleUseCase] with the required [LocaleRepositoryInterface].
GetDefaultLocaleUseCase(this._repository);
/// Retrieves the default locale.
Locale call() {
return _repository.getDefaultLocale();
}
}

View File

@@ -13,7 +13,7 @@ class GetLocaleUseCase extends NoInputUseCase<Locale?> {
GetLocaleUseCase(this._repository);
@override
Future<Locale?> call() {
Future<Locale> call() {
return _repository.getSavedLocale();
}
}

View File

@@ -0,0 +1,15 @@
import 'dart:ui';
import '../repositories/locale_repository_interface.dart';
/// Use case to retrieve the list of supported locales.
class GetSupportedLocalesUseCase {
final LocaleRepositoryInterface _repository;
/// Creates a [GetSupportedLocalesUseCase] with the required [LocaleRepositoryInterface].
GetSupportedLocalesUseCase(this._repository);
/// Retrieves the supported locales.
List<Locale> call() {
return _repository.getSupportedLocales();
}
}

View File

@@ -6,7 +6,7 @@
/// Locales: 2
/// Strings: 1038 (519 per locale)
///
/// Built on 2026-01-27 at 19:37 UTC
/// Built on 2026-01-29 at 04:15 UTC
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import

View File

@@ -3,7 +3,9 @@ import 'package:shared_preferences/shared_preferences.dart';
import 'data/datasources/locale_local_data_source.dart';
import 'data/repositories_impl/locale_repository_impl.dart';
import 'domain/repositories/locale_repository_interface.dart';
import 'domain/usecases/get_default_locale_use_case.dart';
import 'domain/usecases/get_locale_use_case.dart';
import 'domain/usecases/get_supported_locales_use_case.dart';
import 'domain/usecases/set_locale_use_case.dart';
import 'bloc/locale_bloc.dart';
@@ -18,28 +20,36 @@ class LocalizationModule extends Module {
i.addInstance<SharedPreferencesAsync>(SharedPreferencesAsync());
// Data Sources
i.addSingleton<LocaleLocalDataSource>(
i.addLazySingleton<LocaleLocalDataSource>(
() => LocaleLocalDataSourceImpl(i.get<SharedPreferencesAsync>()),
);
// Repositories
i.addSingleton<LocaleRepositoryInterface>(
() => LocaleRepositoryImpl(i.get<LocaleLocalDataSource>()),
i.addLazySingleton<LocaleRepositoryInterface>(
() => LocaleRepositoryImpl(localDataSource: i.get<LocaleLocalDataSource>()),
);
// Use Cases
i.addSingleton<GetLocaleUseCase>(
i.addLazySingleton<GetLocaleUseCase>(
() => GetLocaleUseCase(i.get<LocaleRepositoryInterface>()),
);
i.addSingleton<SetLocaleUseCase>(
i.addLazySingleton<SetLocaleUseCase>(
() => SetLocaleUseCase(i.get<LocaleRepositoryInterface>()),
);
i.addLazySingleton<GetSupportedLocalesUseCase>(
() => GetSupportedLocalesUseCase(i.get<LocaleRepositoryInterface>()),
);
i.addLazySingleton<GetDefaultLocaleUseCase>(
() => GetDefaultLocaleUseCase(i.get<LocaleRepositoryInterface>()),
);
// BLoCs
i.addSingleton<LocaleBloc>(
i.add<LocaleBloc>(
() => LocaleBloc(
getLocaleUseCase: i.get<GetLocaleUseCase>(),
setLocaleUseCase: i.get<SetLocaleUseCase>(),
getSupportedLocalesUseCase: i.get<GetSupportedLocalesUseCase>(),
getDefaultLocaleUseCase: i.get<GetDefaultLocaleUseCase>(),
),
);
}

View File

@@ -1,16 +1,16 @@
# Basic Usage
```dart
ExampleConnector.instance.createFaqData(createFaqDataVariables).execute();
ExampleConnector.instance.updateFaqData(updateFaqDataVariables).execute();
ExampleConnector.instance.deleteFaqData(deleteFaqDataVariables).execute();
ExampleConnector.instance.createStaffAvailability(createStaffAvailabilityVariables).execute();
ExampleConnector.instance.updateStaffAvailability(updateStaffAvailabilityVariables).execute();
ExampleConnector.instance.deleteStaffAvailability(deleteStaffAvailabilityVariables).execute();
ExampleConnector.instance.listStaffAvailabilityStats(listStaffAvailabilityStatsVariables).execute();
ExampleConnector.instance.getStaffAvailabilityStatsByStaffId(getStaffAvailabilityStatsByStaffIdVariables).execute();
ExampleConnector.instance.filterStaffAvailabilityStats(filterStaffAvailabilityStatsVariables).execute();
ExampleConnector.instance.createTaxForm(createTaxFormVariables).execute();
ExampleConnector.instance.CreateAssignment(createAssignmentVariables).execute();
ExampleConnector.instance.UpdateAssignment(updateAssignmentVariables).execute();
ExampleConnector.instance.DeleteAssignment(deleteAssignmentVariables).execute();
ExampleConnector.instance.listBenefitsData(listBenefitsDataVariables).execute();
ExampleConnector.instance.getBenefitsDataByKey(getBenefitsDataByKeyVariables).execute();
ExampleConnector.instance.listBenefitsDataByStaffId(listBenefitsDataByStaffIdVariables).execute();
ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanId(listBenefitsDataByVendorBenefitPlanIdVariables).execute();
ExampleConnector.instance.listBenefitsDataByVendorBenefitPlanIds(listBenefitsDataByVendorBenefitPlanIdsVariables).execute();
ExampleConnector.instance.getStaffDocumentByKey(getStaffDocumentByKeyVariables).execute();
ExampleConnector.instance.listStaffDocumentsByStaffId(listStaffDocumentsByStaffIdVariables).execute();
```
@@ -23,8 +23,8 @@ Optional fields can be discovered based on classes that have `Optional` object t
This is an example of a mutation with an optional field:
```dart
await ExampleConnector.instance.updateWorkforce({ ... })
.workforceNumber(...)
await ExampleConnector.instance.filterStaffAvailabilityStats({ ... })
.needWorkIndexMin(...)
.execute();
```

View File

@@ -2,31 +2,140 @@ part of 'generated.dart';
class CreateTaxFormVariablesBuilder {
TaxFormType formType;
String title;
Optional<String> _subtitle = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _description = Optional.optional(nativeFromJson, nativeToJson);
Optional<TaxFormStatus> _status = Optional.optional((data) => TaxFormStatus.values.byName(data), enumSerializer);
String firstName;
String lastName;
Optional<String> _mInitial = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _oLastName = Optional.optional(nativeFromJson, nativeToJson);
Optional<Timestamp> _dob = Optional.optional((json) => json['dob'] = Timestamp.fromJson(json['dob']), defaultSerializer);
int socialSN;
Optional<String> _email = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _phone = Optional.optional(nativeFromJson, nativeToJson);
String address;
Optional<String> _city = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _apt = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _state = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _zipCode = Optional.optional(nativeFromJson, nativeToJson);
Optional<MaritalStatus> _marital = Optional.optional((data) => MaritalStatus.values.byName(data), enumSerializer);
Optional<bool> _multipleJob = Optional.optional(nativeFromJson, nativeToJson);
Optional<int> _childrens = Optional.optional(nativeFromJson, nativeToJson);
Optional<int> _otherDeps = Optional.optional(nativeFromJson, nativeToJson);
Optional<double> _totalCredits = Optional.optional(nativeFromJson, nativeToJson);
Optional<double> _otherInconme = Optional.optional(nativeFromJson, nativeToJson);
Optional<double> _deductions = Optional.optional(nativeFromJson, nativeToJson);
Optional<double> _extraWithholding = Optional.optional(nativeFromJson, nativeToJson);
Optional<CitizenshipStatus> _citizen = Optional.optional((data) => CitizenshipStatus.values.byName(data), enumSerializer);
Optional<String> _uscis = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _passportNumber = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _countryIssue = Optional.optional(nativeFromJson, nativeToJson);
Optional<bool> _prepartorOrTranslator = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _signature = Optional.optional(nativeFromJson, nativeToJson);
Optional<Timestamp> _date = Optional.optional((json) => json['date'] = Timestamp.fromJson(json['date']), defaultSerializer);
TaxFormStatus status;
String staffId;
Optional<AnyValue> _formData = Optional.optional(AnyValue.fromJson, defaultSerializer);
Optional<String> _createdBy = Optional.optional(nativeFromJson, nativeToJson);
final FirebaseDataConnect _dataConnect; CreateTaxFormVariablesBuilder subtitle(String? t) {
_subtitle.value = t;
final FirebaseDataConnect _dataConnect; CreateTaxFormVariablesBuilder mInitial(String? t) {
_mInitial.value = t;
return this;
}
CreateTaxFormVariablesBuilder description(String? t) {
_description.value = t;
CreateTaxFormVariablesBuilder oLastName(String? t) {
_oLastName.value = t;
return this;
}
CreateTaxFormVariablesBuilder status(TaxFormStatus? t) {
_status.value = t;
CreateTaxFormVariablesBuilder dob(Timestamp? t) {
_dob.value = t;
return this;
}
CreateTaxFormVariablesBuilder formData(AnyValue? t) {
_formData.value = t;
CreateTaxFormVariablesBuilder email(String? t) {
_email.value = t;
return this;
}
CreateTaxFormVariablesBuilder phone(String? t) {
_phone.value = t;
return this;
}
CreateTaxFormVariablesBuilder city(String? t) {
_city.value = t;
return this;
}
CreateTaxFormVariablesBuilder apt(String? t) {
_apt.value = t;
return this;
}
CreateTaxFormVariablesBuilder state(String? t) {
_state.value = t;
return this;
}
CreateTaxFormVariablesBuilder zipCode(String? t) {
_zipCode.value = t;
return this;
}
CreateTaxFormVariablesBuilder marital(MaritalStatus? t) {
_marital.value = t;
return this;
}
CreateTaxFormVariablesBuilder multipleJob(bool? t) {
_multipleJob.value = t;
return this;
}
CreateTaxFormVariablesBuilder childrens(int? t) {
_childrens.value = t;
return this;
}
CreateTaxFormVariablesBuilder otherDeps(int? t) {
_otherDeps.value = t;
return this;
}
CreateTaxFormVariablesBuilder totalCredits(double? t) {
_totalCredits.value = t;
return this;
}
CreateTaxFormVariablesBuilder otherInconme(double? t) {
_otherInconme.value = t;
return this;
}
CreateTaxFormVariablesBuilder deductions(double? t) {
_deductions.value = t;
return this;
}
CreateTaxFormVariablesBuilder extraWithholding(double? t) {
_extraWithholding.value = t;
return this;
}
CreateTaxFormVariablesBuilder citizen(CitizenshipStatus? t) {
_citizen.value = t;
return this;
}
CreateTaxFormVariablesBuilder uscis(String? t) {
_uscis.value = t;
return this;
}
CreateTaxFormVariablesBuilder passportNumber(String? t) {
_passportNumber.value = t;
return this;
}
CreateTaxFormVariablesBuilder countryIssue(String? t) {
_countryIssue.value = t;
return this;
}
CreateTaxFormVariablesBuilder prepartorOrTranslator(bool? t) {
_prepartorOrTranslator.value = t;
return this;
}
CreateTaxFormVariablesBuilder signature(String? t) {
_signature.value = t;
return this;
}
CreateTaxFormVariablesBuilder date(Timestamp? t) {
_date.value = t;
return this;
}
CreateTaxFormVariablesBuilder createdBy(String? t) {
_createdBy.value = t;
return this;
}
CreateTaxFormVariablesBuilder(this._dataConnect, {required this.formType,required this.title,required this.staffId,});
CreateTaxFormVariablesBuilder(this._dataConnect, {required this.formType,required this.firstName,required this.lastName,required this.socialSN,required this.address,required this.status,required this.staffId,});
Deserializer<CreateTaxFormData> dataDeserializer = (dynamic json) => CreateTaxFormData.fromJson(jsonDecode(json));
Serializer<CreateTaxFormVariables> varsSerializer = (CreateTaxFormVariables vars) => jsonEncode(vars.toJson());
Future<OperationResult<CreateTaxFormData, CreateTaxFormVariables>> execute() {
@@ -34,7 +143,7 @@ class CreateTaxFormVariablesBuilder {
}
MutationRef<CreateTaxFormData, CreateTaxFormVariables> ref() {
CreateTaxFormVariables vars= CreateTaxFormVariables(formType: formType,title: title,subtitle: _subtitle,description: _description,status: _status,staffId: staffId,formData: _formData,);
CreateTaxFormVariables vars= CreateTaxFormVariables(formType: formType,firstName: firstName,lastName: lastName,mInitial: _mInitial,oLastName: _oLastName,dob: _dob,socialSN: socialSN,email: _email,phone: _phone,address: address,city: _city,apt: _apt,state: _state,zipCode: _zipCode,marital: _marital,multipleJob: _multipleJob,childrens: _childrens,otherDeps: _otherDeps,totalCredits: _totalCredits,otherInconme: _otherInconme,deductions: _deductions,extraWithholding: _extraWithholding,citizen: _citizen,uscis: _uscis,passportNumber: _passportNumber,countryIssue: _countryIssue,prepartorOrTranslator: _prepartorOrTranslator,signature: _signature,date: _date,status: status,staffId: staffId,createdBy: _createdBy,);
return _dataConnect.mutation("createTaxForm", dataDeserializer, varsSerializer, vars);
}
}
@@ -110,37 +219,154 @@ class CreateTaxFormData {
@immutable
class CreateTaxFormVariables {
final TaxFormType formType;
final String title;
late final Optional<String>subtitle;
late final Optional<String>description;
late final Optional<TaxFormStatus>status;
final String firstName;
final String lastName;
late final Optional<String>mInitial;
late final Optional<String>oLastName;
late final Optional<Timestamp>dob;
final int socialSN;
late final Optional<String>email;
late final Optional<String>phone;
final String address;
late final Optional<String>city;
late final Optional<String>apt;
late final Optional<String>state;
late final Optional<String>zipCode;
late final Optional<MaritalStatus>marital;
late final Optional<bool>multipleJob;
late final Optional<int>childrens;
late final Optional<int>otherDeps;
late final Optional<double>totalCredits;
late final Optional<double>otherInconme;
late final Optional<double>deductions;
late final Optional<double>extraWithholding;
late final Optional<CitizenshipStatus>citizen;
late final Optional<String>uscis;
late final Optional<String>passportNumber;
late final Optional<String>countryIssue;
late final Optional<bool>prepartorOrTranslator;
late final Optional<String>signature;
late final Optional<Timestamp>date;
final TaxFormStatus status;
final String staffId;
late final Optional<AnyValue>formData;
late final Optional<String>createdBy;
@Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
CreateTaxFormVariables.fromJson(Map<String, dynamic> json):
formType = TaxFormType.values.byName(json['formType']),
title = nativeFromJson<String>(json['title']),
firstName = nativeFromJson<String>(json['firstName']),
lastName = nativeFromJson<String>(json['lastName']),
socialSN = nativeFromJson<int>(json['socialSN']),
address = nativeFromJson<String>(json['address']),
status = TaxFormStatus.values.byName(json['status']),
staffId = nativeFromJson<String>(json['staffId']) {
subtitle = Optional.optional(nativeFromJson, nativeToJson);
subtitle.value = json['subtitle'] == null ? null : nativeFromJson<String>(json['subtitle']);
mInitial = Optional.optional(nativeFromJson, nativeToJson);
mInitial.value = json['mInitial'] == null ? null : nativeFromJson<String>(json['mInitial']);
description = Optional.optional(nativeFromJson, nativeToJson);
description.value = json['description'] == null ? null : nativeFromJson<String>(json['description']);
oLastName = Optional.optional(nativeFromJson, nativeToJson);
oLastName.value = json['oLastName'] == null ? null : nativeFromJson<String>(json['oLastName']);
status = Optional.optional((data) => TaxFormStatus.values.byName(data), enumSerializer);
status.value = json['status'] == null ? null : TaxFormStatus.values.byName(json['status']);
dob = Optional.optional((json) => json['dob'] = Timestamp.fromJson(json['dob']), defaultSerializer);
dob.value = json['dob'] == null ? null : Timestamp.fromJson(json['dob']);
formData = Optional.optional(AnyValue.fromJson, defaultSerializer);
formData.value = json['formData'] == null ? null : AnyValue.fromJson(json['formData']);
email = Optional.optional(nativeFromJson, nativeToJson);
email.value = json['email'] == null ? null : nativeFromJson<String>(json['email']);
phone = Optional.optional(nativeFromJson, nativeToJson);
phone.value = json['phone'] == null ? null : nativeFromJson<String>(json['phone']);
city = Optional.optional(nativeFromJson, nativeToJson);
city.value = json['city'] == null ? null : nativeFromJson<String>(json['city']);
apt = Optional.optional(nativeFromJson, nativeToJson);
apt.value = json['apt'] == null ? null : nativeFromJson<String>(json['apt']);
state = Optional.optional(nativeFromJson, nativeToJson);
state.value = json['state'] == null ? null : nativeFromJson<String>(json['state']);
zipCode = Optional.optional(nativeFromJson, nativeToJson);
zipCode.value = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']);
marital = Optional.optional((data) => MaritalStatus.values.byName(data), enumSerializer);
marital.value = json['marital'] == null ? null : MaritalStatus.values.byName(json['marital']);
multipleJob = Optional.optional(nativeFromJson, nativeToJson);
multipleJob.value = json['multipleJob'] == null ? null : nativeFromJson<bool>(json['multipleJob']);
childrens = Optional.optional(nativeFromJson, nativeToJson);
childrens.value = json['childrens'] == null ? null : nativeFromJson<int>(json['childrens']);
otherDeps = Optional.optional(nativeFromJson, nativeToJson);
otherDeps.value = json['otherDeps'] == null ? null : nativeFromJson<int>(json['otherDeps']);
totalCredits = Optional.optional(nativeFromJson, nativeToJson);
totalCredits.value = json['totalCredits'] == null ? null : nativeFromJson<double>(json['totalCredits']);
otherInconme = Optional.optional(nativeFromJson, nativeToJson);
otherInconme.value = json['otherInconme'] == null ? null : nativeFromJson<double>(json['otherInconme']);
deductions = Optional.optional(nativeFromJson, nativeToJson);
deductions.value = json['deductions'] == null ? null : nativeFromJson<double>(json['deductions']);
extraWithholding = Optional.optional(nativeFromJson, nativeToJson);
extraWithholding.value = json['extraWithholding'] == null ? null : nativeFromJson<double>(json['extraWithholding']);
citizen = Optional.optional((data) => CitizenshipStatus.values.byName(data), enumSerializer);
citizen.value = json['citizen'] == null ? null : CitizenshipStatus.values.byName(json['citizen']);
uscis = Optional.optional(nativeFromJson, nativeToJson);
uscis.value = json['uscis'] == null ? null : nativeFromJson<String>(json['uscis']);
passportNumber = Optional.optional(nativeFromJson, nativeToJson);
passportNumber.value = json['passportNumber'] == null ? null : nativeFromJson<String>(json['passportNumber']);
countryIssue = Optional.optional(nativeFromJson, nativeToJson);
countryIssue.value = json['countryIssue'] == null ? null : nativeFromJson<String>(json['countryIssue']);
prepartorOrTranslator = Optional.optional(nativeFromJson, nativeToJson);
prepartorOrTranslator.value = json['prepartorOrTranslator'] == null ? null : nativeFromJson<bool>(json['prepartorOrTranslator']);
signature = Optional.optional(nativeFromJson, nativeToJson);
signature.value = json['signature'] == null ? null : nativeFromJson<String>(json['signature']);
date = Optional.optional((json) => json['date'] = Timestamp.fromJson(json['date']), defaultSerializer);
date.value = json['date'] == null ? null : Timestamp.fromJson(json['date']);
createdBy = Optional.optional(nativeFromJson, nativeToJson);
createdBy.value = json['createdBy'] == null ? null : nativeFromJson<String>(json['createdBy']);
}
@override
@@ -154,16 +380,41 @@ class CreateTaxFormVariables {
final CreateTaxFormVariables otherTyped = other as CreateTaxFormVariables;
return formType == otherTyped.formType &&
title == otherTyped.title &&
subtitle == otherTyped.subtitle &&
description == otherTyped.description &&
firstName == otherTyped.firstName &&
lastName == otherTyped.lastName &&
mInitial == otherTyped.mInitial &&
oLastName == otherTyped.oLastName &&
dob == otherTyped.dob &&
socialSN == otherTyped.socialSN &&
email == otherTyped.email &&
phone == otherTyped.phone &&
address == otherTyped.address &&
city == otherTyped.city &&
apt == otherTyped.apt &&
state == otherTyped.state &&
zipCode == otherTyped.zipCode &&
marital == otherTyped.marital &&
multipleJob == otherTyped.multipleJob &&
childrens == otherTyped.childrens &&
otherDeps == otherTyped.otherDeps &&
totalCredits == otherTyped.totalCredits &&
otherInconme == otherTyped.otherInconme &&
deductions == otherTyped.deductions &&
extraWithholding == otherTyped.extraWithholding &&
citizen == otherTyped.citizen &&
uscis == otherTyped.uscis &&
passportNumber == otherTyped.passportNumber &&
countryIssue == otherTyped.countryIssue &&
prepartorOrTranslator == otherTyped.prepartorOrTranslator &&
signature == otherTyped.signature &&
date == otherTyped.date &&
status == otherTyped.status &&
staffId == otherTyped.staffId &&
formData == otherTyped.formData;
createdBy == otherTyped.createdBy;
}
@override
int get hashCode => Object.hashAll([formType.hashCode, title.hashCode, subtitle.hashCode, description.hashCode, status.hashCode, staffId.hashCode, formData.hashCode]);
int get hashCode => Object.hashAll([formType.hashCode, firstName.hashCode, lastName.hashCode, mInitial.hashCode, oLastName.hashCode, dob.hashCode, socialSN.hashCode, email.hashCode, phone.hashCode, address.hashCode, city.hashCode, apt.hashCode, state.hashCode, zipCode.hashCode, marital.hashCode, multipleJob.hashCode, childrens.hashCode, otherDeps.hashCode, totalCredits.hashCode, otherInconme.hashCode, deductions.hashCode, extraWithholding.hashCode, citizen.hashCode, uscis.hashCode, passportNumber.hashCode, countryIssue.hashCode, prepartorOrTranslator.hashCode, signature.hashCode, date.hashCode, status.hashCode, staffId.hashCode, createdBy.hashCode]);
Map<String, dynamic> toJson() {
@@ -171,31 +422,125 @@ class CreateTaxFormVariables {
json['formType'] =
formType.name
;
json['title'] = nativeToJson<String>(title);
if(subtitle.state == OptionalState.set) {
json['subtitle'] = subtitle.toJson();
json['firstName'] = nativeToJson<String>(firstName);
json['lastName'] = nativeToJson<String>(lastName);
if(mInitial.state == OptionalState.set) {
json['mInitial'] = mInitial.toJson();
}
if(description.state == OptionalState.set) {
json['description'] = description.toJson();
if(oLastName.state == OptionalState.set) {
json['oLastName'] = oLastName.toJson();
}
if(status.state == OptionalState.set) {
json['status'] = status.toJson();
if(dob.state == OptionalState.set) {
json['dob'] = dob.toJson();
}
json['socialSN'] = nativeToJson<int>(socialSN);
if(email.state == OptionalState.set) {
json['email'] = email.toJson();
}
if(phone.state == OptionalState.set) {
json['phone'] = phone.toJson();
}
json['address'] = nativeToJson<String>(address);
if(city.state == OptionalState.set) {
json['city'] = city.toJson();
}
if(apt.state == OptionalState.set) {
json['apt'] = apt.toJson();
}
if(state.state == OptionalState.set) {
json['state'] = state.toJson();
}
if(zipCode.state == OptionalState.set) {
json['zipCode'] = zipCode.toJson();
}
if(marital.state == OptionalState.set) {
json['marital'] = marital.toJson();
}
if(multipleJob.state == OptionalState.set) {
json['multipleJob'] = multipleJob.toJson();
}
if(childrens.state == OptionalState.set) {
json['childrens'] = childrens.toJson();
}
if(otherDeps.state == OptionalState.set) {
json['otherDeps'] = otherDeps.toJson();
}
if(totalCredits.state == OptionalState.set) {
json['totalCredits'] = totalCredits.toJson();
}
if(otherInconme.state == OptionalState.set) {
json['otherInconme'] = otherInconme.toJson();
}
if(deductions.state == OptionalState.set) {
json['deductions'] = deductions.toJson();
}
if(extraWithholding.state == OptionalState.set) {
json['extraWithholding'] = extraWithholding.toJson();
}
if(citizen.state == OptionalState.set) {
json['citizen'] = citizen.toJson();
}
if(uscis.state == OptionalState.set) {
json['uscis'] = uscis.toJson();
}
if(passportNumber.state == OptionalState.set) {
json['passportNumber'] = passportNumber.toJson();
}
if(countryIssue.state == OptionalState.set) {
json['countryIssue'] = countryIssue.toJson();
}
if(prepartorOrTranslator.state == OptionalState.set) {
json['prepartorOrTranslator'] = prepartorOrTranslator.toJson();
}
if(signature.state == OptionalState.set) {
json['signature'] = signature.toJson();
}
if(date.state == OptionalState.set) {
json['date'] = date.toJson();
}
json['status'] =
status.name
;
json['staffId'] = nativeToJson<String>(staffId);
if(formData.state == OptionalState.set) {
json['formData'] = formData.toJson();
if(createdBy.state == OptionalState.set) {
json['createdBy'] = createdBy.toJson();
}
return json;
}
CreateTaxFormVariables({
required this.formType,
required this.title,
required this.subtitle,
required this.description,
required this.firstName,
required this.lastName,
required this.mInitial,
required this.oLastName,
required this.dob,
required this.socialSN,
required this.email,
required this.phone,
required this.address,
required this.city,
required this.apt,
required this.state,
required this.zipCode,
required this.marital,
required this.multipleJob,
required this.childrens,
required this.otherDeps,
required this.totalCredits,
required this.otherInconme,
required this.deductions,
required this.extraWithholding,
required this.citizen,
required this.uscis,
required this.passportNumber,
required this.countryIssue,
required this.prepartorOrTranslator,
required this.signature,
required this.date,
required this.status,
required this.staffId,
required this.formData,
required this.createdBy,
});
}

View File

@@ -1,189 +0,0 @@
part of 'generated.dart';
class FilterTaxFormsVariablesBuilder {
Optional<TaxFormType> _formType = Optional.optional((data) => TaxFormType.values.byName(data), enumSerializer);
Optional<TaxFormStatus> _status = Optional.optional((data) => TaxFormStatus.values.byName(data), enumSerializer);
Optional<String> _staffId = Optional.optional(nativeFromJson, nativeToJson);
final FirebaseDataConnect _dataConnect;
FilterTaxFormsVariablesBuilder formType(TaxFormType? t) {
_formType.value = t;
return this;
}
FilterTaxFormsVariablesBuilder status(TaxFormStatus? t) {
_status.value = t;
return this;
}
FilterTaxFormsVariablesBuilder staffId(String? t) {
_staffId.value = t;
return this;
}
FilterTaxFormsVariablesBuilder(this._dataConnect, );
Deserializer<FilterTaxFormsData> dataDeserializer = (dynamic json) => FilterTaxFormsData.fromJson(jsonDecode(json));
Serializer<FilterTaxFormsVariables> varsSerializer = (FilterTaxFormsVariables vars) => jsonEncode(vars.toJson());
Future<QueryResult<FilterTaxFormsData, FilterTaxFormsVariables>> execute() {
return ref().execute();
}
QueryRef<FilterTaxFormsData, FilterTaxFormsVariables> ref() {
FilterTaxFormsVariables vars= FilterTaxFormsVariables(formType: _formType,status: _status,staffId: _staffId,);
return _dataConnect.query("filterTaxForms", dataDeserializer, varsSerializer, vars);
}
}
@immutable
class FilterTaxFormsTaxForms {
final String id;
final EnumValue<TaxFormType> formType;
final String title;
final EnumValue<TaxFormStatus> status;
final String staffId;
FilterTaxFormsTaxForms.fromJson(dynamic json):
id = nativeFromJson<String>(json['id']),
formType = taxFormTypeDeserializer(json['formType']),
title = nativeFromJson<String>(json['title']),
status = taxFormStatusDeserializer(json['status']),
staffId = nativeFromJson<String>(json['staffId']);
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final FilterTaxFormsTaxForms otherTyped = other as FilterTaxFormsTaxForms;
return id == otherTyped.id &&
formType == otherTyped.formType &&
title == otherTyped.title &&
status == otherTyped.status &&
staffId == otherTyped.staffId;
}
@override
int get hashCode => Object.hashAll([id.hashCode, formType.hashCode, title.hashCode, status.hashCode, staffId.hashCode]);
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['id'] = nativeToJson<String>(id);
json['formType'] =
taxFormTypeSerializer(formType)
;
json['title'] = nativeToJson<String>(title);
json['status'] =
taxFormStatusSerializer(status)
;
json['staffId'] = nativeToJson<String>(staffId);
return json;
}
FilterTaxFormsTaxForms({
required this.id,
required this.formType,
required this.title,
required this.status,
required this.staffId,
});
}
@immutable
class FilterTaxFormsData {
final List<FilterTaxFormsTaxForms> taxForms;
FilterTaxFormsData.fromJson(dynamic json):
taxForms = (json['taxForms'] as List<dynamic>)
.map((e) => FilterTaxFormsTaxForms.fromJson(e))
.toList();
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final FilterTaxFormsData otherTyped = other as FilterTaxFormsData;
return taxForms == otherTyped.taxForms;
}
@override
int get hashCode => taxForms.hashCode;
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['taxForms'] = taxForms.map((e) => e.toJson()).toList();
return json;
}
FilterTaxFormsData({
required this.taxForms,
});
}
@immutable
class FilterTaxFormsVariables {
late final Optional<TaxFormType>formType;
late final Optional<TaxFormStatus>status;
late final Optional<String>staffId;
@Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
FilterTaxFormsVariables.fromJson(Map<String, dynamic> json) {
formType = Optional.optional((data) => TaxFormType.values.byName(data), enumSerializer);
formType.value = json['formType'] == null ? null : TaxFormType.values.byName(json['formType']);
status = Optional.optional((data) => TaxFormStatus.values.byName(data), enumSerializer);
status.value = json['status'] == null ? null : TaxFormStatus.values.byName(json['status']);
staffId = Optional.optional(nativeFromJson, nativeToJson);
staffId.value = json['staffId'] == null ? null : nativeFromJson<String>(json['staffId']);
}
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final FilterTaxFormsVariables otherTyped = other as FilterTaxFormsVariables;
return formType == otherTyped.formType &&
status == otherTyped.status &&
staffId == otherTyped.staffId;
}
@override
int get hashCode => Object.hashAll([formType.hashCode, status.hashCode, staffId.hashCode]);
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
if(formType.state == OptionalState.set) {
json['formType'] = formType.toJson();
}
if(status.state == OptionalState.set) {
json['status'] = status.toJson();
}
if(staffId.state == OptionalState.set) {
json['staffId'] = staffId.toJson();
}
return json;
}
FilterTaxFormsVariables({
required this.formType,
required this.status,
required this.staffId,
});
}

View File

@@ -21,12 +21,36 @@ class GetTaxFormByIdVariablesBuilder {
class GetTaxFormByIdTaxForm {
final String id;
final EnumValue<TaxFormType> formType;
final String title;
final String? subtitle;
final String? description;
final String firstName;
final String lastName;
final String? mInitial;
final String? oLastName;
final Timestamp? dob;
final int socialSN;
final String? email;
final String? phone;
final String address;
final String? city;
final String? apt;
final String? state;
final String? zipCode;
final EnumValue<MaritalStatus>? marital;
final bool? multipleJob;
final int? childrens;
final int? otherDeps;
final double? totalCredits;
final double? otherInconme;
final double? deductions;
final double? extraWithholding;
final EnumValue<CitizenshipStatus>? citizen;
final String? uscis;
final String? passportNumber;
final String? countryIssue;
final bool? prepartorOrTranslator;
final String? signature;
final Timestamp? date;
final EnumValue<TaxFormStatus> status;
final String staffId;
final AnyValue? formData;
final Timestamp? createdAt;
final Timestamp? updatedAt;
final String? createdBy;
@@ -34,12 +58,36 @@ class GetTaxFormByIdTaxForm {
id = nativeFromJson<String>(json['id']),
formType = taxFormTypeDeserializer(json['formType']),
title = nativeFromJson<String>(json['title']),
subtitle = json['subtitle'] == null ? null : nativeFromJson<String>(json['subtitle']),
description = json['description'] == null ? null : nativeFromJson<String>(json['description']),
firstName = nativeFromJson<String>(json['firstName']),
lastName = nativeFromJson<String>(json['lastName']),
mInitial = json['mInitial'] == null ? null : nativeFromJson<String>(json['mInitial']),
oLastName = json['oLastName'] == null ? null : nativeFromJson<String>(json['oLastName']),
dob = json['dob'] == null ? null : Timestamp.fromJson(json['dob']),
socialSN = nativeFromJson<int>(json['socialSN']),
email = json['email'] == null ? null : nativeFromJson<String>(json['email']),
phone = json['phone'] == null ? null : nativeFromJson<String>(json['phone']),
address = nativeFromJson<String>(json['address']),
city = json['city'] == null ? null : nativeFromJson<String>(json['city']),
apt = json['apt'] == null ? null : nativeFromJson<String>(json['apt']),
state = json['state'] == null ? null : nativeFromJson<String>(json['state']),
zipCode = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']),
marital = json['marital'] == null ? null : maritalStatusDeserializer(json['marital']),
multipleJob = json['multipleJob'] == null ? null : nativeFromJson<bool>(json['multipleJob']),
childrens = json['childrens'] == null ? null : nativeFromJson<int>(json['childrens']),
otherDeps = json['otherDeps'] == null ? null : nativeFromJson<int>(json['otherDeps']),
totalCredits = json['totalCredits'] == null ? null : nativeFromJson<double>(json['totalCredits']),
otherInconme = json['otherInconme'] == null ? null : nativeFromJson<double>(json['otherInconme']),
deductions = json['deductions'] == null ? null : nativeFromJson<double>(json['deductions']),
extraWithholding = json['extraWithholding'] == null ? null : nativeFromJson<double>(json['extraWithholding']),
citizen = json['citizen'] == null ? null : citizenshipStatusDeserializer(json['citizen']),
uscis = json['uscis'] == null ? null : nativeFromJson<String>(json['uscis']),
passportNumber = json['passportNumber'] == null ? null : nativeFromJson<String>(json['passportNumber']),
countryIssue = json['countryIssue'] == null ? null : nativeFromJson<String>(json['countryIssue']),
prepartorOrTranslator = json['prepartorOrTranslator'] == null ? null : nativeFromJson<bool>(json['prepartorOrTranslator']),
signature = json['signature'] == null ? null : nativeFromJson<String>(json['signature']),
date = json['date'] == null ? null : Timestamp.fromJson(json['date']),
status = taxFormStatusDeserializer(json['status']),
staffId = nativeFromJson<String>(json['staffId']),
formData = json['formData'] == null ? null : AnyValue.fromJson(json['formData']),
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
updatedAt = json['updatedAt'] == null ? null : Timestamp.fromJson(json['updatedAt']),
createdBy = json['createdBy'] == null ? null : nativeFromJson<String>(json['createdBy']);
@@ -55,19 +103,43 @@ class GetTaxFormByIdTaxForm {
final GetTaxFormByIdTaxForm otherTyped = other as GetTaxFormByIdTaxForm;
return id == otherTyped.id &&
formType == otherTyped.formType &&
title == otherTyped.title &&
subtitle == otherTyped.subtitle &&
description == otherTyped.description &&
firstName == otherTyped.firstName &&
lastName == otherTyped.lastName &&
mInitial == otherTyped.mInitial &&
oLastName == otherTyped.oLastName &&
dob == otherTyped.dob &&
socialSN == otherTyped.socialSN &&
email == otherTyped.email &&
phone == otherTyped.phone &&
address == otherTyped.address &&
city == otherTyped.city &&
apt == otherTyped.apt &&
state == otherTyped.state &&
zipCode == otherTyped.zipCode &&
marital == otherTyped.marital &&
multipleJob == otherTyped.multipleJob &&
childrens == otherTyped.childrens &&
otherDeps == otherTyped.otherDeps &&
totalCredits == otherTyped.totalCredits &&
otherInconme == otherTyped.otherInconme &&
deductions == otherTyped.deductions &&
extraWithholding == otherTyped.extraWithholding &&
citizen == otherTyped.citizen &&
uscis == otherTyped.uscis &&
passportNumber == otherTyped.passportNumber &&
countryIssue == otherTyped.countryIssue &&
prepartorOrTranslator == otherTyped.prepartorOrTranslator &&
signature == otherTyped.signature &&
date == otherTyped.date &&
status == otherTyped.status &&
staffId == otherTyped.staffId &&
formData == otherTyped.formData &&
createdAt == otherTyped.createdAt &&
updatedAt == otherTyped.updatedAt &&
createdBy == otherTyped.createdBy;
}
@override
int get hashCode => Object.hashAll([id.hashCode, formType.hashCode, title.hashCode, subtitle.hashCode, description.hashCode, status.hashCode, staffId.hashCode, formData.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode]);
int get hashCode => Object.hashAll([id.hashCode, formType.hashCode, firstName.hashCode, lastName.hashCode, mInitial.hashCode, oLastName.hashCode, dob.hashCode, socialSN.hashCode, email.hashCode, phone.hashCode, address.hashCode, city.hashCode, apt.hashCode, state.hashCode, zipCode.hashCode, marital.hashCode, multipleJob.hashCode, childrens.hashCode, otherDeps.hashCode, totalCredits.hashCode, otherInconme.hashCode, deductions.hashCode, extraWithholding.hashCode, citizen.hashCode, uscis.hashCode, passportNumber.hashCode, countryIssue.hashCode, prepartorOrTranslator.hashCode, signature.hashCode, date.hashCode, status.hashCode, staffId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode]);
Map<String, dynamic> toJson() {
@@ -76,20 +148,90 @@ class GetTaxFormByIdTaxForm {
json['formType'] =
taxFormTypeSerializer(formType)
;
json['title'] = nativeToJson<String>(title);
if (subtitle != null) {
json['subtitle'] = nativeToJson<String?>(subtitle);
json['firstName'] = nativeToJson<String>(firstName);
json['lastName'] = nativeToJson<String>(lastName);
if (mInitial != null) {
json['mInitial'] = nativeToJson<String?>(mInitial);
}
if (description != null) {
json['description'] = nativeToJson<String?>(description);
if (oLastName != null) {
json['oLastName'] = nativeToJson<String?>(oLastName);
}
if (dob != null) {
json['dob'] = dob!.toJson();
}
json['socialSN'] = nativeToJson<int>(socialSN);
if (email != null) {
json['email'] = nativeToJson<String?>(email);
}
if (phone != null) {
json['phone'] = nativeToJson<String?>(phone);
}
json['address'] = nativeToJson<String>(address);
if (city != null) {
json['city'] = nativeToJson<String?>(city);
}
if (apt != null) {
json['apt'] = nativeToJson<String?>(apt);
}
if (state != null) {
json['state'] = nativeToJson<String?>(state);
}
if (zipCode != null) {
json['zipCode'] = nativeToJson<String?>(zipCode);
}
if (marital != null) {
json['marital'] =
maritalStatusSerializer(marital!)
;
}
if (multipleJob != null) {
json['multipleJob'] = nativeToJson<bool?>(multipleJob);
}
if (childrens != null) {
json['childrens'] = nativeToJson<int?>(childrens);
}
if (otherDeps != null) {
json['otherDeps'] = nativeToJson<int?>(otherDeps);
}
if (totalCredits != null) {
json['totalCredits'] = nativeToJson<double?>(totalCredits);
}
if (otherInconme != null) {
json['otherInconme'] = nativeToJson<double?>(otherInconme);
}
if (deductions != null) {
json['deductions'] = nativeToJson<double?>(deductions);
}
if (extraWithholding != null) {
json['extraWithholding'] = nativeToJson<double?>(extraWithholding);
}
if (citizen != null) {
json['citizen'] =
citizenshipStatusSerializer(citizen!)
;
}
if (uscis != null) {
json['uscis'] = nativeToJson<String?>(uscis);
}
if (passportNumber != null) {
json['passportNumber'] = nativeToJson<String?>(passportNumber);
}
if (countryIssue != null) {
json['countryIssue'] = nativeToJson<String?>(countryIssue);
}
if (prepartorOrTranslator != null) {
json['prepartorOrTranslator'] = nativeToJson<bool?>(prepartorOrTranslator);
}
if (signature != null) {
json['signature'] = nativeToJson<String?>(signature);
}
if (date != null) {
json['date'] = date!.toJson();
}
json['status'] =
taxFormStatusSerializer(status)
;
json['staffId'] = nativeToJson<String>(staffId);
if (formData != null) {
json['formData'] = formData!.toJson();
}
if (createdAt != null) {
json['createdAt'] = createdAt!.toJson();
}
@@ -105,12 +247,36 @@ class GetTaxFormByIdTaxForm {
GetTaxFormByIdTaxForm({
required this.id,
required this.formType,
required this.title,
this.subtitle,
this.description,
required this.firstName,
required this.lastName,
this.mInitial,
this.oLastName,
this.dob,
required this.socialSN,
this.email,
this.phone,
required this.address,
this.city,
this.apt,
this.state,
this.zipCode,
this.marital,
this.multipleJob,
this.childrens,
this.otherDeps,
this.totalCredits,
this.otherInconme,
this.deductions,
this.extraWithholding,
this.citizen,
this.uscis,
this.passportNumber,
this.countryIssue,
this.prepartorOrTranslator,
this.signature,
this.date,
required this.status,
required this.staffId,
this.formData,
this.createdAt,
this.updatedAt,
this.createdBy,

View File

@@ -0,0 +1,389 @@
part of 'generated.dart';
class GetTaxFormsByStaffIdVariablesBuilder {
String staffId;
Optional<int> _offset = Optional.optional(nativeFromJson, nativeToJson);
Optional<int> _limit = Optional.optional(nativeFromJson, nativeToJson);
final FirebaseDataConnect _dataConnect; GetTaxFormsByStaffIdVariablesBuilder offset(int? t) {
_offset.value = t;
return this;
}
GetTaxFormsByStaffIdVariablesBuilder limit(int? t) {
_limit.value = t;
return this;
}
GetTaxFormsByStaffIdVariablesBuilder(this._dataConnect, {required this.staffId,});
Deserializer<GetTaxFormsByStaffIdData> dataDeserializer = (dynamic json) => GetTaxFormsByStaffIdData.fromJson(jsonDecode(json));
Serializer<GetTaxFormsByStaffIdVariables> varsSerializer = (GetTaxFormsByStaffIdVariables vars) => jsonEncode(vars.toJson());
Future<QueryResult<GetTaxFormsByStaffIdData, GetTaxFormsByStaffIdVariables>> execute() {
return ref().execute();
}
QueryRef<GetTaxFormsByStaffIdData, GetTaxFormsByStaffIdVariables> ref() {
GetTaxFormsByStaffIdVariables vars= GetTaxFormsByStaffIdVariables(staffId: staffId,offset: _offset,limit: _limit,);
return _dataConnect.query("getTaxFormsByStaffId", dataDeserializer, varsSerializer, vars);
}
}
@immutable
class GetTaxFormsByStaffIdTaxForms {
final String id;
final EnumValue<TaxFormType> formType;
final String firstName;
final String lastName;
final String? mInitial;
final String? oLastName;
final Timestamp? dob;
final int socialSN;
final String? email;
final String? phone;
final String address;
final String? city;
final String? apt;
final String? state;
final String? zipCode;
final EnumValue<MaritalStatus>? marital;
final bool? multipleJob;
final int? childrens;
final int? otherDeps;
final double? totalCredits;
final double? otherInconme;
final double? deductions;
final double? extraWithholding;
final EnumValue<CitizenshipStatus>? citizen;
final String? uscis;
final String? passportNumber;
final String? countryIssue;
final bool? prepartorOrTranslator;
final String? signature;
final Timestamp? date;
final EnumValue<TaxFormStatus> status;
final String staffId;
final Timestamp? createdAt;
final Timestamp? updatedAt;
final String? createdBy;
GetTaxFormsByStaffIdTaxForms.fromJson(dynamic json):
id = nativeFromJson<String>(json['id']),
formType = taxFormTypeDeserializer(json['formType']),
firstName = nativeFromJson<String>(json['firstName']),
lastName = nativeFromJson<String>(json['lastName']),
mInitial = json['mInitial'] == null ? null : nativeFromJson<String>(json['mInitial']),
oLastName = json['oLastName'] == null ? null : nativeFromJson<String>(json['oLastName']),
dob = json['dob'] == null ? null : Timestamp.fromJson(json['dob']),
socialSN = nativeFromJson<int>(json['socialSN']),
email = json['email'] == null ? null : nativeFromJson<String>(json['email']),
phone = json['phone'] == null ? null : nativeFromJson<String>(json['phone']),
address = nativeFromJson<String>(json['address']),
city = json['city'] == null ? null : nativeFromJson<String>(json['city']),
apt = json['apt'] == null ? null : nativeFromJson<String>(json['apt']),
state = json['state'] == null ? null : nativeFromJson<String>(json['state']),
zipCode = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']),
marital = json['marital'] == null ? null : maritalStatusDeserializer(json['marital']),
multipleJob = json['multipleJob'] == null ? null : nativeFromJson<bool>(json['multipleJob']),
childrens = json['childrens'] == null ? null : nativeFromJson<int>(json['childrens']),
otherDeps = json['otherDeps'] == null ? null : nativeFromJson<int>(json['otherDeps']),
totalCredits = json['totalCredits'] == null ? null : nativeFromJson<double>(json['totalCredits']),
otherInconme = json['otherInconme'] == null ? null : nativeFromJson<double>(json['otherInconme']),
deductions = json['deductions'] == null ? null : nativeFromJson<double>(json['deductions']),
extraWithholding = json['extraWithholding'] == null ? null : nativeFromJson<double>(json['extraWithholding']),
citizen = json['citizen'] == null ? null : citizenshipStatusDeserializer(json['citizen']),
uscis = json['uscis'] == null ? null : nativeFromJson<String>(json['uscis']),
passportNumber = json['passportNumber'] == null ? null : nativeFromJson<String>(json['passportNumber']),
countryIssue = json['countryIssue'] == null ? null : nativeFromJson<String>(json['countryIssue']),
prepartorOrTranslator = json['prepartorOrTranslator'] == null ? null : nativeFromJson<bool>(json['prepartorOrTranslator']),
signature = json['signature'] == null ? null : nativeFromJson<String>(json['signature']),
date = json['date'] == null ? null : Timestamp.fromJson(json['date']),
status = taxFormStatusDeserializer(json['status']),
staffId = nativeFromJson<String>(json['staffId']),
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
updatedAt = json['updatedAt'] == null ? null : Timestamp.fromJson(json['updatedAt']),
createdBy = json['createdBy'] == null ? null : nativeFromJson<String>(json['createdBy']);
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final GetTaxFormsByStaffIdTaxForms otherTyped = other as GetTaxFormsByStaffIdTaxForms;
return id == otherTyped.id &&
formType == otherTyped.formType &&
firstName == otherTyped.firstName &&
lastName == otherTyped.lastName &&
mInitial == otherTyped.mInitial &&
oLastName == otherTyped.oLastName &&
dob == otherTyped.dob &&
socialSN == otherTyped.socialSN &&
email == otherTyped.email &&
phone == otherTyped.phone &&
address == otherTyped.address &&
city == otherTyped.city &&
apt == otherTyped.apt &&
state == otherTyped.state &&
zipCode == otherTyped.zipCode &&
marital == otherTyped.marital &&
multipleJob == otherTyped.multipleJob &&
childrens == otherTyped.childrens &&
otherDeps == otherTyped.otherDeps &&
totalCredits == otherTyped.totalCredits &&
otherInconme == otherTyped.otherInconme &&
deductions == otherTyped.deductions &&
extraWithholding == otherTyped.extraWithholding &&
citizen == otherTyped.citizen &&
uscis == otherTyped.uscis &&
passportNumber == otherTyped.passportNumber &&
countryIssue == otherTyped.countryIssue &&
prepartorOrTranslator == otherTyped.prepartorOrTranslator &&
signature == otherTyped.signature &&
date == otherTyped.date &&
status == otherTyped.status &&
staffId == otherTyped.staffId &&
createdAt == otherTyped.createdAt &&
updatedAt == otherTyped.updatedAt &&
createdBy == otherTyped.createdBy;
}
@override
int get hashCode => Object.hashAll([id.hashCode, formType.hashCode, firstName.hashCode, lastName.hashCode, mInitial.hashCode, oLastName.hashCode, dob.hashCode, socialSN.hashCode, email.hashCode, phone.hashCode, address.hashCode, city.hashCode, apt.hashCode, state.hashCode, zipCode.hashCode, marital.hashCode, multipleJob.hashCode, childrens.hashCode, otherDeps.hashCode, totalCredits.hashCode, otherInconme.hashCode, deductions.hashCode, extraWithholding.hashCode, citizen.hashCode, uscis.hashCode, passportNumber.hashCode, countryIssue.hashCode, prepartorOrTranslator.hashCode, signature.hashCode, date.hashCode, status.hashCode, staffId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode]);
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['id'] = nativeToJson<String>(id);
json['formType'] =
taxFormTypeSerializer(formType)
;
json['firstName'] = nativeToJson<String>(firstName);
json['lastName'] = nativeToJson<String>(lastName);
if (mInitial != null) {
json['mInitial'] = nativeToJson<String?>(mInitial);
}
if (oLastName != null) {
json['oLastName'] = nativeToJson<String?>(oLastName);
}
if (dob != null) {
json['dob'] = dob!.toJson();
}
json['socialSN'] = nativeToJson<int>(socialSN);
if (email != null) {
json['email'] = nativeToJson<String?>(email);
}
if (phone != null) {
json['phone'] = nativeToJson<String?>(phone);
}
json['address'] = nativeToJson<String>(address);
if (city != null) {
json['city'] = nativeToJson<String?>(city);
}
if (apt != null) {
json['apt'] = nativeToJson<String?>(apt);
}
if (state != null) {
json['state'] = nativeToJson<String?>(state);
}
if (zipCode != null) {
json['zipCode'] = nativeToJson<String?>(zipCode);
}
if (marital != null) {
json['marital'] =
maritalStatusSerializer(marital!)
;
}
if (multipleJob != null) {
json['multipleJob'] = nativeToJson<bool?>(multipleJob);
}
if (childrens != null) {
json['childrens'] = nativeToJson<int?>(childrens);
}
if (otherDeps != null) {
json['otherDeps'] = nativeToJson<int?>(otherDeps);
}
if (totalCredits != null) {
json['totalCredits'] = nativeToJson<double?>(totalCredits);
}
if (otherInconme != null) {
json['otherInconme'] = nativeToJson<double?>(otherInconme);
}
if (deductions != null) {
json['deductions'] = nativeToJson<double?>(deductions);
}
if (extraWithholding != null) {
json['extraWithholding'] = nativeToJson<double?>(extraWithholding);
}
if (citizen != null) {
json['citizen'] =
citizenshipStatusSerializer(citizen!)
;
}
if (uscis != null) {
json['uscis'] = nativeToJson<String?>(uscis);
}
if (passportNumber != null) {
json['passportNumber'] = nativeToJson<String?>(passportNumber);
}
if (countryIssue != null) {
json['countryIssue'] = nativeToJson<String?>(countryIssue);
}
if (prepartorOrTranslator != null) {
json['prepartorOrTranslator'] = nativeToJson<bool?>(prepartorOrTranslator);
}
if (signature != null) {
json['signature'] = nativeToJson<String?>(signature);
}
if (date != null) {
json['date'] = date!.toJson();
}
json['status'] =
taxFormStatusSerializer(status)
;
json['staffId'] = nativeToJson<String>(staffId);
if (createdAt != null) {
json['createdAt'] = createdAt!.toJson();
}
if (updatedAt != null) {
json['updatedAt'] = updatedAt!.toJson();
}
if (createdBy != null) {
json['createdBy'] = nativeToJson<String?>(createdBy);
}
return json;
}
GetTaxFormsByStaffIdTaxForms({
required this.id,
required this.formType,
required this.firstName,
required this.lastName,
this.mInitial,
this.oLastName,
this.dob,
required this.socialSN,
this.email,
this.phone,
required this.address,
this.city,
this.apt,
this.state,
this.zipCode,
this.marital,
this.multipleJob,
this.childrens,
this.otherDeps,
this.totalCredits,
this.otherInconme,
this.deductions,
this.extraWithholding,
this.citizen,
this.uscis,
this.passportNumber,
this.countryIssue,
this.prepartorOrTranslator,
this.signature,
this.date,
required this.status,
required this.staffId,
this.createdAt,
this.updatedAt,
this.createdBy,
});
}
@immutable
class GetTaxFormsByStaffIdData {
final List<GetTaxFormsByStaffIdTaxForms> taxForms;
GetTaxFormsByStaffIdData.fromJson(dynamic json):
taxForms = (json['taxForms'] as List<dynamic>)
.map((e) => GetTaxFormsByStaffIdTaxForms.fromJson(e))
.toList();
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final GetTaxFormsByStaffIdData otherTyped = other as GetTaxFormsByStaffIdData;
return taxForms == otherTyped.taxForms;
}
@override
int get hashCode => taxForms.hashCode;
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['taxForms'] = taxForms.map((e) => e.toJson()).toList();
return json;
}
GetTaxFormsByStaffIdData({
required this.taxForms,
});
}
@immutable
class GetTaxFormsByStaffIdVariables {
final String staffId;
late final Optional<int>offset;
late final Optional<int>limit;
@Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
GetTaxFormsByStaffIdVariables.fromJson(Map<String, dynamic> json):
staffId = nativeFromJson<String>(json['staffId']) {
offset = Optional.optional(nativeFromJson, nativeToJson);
offset.value = json['offset'] == null ? null : nativeFromJson<int>(json['offset']);
limit = Optional.optional(nativeFromJson, nativeToJson);
limit.value = json['limit'] == null ? null : nativeFromJson<int>(json['limit']);
}
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final GetTaxFormsByStaffIdVariables otherTyped = other as GetTaxFormsByStaffIdVariables;
return staffId == otherTyped.staffId &&
offset == otherTyped.offset &&
limit == otherTyped.limit;
}
@override
int get hashCode => Object.hashAll([staffId.hashCode, offset.hashCode, limit.hashCode]);
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['staffId'] = nativeToJson<String>(staffId);
if(offset.state == OptionalState.set) {
json['offset'] = offset.toJson();
}
if(limit.state == OptionalState.set) {
json['limit'] = limit.toJson();
}
return json;
}
GetTaxFormsByStaffIdVariables({
required this.staffId,
required this.offset,
required this.limit,
});
}

View File

@@ -1,190 +0,0 @@
part of 'generated.dart';
class GetTaxFormsBystaffIdVariablesBuilder {
String staffId;
final FirebaseDataConnect _dataConnect;
GetTaxFormsBystaffIdVariablesBuilder(this._dataConnect, {required this.staffId,});
Deserializer<GetTaxFormsBystaffIdData> dataDeserializer = (dynamic json) => GetTaxFormsBystaffIdData.fromJson(jsonDecode(json));
Serializer<GetTaxFormsBystaffIdVariables> varsSerializer = (GetTaxFormsBystaffIdVariables vars) => jsonEncode(vars.toJson());
Future<QueryResult<GetTaxFormsBystaffIdData, GetTaxFormsBystaffIdVariables>> execute() {
return ref().execute();
}
QueryRef<GetTaxFormsBystaffIdData, GetTaxFormsBystaffIdVariables> ref() {
GetTaxFormsBystaffIdVariables vars= GetTaxFormsBystaffIdVariables(staffId: staffId,);
return _dataConnect.query("getTaxFormsBystaffId", dataDeserializer, varsSerializer, vars);
}
}
@immutable
class GetTaxFormsBystaffIdTaxForms {
final String id;
final EnumValue<TaxFormType> formType;
final String title;
final String? subtitle;
final String? description;
final EnumValue<TaxFormStatus> status;
final String staffId;
final AnyValue? formData;
final Timestamp? createdAt;
final Timestamp? updatedAt;
final String? createdBy;
GetTaxFormsBystaffIdTaxForms.fromJson(dynamic json):
id = nativeFromJson<String>(json['id']),
formType = taxFormTypeDeserializer(json['formType']),
title = nativeFromJson<String>(json['title']),
subtitle = json['subtitle'] == null ? null : nativeFromJson<String>(json['subtitle']),
description = json['description'] == null ? null : nativeFromJson<String>(json['description']),
status = taxFormStatusDeserializer(json['status']),
staffId = nativeFromJson<String>(json['staffId']),
formData = json['formData'] == null ? null : AnyValue.fromJson(json['formData']),
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
updatedAt = json['updatedAt'] == null ? null : Timestamp.fromJson(json['updatedAt']),
createdBy = json['createdBy'] == null ? null : nativeFromJson<String>(json['createdBy']);
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final GetTaxFormsBystaffIdTaxForms otherTyped = other as GetTaxFormsBystaffIdTaxForms;
return id == otherTyped.id &&
formType == otherTyped.formType &&
title == otherTyped.title &&
subtitle == otherTyped.subtitle &&
description == otherTyped.description &&
status == otherTyped.status &&
staffId == otherTyped.staffId &&
formData == otherTyped.formData &&
createdAt == otherTyped.createdAt &&
updatedAt == otherTyped.updatedAt &&
createdBy == otherTyped.createdBy;
}
@override
int get hashCode => Object.hashAll([id.hashCode, formType.hashCode, title.hashCode, subtitle.hashCode, description.hashCode, status.hashCode, staffId.hashCode, formData.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode]);
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['id'] = nativeToJson<String>(id);
json['formType'] =
taxFormTypeSerializer(formType)
;
json['title'] = nativeToJson<String>(title);
if (subtitle != null) {
json['subtitle'] = nativeToJson<String?>(subtitle);
}
if (description != null) {
json['description'] = nativeToJson<String?>(description);
}
json['status'] =
taxFormStatusSerializer(status)
;
json['staffId'] = nativeToJson<String>(staffId);
if (formData != null) {
json['formData'] = formData!.toJson();
}
if (createdAt != null) {
json['createdAt'] = createdAt!.toJson();
}
if (updatedAt != null) {
json['updatedAt'] = updatedAt!.toJson();
}
if (createdBy != null) {
json['createdBy'] = nativeToJson<String?>(createdBy);
}
return json;
}
GetTaxFormsBystaffIdTaxForms({
required this.id,
required this.formType,
required this.title,
this.subtitle,
this.description,
required this.status,
required this.staffId,
this.formData,
this.createdAt,
this.updatedAt,
this.createdBy,
});
}
@immutable
class GetTaxFormsBystaffIdData {
final List<GetTaxFormsBystaffIdTaxForms> taxForms;
GetTaxFormsBystaffIdData.fromJson(dynamic json):
taxForms = (json['taxForms'] as List<dynamic>)
.map((e) => GetTaxFormsBystaffIdTaxForms.fromJson(e))
.toList();
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final GetTaxFormsBystaffIdData otherTyped = other as GetTaxFormsBystaffIdData;
return taxForms == otherTyped.taxForms;
}
@override
int get hashCode => taxForms.hashCode;
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['taxForms'] = taxForms.map((e) => e.toJson()).toList();
return json;
}
GetTaxFormsBystaffIdData({
required this.taxForms,
});
}
@immutable
class GetTaxFormsBystaffIdVariables {
final String staffId;
@Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
GetTaxFormsBystaffIdVariables.fromJson(Map<String, dynamic> json):
staffId = nativeFromJson<String>(json['staffId']);
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final GetTaxFormsBystaffIdVariables otherTyped = other as GetTaxFormsBystaffIdVariables;
return staffId == otherTyped.staffId;
}
@override
int get hashCode => staffId.hashCode;
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['staffId'] = nativeToJson<String>(staffId);
return json;
}
GetTaxFormsBystaffIdVariables({
required this.staffId,
});
}

View File

@@ -1,18 +1,29 @@
part of 'generated.dart';
class ListTaxFormsVariablesBuilder {
Optional<int> _offset = Optional.optional(nativeFromJson, nativeToJson);
Optional<int> _limit = Optional.optional(nativeFromJson, nativeToJson);
final FirebaseDataConnect _dataConnect;
ListTaxFormsVariablesBuilder offset(int? t) {
_offset.value = t;
return this;
}
ListTaxFormsVariablesBuilder limit(int? t) {
_limit.value = t;
return this;
}
ListTaxFormsVariablesBuilder(this._dataConnect, );
Deserializer<ListTaxFormsData> dataDeserializer = (dynamic json) => ListTaxFormsData.fromJson(jsonDecode(json));
Future<QueryResult<ListTaxFormsData, void>> execute() {
Serializer<ListTaxFormsVariables> varsSerializer = (ListTaxFormsVariables vars) => jsonEncode(vars.toJson());
Future<QueryResult<ListTaxFormsData, ListTaxFormsVariables>> execute() {
return ref().execute();
}
QueryRef<ListTaxFormsData, void> ref() {
return _dataConnect.query("listTaxForms", dataDeserializer, emptySerializer, null);
QueryRef<ListTaxFormsData, ListTaxFormsVariables> ref() {
ListTaxFormsVariables vars= ListTaxFormsVariables(offset: _offset,limit: _limit,);
return _dataConnect.query("listTaxForms", dataDeserializer, varsSerializer, vars);
}
}
@@ -20,12 +31,36 @@ class ListTaxFormsVariablesBuilder {
class ListTaxFormsTaxForms {
final String id;
final EnumValue<TaxFormType> formType;
final String title;
final String? subtitle;
final String? description;
final String firstName;
final String lastName;
final String? mInitial;
final String? oLastName;
final Timestamp? dob;
final int socialSN;
final String? email;
final String? phone;
final String address;
final String? city;
final String? apt;
final String? state;
final String? zipCode;
final EnumValue<MaritalStatus>? marital;
final bool? multipleJob;
final int? childrens;
final int? otherDeps;
final double? totalCredits;
final double? otherInconme;
final double? deductions;
final double? extraWithholding;
final EnumValue<CitizenshipStatus>? citizen;
final String? uscis;
final String? passportNumber;
final String? countryIssue;
final bool? prepartorOrTranslator;
final String? signature;
final Timestamp? date;
final EnumValue<TaxFormStatus> status;
final String staffId;
final AnyValue? formData;
final Timestamp? createdAt;
final Timestamp? updatedAt;
final String? createdBy;
@@ -33,12 +68,36 @@ class ListTaxFormsTaxForms {
id = nativeFromJson<String>(json['id']),
formType = taxFormTypeDeserializer(json['formType']),
title = nativeFromJson<String>(json['title']),
subtitle = json['subtitle'] == null ? null : nativeFromJson<String>(json['subtitle']),
description = json['description'] == null ? null : nativeFromJson<String>(json['description']),
firstName = nativeFromJson<String>(json['firstName']),
lastName = nativeFromJson<String>(json['lastName']),
mInitial = json['mInitial'] == null ? null : nativeFromJson<String>(json['mInitial']),
oLastName = json['oLastName'] == null ? null : nativeFromJson<String>(json['oLastName']),
dob = json['dob'] == null ? null : Timestamp.fromJson(json['dob']),
socialSN = nativeFromJson<int>(json['socialSN']),
email = json['email'] == null ? null : nativeFromJson<String>(json['email']),
phone = json['phone'] == null ? null : nativeFromJson<String>(json['phone']),
address = nativeFromJson<String>(json['address']),
city = json['city'] == null ? null : nativeFromJson<String>(json['city']),
apt = json['apt'] == null ? null : nativeFromJson<String>(json['apt']),
state = json['state'] == null ? null : nativeFromJson<String>(json['state']),
zipCode = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']),
marital = json['marital'] == null ? null : maritalStatusDeserializer(json['marital']),
multipleJob = json['multipleJob'] == null ? null : nativeFromJson<bool>(json['multipleJob']),
childrens = json['childrens'] == null ? null : nativeFromJson<int>(json['childrens']),
otherDeps = json['otherDeps'] == null ? null : nativeFromJson<int>(json['otherDeps']),
totalCredits = json['totalCredits'] == null ? null : nativeFromJson<double>(json['totalCredits']),
otherInconme = json['otherInconme'] == null ? null : nativeFromJson<double>(json['otherInconme']),
deductions = json['deductions'] == null ? null : nativeFromJson<double>(json['deductions']),
extraWithholding = json['extraWithholding'] == null ? null : nativeFromJson<double>(json['extraWithholding']),
citizen = json['citizen'] == null ? null : citizenshipStatusDeserializer(json['citizen']),
uscis = json['uscis'] == null ? null : nativeFromJson<String>(json['uscis']),
passportNumber = json['passportNumber'] == null ? null : nativeFromJson<String>(json['passportNumber']),
countryIssue = json['countryIssue'] == null ? null : nativeFromJson<String>(json['countryIssue']),
prepartorOrTranslator = json['prepartorOrTranslator'] == null ? null : nativeFromJson<bool>(json['prepartorOrTranslator']),
signature = json['signature'] == null ? null : nativeFromJson<String>(json['signature']),
date = json['date'] == null ? null : Timestamp.fromJson(json['date']),
status = taxFormStatusDeserializer(json['status']),
staffId = nativeFromJson<String>(json['staffId']),
formData = json['formData'] == null ? null : AnyValue.fromJson(json['formData']),
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
updatedAt = json['updatedAt'] == null ? null : Timestamp.fromJson(json['updatedAt']),
createdBy = json['createdBy'] == null ? null : nativeFromJson<String>(json['createdBy']);
@@ -54,19 +113,43 @@ class ListTaxFormsTaxForms {
final ListTaxFormsTaxForms otherTyped = other as ListTaxFormsTaxForms;
return id == otherTyped.id &&
formType == otherTyped.formType &&
title == otherTyped.title &&
subtitle == otherTyped.subtitle &&
description == otherTyped.description &&
firstName == otherTyped.firstName &&
lastName == otherTyped.lastName &&
mInitial == otherTyped.mInitial &&
oLastName == otherTyped.oLastName &&
dob == otherTyped.dob &&
socialSN == otherTyped.socialSN &&
email == otherTyped.email &&
phone == otherTyped.phone &&
address == otherTyped.address &&
city == otherTyped.city &&
apt == otherTyped.apt &&
state == otherTyped.state &&
zipCode == otherTyped.zipCode &&
marital == otherTyped.marital &&
multipleJob == otherTyped.multipleJob &&
childrens == otherTyped.childrens &&
otherDeps == otherTyped.otherDeps &&
totalCredits == otherTyped.totalCredits &&
otherInconme == otherTyped.otherInconme &&
deductions == otherTyped.deductions &&
extraWithholding == otherTyped.extraWithholding &&
citizen == otherTyped.citizen &&
uscis == otherTyped.uscis &&
passportNumber == otherTyped.passportNumber &&
countryIssue == otherTyped.countryIssue &&
prepartorOrTranslator == otherTyped.prepartorOrTranslator &&
signature == otherTyped.signature &&
date == otherTyped.date &&
status == otherTyped.status &&
staffId == otherTyped.staffId &&
formData == otherTyped.formData &&
createdAt == otherTyped.createdAt &&
updatedAt == otherTyped.updatedAt &&
createdBy == otherTyped.createdBy;
}
@override
int get hashCode => Object.hashAll([id.hashCode, formType.hashCode, title.hashCode, subtitle.hashCode, description.hashCode, status.hashCode, staffId.hashCode, formData.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode]);
int get hashCode => Object.hashAll([id.hashCode, formType.hashCode, firstName.hashCode, lastName.hashCode, mInitial.hashCode, oLastName.hashCode, dob.hashCode, socialSN.hashCode, email.hashCode, phone.hashCode, address.hashCode, city.hashCode, apt.hashCode, state.hashCode, zipCode.hashCode, marital.hashCode, multipleJob.hashCode, childrens.hashCode, otherDeps.hashCode, totalCredits.hashCode, otherInconme.hashCode, deductions.hashCode, extraWithholding.hashCode, citizen.hashCode, uscis.hashCode, passportNumber.hashCode, countryIssue.hashCode, prepartorOrTranslator.hashCode, signature.hashCode, date.hashCode, status.hashCode, staffId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode]);
Map<String, dynamic> toJson() {
@@ -75,20 +158,90 @@ class ListTaxFormsTaxForms {
json['formType'] =
taxFormTypeSerializer(formType)
;
json['title'] = nativeToJson<String>(title);
if (subtitle != null) {
json['subtitle'] = nativeToJson<String?>(subtitle);
json['firstName'] = nativeToJson<String>(firstName);
json['lastName'] = nativeToJson<String>(lastName);
if (mInitial != null) {
json['mInitial'] = nativeToJson<String?>(mInitial);
}
if (description != null) {
json['description'] = nativeToJson<String?>(description);
if (oLastName != null) {
json['oLastName'] = nativeToJson<String?>(oLastName);
}
if (dob != null) {
json['dob'] = dob!.toJson();
}
json['socialSN'] = nativeToJson<int>(socialSN);
if (email != null) {
json['email'] = nativeToJson<String?>(email);
}
if (phone != null) {
json['phone'] = nativeToJson<String?>(phone);
}
json['address'] = nativeToJson<String>(address);
if (city != null) {
json['city'] = nativeToJson<String?>(city);
}
if (apt != null) {
json['apt'] = nativeToJson<String?>(apt);
}
if (state != null) {
json['state'] = nativeToJson<String?>(state);
}
if (zipCode != null) {
json['zipCode'] = nativeToJson<String?>(zipCode);
}
if (marital != null) {
json['marital'] =
maritalStatusSerializer(marital!)
;
}
if (multipleJob != null) {
json['multipleJob'] = nativeToJson<bool?>(multipleJob);
}
if (childrens != null) {
json['childrens'] = nativeToJson<int?>(childrens);
}
if (otherDeps != null) {
json['otherDeps'] = nativeToJson<int?>(otherDeps);
}
if (totalCredits != null) {
json['totalCredits'] = nativeToJson<double?>(totalCredits);
}
if (otherInconme != null) {
json['otherInconme'] = nativeToJson<double?>(otherInconme);
}
if (deductions != null) {
json['deductions'] = nativeToJson<double?>(deductions);
}
if (extraWithholding != null) {
json['extraWithholding'] = nativeToJson<double?>(extraWithholding);
}
if (citizen != null) {
json['citizen'] =
citizenshipStatusSerializer(citizen!)
;
}
if (uscis != null) {
json['uscis'] = nativeToJson<String?>(uscis);
}
if (passportNumber != null) {
json['passportNumber'] = nativeToJson<String?>(passportNumber);
}
if (countryIssue != null) {
json['countryIssue'] = nativeToJson<String?>(countryIssue);
}
if (prepartorOrTranslator != null) {
json['prepartorOrTranslator'] = nativeToJson<bool?>(prepartorOrTranslator);
}
if (signature != null) {
json['signature'] = nativeToJson<String?>(signature);
}
if (date != null) {
json['date'] = date!.toJson();
}
json['status'] =
taxFormStatusSerializer(status)
;
json['staffId'] = nativeToJson<String>(staffId);
if (formData != null) {
json['formData'] = formData!.toJson();
}
if (createdAt != null) {
json['createdAt'] = createdAt!.toJson();
}
@@ -104,12 +257,36 @@ class ListTaxFormsTaxForms {
ListTaxFormsTaxForms({
required this.id,
required this.formType,
required this.title,
this.subtitle,
this.description,
required this.firstName,
required this.lastName,
this.mInitial,
this.oLastName,
this.dob,
required this.socialSN,
this.email,
this.phone,
required this.address,
this.city,
this.apt,
this.state,
this.zipCode,
this.marital,
this.multipleJob,
this.childrens,
this.otherDeps,
this.totalCredits,
this.otherInconme,
this.deductions,
this.extraWithholding,
this.citizen,
this.uscis,
this.passportNumber,
this.countryIssue,
this.prepartorOrTranslator,
this.signature,
this.date,
required this.status,
required this.staffId,
this.formData,
this.createdAt,
this.updatedAt,
this.createdBy,
@@ -152,3 +329,54 @@ class ListTaxFormsData {
});
}
@immutable
class ListTaxFormsVariables {
late final Optional<int>offset;
late final Optional<int>limit;
@Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
ListTaxFormsVariables.fromJson(Map<String, dynamic> json) {
offset = Optional.optional(nativeFromJson, nativeToJson);
offset.value = json['offset'] == null ? null : nativeFromJson<int>(json['offset']);
limit = Optional.optional(nativeFromJson, nativeToJson);
limit.value = json['limit'] == null ? null : nativeFromJson<int>(json['limit']);
}
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final ListTaxFormsVariables otherTyped = other as ListTaxFormsVariables;
return offset == otherTyped.offset &&
limit == otherTyped.limit;
}
@override
int get hashCode => Object.hashAll([offset.hashCode, limit.hashCode]);
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
if(offset.state == OptionalState.set) {
json['offset'] = offset.toJson();
}
if(limit.state == OptionalState.set) {
json['limit'] = limit.toJson();
}
return json;
}
ListTaxFormsVariables({
required this.offset,
required this.limit,
});
}

View File

@@ -0,0 +1,427 @@
part of 'generated.dart';
class ListTaxFormsWhereVariablesBuilder {
Optional<TaxFormType> _formType = Optional.optional((data) => TaxFormType.values.byName(data), enumSerializer);
Optional<TaxFormStatus> _status = Optional.optional((data) => TaxFormStatus.values.byName(data), enumSerializer);
Optional<String> _staffId = Optional.optional(nativeFromJson, nativeToJson);
Optional<int> _offset = Optional.optional(nativeFromJson, nativeToJson);
Optional<int> _limit = Optional.optional(nativeFromJson, nativeToJson);
final FirebaseDataConnect _dataConnect;
ListTaxFormsWhereVariablesBuilder formType(TaxFormType? t) {
_formType.value = t;
return this;
}
ListTaxFormsWhereVariablesBuilder status(TaxFormStatus? t) {
_status.value = t;
return this;
}
ListTaxFormsWhereVariablesBuilder staffId(String? t) {
_staffId.value = t;
return this;
}
ListTaxFormsWhereVariablesBuilder offset(int? t) {
_offset.value = t;
return this;
}
ListTaxFormsWhereVariablesBuilder limit(int? t) {
_limit.value = t;
return this;
}
ListTaxFormsWhereVariablesBuilder(this._dataConnect, );
Deserializer<ListTaxFormsWhereData> dataDeserializer = (dynamic json) => ListTaxFormsWhereData.fromJson(jsonDecode(json));
Serializer<ListTaxFormsWhereVariables> varsSerializer = (ListTaxFormsWhereVariables vars) => jsonEncode(vars.toJson());
Future<QueryResult<ListTaxFormsWhereData, ListTaxFormsWhereVariables>> execute() {
return ref().execute();
}
QueryRef<ListTaxFormsWhereData, ListTaxFormsWhereVariables> ref() {
ListTaxFormsWhereVariables vars= ListTaxFormsWhereVariables(formType: _formType,status: _status,staffId: _staffId,offset: _offset,limit: _limit,);
return _dataConnect.query("listTaxFormsWhere", dataDeserializer, varsSerializer, vars);
}
}
@immutable
class ListTaxFormsWhereTaxForms {
final String id;
final EnumValue<TaxFormType> formType;
final String firstName;
final String lastName;
final String? mInitial;
final String? oLastName;
final Timestamp? dob;
final int socialSN;
final String? email;
final String? phone;
final String address;
final String? city;
final String? apt;
final String? state;
final String? zipCode;
final EnumValue<MaritalStatus>? marital;
final bool? multipleJob;
final int? childrens;
final int? otherDeps;
final double? totalCredits;
final double? otherInconme;
final double? deductions;
final double? extraWithholding;
final EnumValue<CitizenshipStatus>? citizen;
final String? uscis;
final String? passportNumber;
final String? countryIssue;
final bool? prepartorOrTranslator;
final String? signature;
final Timestamp? date;
final EnumValue<TaxFormStatus> status;
final String staffId;
final Timestamp? createdAt;
final Timestamp? updatedAt;
final String? createdBy;
ListTaxFormsWhereTaxForms.fromJson(dynamic json):
id = nativeFromJson<String>(json['id']),
formType = taxFormTypeDeserializer(json['formType']),
firstName = nativeFromJson<String>(json['firstName']),
lastName = nativeFromJson<String>(json['lastName']),
mInitial = json['mInitial'] == null ? null : nativeFromJson<String>(json['mInitial']),
oLastName = json['oLastName'] == null ? null : nativeFromJson<String>(json['oLastName']),
dob = json['dob'] == null ? null : Timestamp.fromJson(json['dob']),
socialSN = nativeFromJson<int>(json['socialSN']),
email = json['email'] == null ? null : nativeFromJson<String>(json['email']),
phone = json['phone'] == null ? null : nativeFromJson<String>(json['phone']),
address = nativeFromJson<String>(json['address']),
city = json['city'] == null ? null : nativeFromJson<String>(json['city']),
apt = json['apt'] == null ? null : nativeFromJson<String>(json['apt']),
state = json['state'] == null ? null : nativeFromJson<String>(json['state']),
zipCode = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']),
marital = json['marital'] == null ? null : maritalStatusDeserializer(json['marital']),
multipleJob = json['multipleJob'] == null ? null : nativeFromJson<bool>(json['multipleJob']),
childrens = json['childrens'] == null ? null : nativeFromJson<int>(json['childrens']),
otherDeps = json['otherDeps'] == null ? null : nativeFromJson<int>(json['otherDeps']),
totalCredits = json['totalCredits'] == null ? null : nativeFromJson<double>(json['totalCredits']),
otherInconme = json['otherInconme'] == null ? null : nativeFromJson<double>(json['otherInconme']),
deductions = json['deductions'] == null ? null : nativeFromJson<double>(json['deductions']),
extraWithholding = json['extraWithholding'] == null ? null : nativeFromJson<double>(json['extraWithholding']),
citizen = json['citizen'] == null ? null : citizenshipStatusDeserializer(json['citizen']),
uscis = json['uscis'] == null ? null : nativeFromJson<String>(json['uscis']),
passportNumber = json['passportNumber'] == null ? null : nativeFromJson<String>(json['passportNumber']),
countryIssue = json['countryIssue'] == null ? null : nativeFromJson<String>(json['countryIssue']),
prepartorOrTranslator = json['prepartorOrTranslator'] == null ? null : nativeFromJson<bool>(json['prepartorOrTranslator']),
signature = json['signature'] == null ? null : nativeFromJson<String>(json['signature']),
date = json['date'] == null ? null : Timestamp.fromJson(json['date']),
status = taxFormStatusDeserializer(json['status']),
staffId = nativeFromJson<String>(json['staffId']),
createdAt = json['createdAt'] == null ? null : Timestamp.fromJson(json['createdAt']),
updatedAt = json['updatedAt'] == null ? null : Timestamp.fromJson(json['updatedAt']),
createdBy = json['createdBy'] == null ? null : nativeFromJson<String>(json['createdBy']);
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final ListTaxFormsWhereTaxForms otherTyped = other as ListTaxFormsWhereTaxForms;
return id == otherTyped.id &&
formType == otherTyped.formType &&
firstName == otherTyped.firstName &&
lastName == otherTyped.lastName &&
mInitial == otherTyped.mInitial &&
oLastName == otherTyped.oLastName &&
dob == otherTyped.dob &&
socialSN == otherTyped.socialSN &&
email == otherTyped.email &&
phone == otherTyped.phone &&
address == otherTyped.address &&
city == otherTyped.city &&
apt == otherTyped.apt &&
state == otherTyped.state &&
zipCode == otherTyped.zipCode &&
marital == otherTyped.marital &&
multipleJob == otherTyped.multipleJob &&
childrens == otherTyped.childrens &&
otherDeps == otherTyped.otherDeps &&
totalCredits == otherTyped.totalCredits &&
otherInconme == otherTyped.otherInconme &&
deductions == otherTyped.deductions &&
extraWithholding == otherTyped.extraWithholding &&
citizen == otherTyped.citizen &&
uscis == otherTyped.uscis &&
passportNumber == otherTyped.passportNumber &&
countryIssue == otherTyped.countryIssue &&
prepartorOrTranslator == otherTyped.prepartorOrTranslator &&
signature == otherTyped.signature &&
date == otherTyped.date &&
status == otherTyped.status &&
staffId == otherTyped.staffId &&
createdAt == otherTyped.createdAt &&
updatedAt == otherTyped.updatedAt &&
createdBy == otherTyped.createdBy;
}
@override
int get hashCode => Object.hashAll([id.hashCode, formType.hashCode, firstName.hashCode, lastName.hashCode, mInitial.hashCode, oLastName.hashCode, dob.hashCode, socialSN.hashCode, email.hashCode, phone.hashCode, address.hashCode, city.hashCode, apt.hashCode, state.hashCode, zipCode.hashCode, marital.hashCode, multipleJob.hashCode, childrens.hashCode, otherDeps.hashCode, totalCredits.hashCode, otherInconme.hashCode, deductions.hashCode, extraWithholding.hashCode, citizen.hashCode, uscis.hashCode, passportNumber.hashCode, countryIssue.hashCode, prepartorOrTranslator.hashCode, signature.hashCode, date.hashCode, status.hashCode, staffId.hashCode, createdAt.hashCode, updatedAt.hashCode, createdBy.hashCode]);
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['id'] = nativeToJson<String>(id);
json['formType'] =
taxFormTypeSerializer(formType)
;
json['firstName'] = nativeToJson<String>(firstName);
json['lastName'] = nativeToJson<String>(lastName);
if (mInitial != null) {
json['mInitial'] = nativeToJson<String?>(mInitial);
}
if (oLastName != null) {
json['oLastName'] = nativeToJson<String?>(oLastName);
}
if (dob != null) {
json['dob'] = dob!.toJson();
}
json['socialSN'] = nativeToJson<int>(socialSN);
if (email != null) {
json['email'] = nativeToJson<String?>(email);
}
if (phone != null) {
json['phone'] = nativeToJson<String?>(phone);
}
json['address'] = nativeToJson<String>(address);
if (city != null) {
json['city'] = nativeToJson<String?>(city);
}
if (apt != null) {
json['apt'] = nativeToJson<String?>(apt);
}
if (state != null) {
json['state'] = nativeToJson<String?>(state);
}
if (zipCode != null) {
json['zipCode'] = nativeToJson<String?>(zipCode);
}
if (marital != null) {
json['marital'] =
maritalStatusSerializer(marital!)
;
}
if (multipleJob != null) {
json['multipleJob'] = nativeToJson<bool?>(multipleJob);
}
if (childrens != null) {
json['childrens'] = nativeToJson<int?>(childrens);
}
if (otherDeps != null) {
json['otherDeps'] = nativeToJson<int?>(otherDeps);
}
if (totalCredits != null) {
json['totalCredits'] = nativeToJson<double?>(totalCredits);
}
if (otherInconme != null) {
json['otherInconme'] = nativeToJson<double?>(otherInconme);
}
if (deductions != null) {
json['deductions'] = nativeToJson<double?>(deductions);
}
if (extraWithholding != null) {
json['extraWithholding'] = nativeToJson<double?>(extraWithholding);
}
if (citizen != null) {
json['citizen'] =
citizenshipStatusSerializer(citizen!)
;
}
if (uscis != null) {
json['uscis'] = nativeToJson<String?>(uscis);
}
if (passportNumber != null) {
json['passportNumber'] = nativeToJson<String?>(passportNumber);
}
if (countryIssue != null) {
json['countryIssue'] = nativeToJson<String?>(countryIssue);
}
if (prepartorOrTranslator != null) {
json['prepartorOrTranslator'] = nativeToJson<bool?>(prepartorOrTranslator);
}
if (signature != null) {
json['signature'] = nativeToJson<String?>(signature);
}
if (date != null) {
json['date'] = date!.toJson();
}
json['status'] =
taxFormStatusSerializer(status)
;
json['staffId'] = nativeToJson<String>(staffId);
if (createdAt != null) {
json['createdAt'] = createdAt!.toJson();
}
if (updatedAt != null) {
json['updatedAt'] = updatedAt!.toJson();
}
if (createdBy != null) {
json['createdBy'] = nativeToJson<String?>(createdBy);
}
return json;
}
ListTaxFormsWhereTaxForms({
required this.id,
required this.formType,
required this.firstName,
required this.lastName,
this.mInitial,
this.oLastName,
this.dob,
required this.socialSN,
this.email,
this.phone,
required this.address,
this.city,
this.apt,
this.state,
this.zipCode,
this.marital,
this.multipleJob,
this.childrens,
this.otherDeps,
this.totalCredits,
this.otherInconme,
this.deductions,
this.extraWithholding,
this.citizen,
this.uscis,
this.passportNumber,
this.countryIssue,
this.prepartorOrTranslator,
this.signature,
this.date,
required this.status,
required this.staffId,
this.createdAt,
this.updatedAt,
this.createdBy,
});
}
@immutable
class ListTaxFormsWhereData {
final List<ListTaxFormsWhereTaxForms> taxForms;
ListTaxFormsWhereData.fromJson(dynamic json):
taxForms = (json['taxForms'] as List<dynamic>)
.map((e) => ListTaxFormsWhereTaxForms.fromJson(e))
.toList();
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final ListTaxFormsWhereData otherTyped = other as ListTaxFormsWhereData;
return taxForms == otherTyped.taxForms;
}
@override
int get hashCode => taxForms.hashCode;
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['taxForms'] = taxForms.map((e) => e.toJson()).toList();
return json;
}
ListTaxFormsWhereData({
required this.taxForms,
});
}
@immutable
class ListTaxFormsWhereVariables {
late final Optional<TaxFormType>formType;
late final Optional<TaxFormStatus>status;
late final Optional<String>staffId;
late final Optional<int>offset;
late final Optional<int>limit;
@Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
ListTaxFormsWhereVariables.fromJson(Map<String, dynamic> json) {
formType = Optional.optional((data) => TaxFormType.values.byName(data), enumSerializer);
formType.value = json['formType'] == null ? null : TaxFormType.values.byName(json['formType']);
status = Optional.optional((data) => TaxFormStatus.values.byName(data), enumSerializer);
status.value = json['status'] == null ? null : TaxFormStatus.values.byName(json['status']);
staffId = Optional.optional(nativeFromJson, nativeToJson);
staffId.value = json['staffId'] == null ? null : nativeFromJson<String>(json['staffId']);
offset = Optional.optional(nativeFromJson, nativeToJson);
offset.value = json['offset'] == null ? null : nativeFromJson<int>(json['offset']);
limit = Optional.optional(nativeFromJson, nativeToJson);
limit.value = json['limit'] == null ? null : nativeFromJson<int>(json['limit']);
}
@override
bool operator ==(Object other) {
if(identical(this, other)) {
return true;
}
if(other.runtimeType != runtimeType) {
return false;
}
final ListTaxFormsWhereVariables otherTyped = other as ListTaxFormsWhereVariables;
return formType == otherTyped.formType &&
status == otherTyped.status &&
staffId == otherTyped.staffId &&
offset == otherTyped.offset &&
limit == otherTyped.limit;
}
@override
int get hashCode => Object.hashAll([formType.hashCode, status.hashCode, staffId.hashCode, offset.hashCode, limit.hashCode]);
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
if(formType.state == OptionalState.set) {
json['formType'] = formType.toJson();
}
if(status.state == OptionalState.set) {
json['status'] = status.toJson();
}
if(staffId.state == OptionalState.set) {
json['staffId'] = staffId.toJson();
}
if(offset.state == OptionalState.set) {
json['offset'] = offset.toJson();
}
if(limit.state == OptionalState.set) {
json['limit'] = limit.toJson();
}
return json;
}
ListTaxFormsWhereVariables({
required this.formType,
required this.status,
required this.staffId,
required this.offset,
required this.limit,
});
}

View File

@@ -2,32 +2,157 @@ part of 'generated.dart';
class UpdateTaxFormVariablesBuilder {
String id;
Optional<TaxFormType> _formType = Optional.optional((data) => TaxFormType.values.byName(data), enumSerializer);
Optional<String> _firstName = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _lastName = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _mInitial = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _oLastName = Optional.optional(nativeFromJson, nativeToJson);
Optional<Timestamp> _dob = Optional.optional((json) => json['dob'] = Timestamp.fromJson(json['dob']), defaultSerializer);
Optional<int> _socialSN = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _email = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _phone = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _address = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _city = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _apt = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _state = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _zipCode = Optional.optional(nativeFromJson, nativeToJson);
Optional<MaritalStatus> _marital = Optional.optional((data) => MaritalStatus.values.byName(data), enumSerializer);
Optional<bool> _multipleJob = Optional.optional(nativeFromJson, nativeToJson);
Optional<int> _childrens = Optional.optional(nativeFromJson, nativeToJson);
Optional<int> _otherDeps = Optional.optional(nativeFromJson, nativeToJson);
Optional<double> _totalCredits = Optional.optional(nativeFromJson, nativeToJson);
Optional<double> _otherInconme = Optional.optional(nativeFromJson, nativeToJson);
Optional<double> _deductions = Optional.optional(nativeFromJson, nativeToJson);
Optional<double> _extraWithholding = Optional.optional(nativeFromJson, nativeToJson);
Optional<CitizenshipStatus> _citizen = Optional.optional((data) => CitizenshipStatus.values.byName(data), enumSerializer);
Optional<String> _uscis = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _passportNumber = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _countryIssue = Optional.optional(nativeFromJson, nativeToJson);
Optional<bool> _prepartorOrTranslator = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _signature = Optional.optional(nativeFromJson, nativeToJson);
Optional<Timestamp> _date = Optional.optional((json) => json['date'] = Timestamp.fromJson(json['date']), defaultSerializer);
Optional<TaxFormStatus> _status = Optional.optional((data) => TaxFormStatus.values.byName(data), enumSerializer);
Optional<AnyValue> _formData = Optional.optional(AnyValue.fromJson, defaultSerializer);
Optional<String> _title = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _subtitle = Optional.optional(nativeFromJson, nativeToJson);
Optional<String> _description = Optional.optional(nativeFromJson, nativeToJson);
final FirebaseDataConnect _dataConnect; UpdateTaxFormVariablesBuilder status(TaxFormStatus? t) {
final FirebaseDataConnect _dataConnect; UpdateTaxFormVariablesBuilder formType(TaxFormType? t) {
_formType.value = t;
return this;
}
UpdateTaxFormVariablesBuilder firstName(String? t) {
_firstName.value = t;
return this;
}
UpdateTaxFormVariablesBuilder lastName(String? t) {
_lastName.value = t;
return this;
}
UpdateTaxFormVariablesBuilder mInitial(String? t) {
_mInitial.value = t;
return this;
}
UpdateTaxFormVariablesBuilder oLastName(String? t) {
_oLastName.value = t;
return this;
}
UpdateTaxFormVariablesBuilder dob(Timestamp? t) {
_dob.value = t;
return this;
}
UpdateTaxFormVariablesBuilder socialSN(int? t) {
_socialSN.value = t;
return this;
}
UpdateTaxFormVariablesBuilder email(String? t) {
_email.value = t;
return this;
}
UpdateTaxFormVariablesBuilder phone(String? t) {
_phone.value = t;
return this;
}
UpdateTaxFormVariablesBuilder address(String? t) {
_address.value = t;
return this;
}
UpdateTaxFormVariablesBuilder city(String? t) {
_city.value = t;
return this;
}
UpdateTaxFormVariablesBuilder apt(String? t) {
_apt.value = t;
return this;
}
UpdateTaxFormVariablesBuilder state(String? t) {
_state.value = t;
return this;
}
UpdateTaxFormVariablesBuilder zipCode(String? t) {
_zipCode.value = t;
return this;
}
UpdateTaxFormVariablesBuilder marital(MaritalStatus? t) {
_marital.value = t;
return this;
}
UpdateTaxFormVariablesBuilder multipleJob(bool? t) {
_multipleJob.value = t;
return this;
}
UpdateTaxFormVariablesBuilder childrens(int? t) {
_childrens.value = t;
return this;
}
UpdateTaxFormVariablesBuilder otherDeps(int? t) {
_otherDeps.value = t;
return this;
}
UpdateTaxFormVariablesBuilder totalCredits(double? t) {
_totalCredits.value = t;
return this;
}
UpdateTaxFormVariablesBuilder otherInconme(double? t) {
_otherInconme.value = t;
return this;
}
UpdateTaxFormVariablesBuilder deductions(double? t) {
_deductions.value = t;
return this;
}
UpdateTaxFormVariablesBuilder extraWithholding(double? t) {
_extraWithholding.value = t;
return this;
}
UpdateTaxFormVariablesBuilder citizen(CitizenshipStatus? t) {
_citizen.value = t;
return this;
}
UpdateTaxFormVariablesBuilder uscis(String? t) {
_uscis.value = t;
return this;
}
UpdateTaxFormVariablesBuilder passportNumber(String? t) {
_passportNumber.value = t;
return this;
}
UpdateTaxFormVariablesBuilder countryIssue(String? t) {
_countryIssue.value = t;
return this;
}
UpdateTaxFormVariablesBuilder prepartorOrTranslator(bool? t) {
_prepartorOrTranslator.value = t;
return this;
}
UpdateTaxFormVariablesBuilder signature(String? t) {
_signature.value = t;
return this;
}
UpdateTaxFormVariablesBuilder date(Timestamp? t) {
_date.value = t;
return this;
}
UpdateTaxFormVariablesBuilder status(TaxFormStatus? t) {
_status.value = t;
return this;
}
UpdateTaxFormVariablesBuilder formData(AnyValue? t) {
_formData.value = t;
return this;
}
UpdateTaxFormVariablesBuilder title(String? t) {
_title.value = t;
return this;
}
UpdateTaxFormVariablesBuilder subtitle(String? t) {
_subtitle.value = t;
return this;
}
UpdateTaxFormVariablesBuilder description(String? t) {
_description.value = t;
return this;
}
UpdateTaxFormVariablesBuilder(this._dataConnect, {required this.id,});
Deserializer<UpdateTaxFormData> dataDeserializer = (dynamic json) => UpdateTaxFormData.fromJson(jsonDecode(json));
@@ -37,7 +162,7 @@ class UpdateTaxFormVariablesBuilder {
}
MutationRef<UpdateTaxFormData, UpdateTaxFormVariables> ref() {
UpdateTaxFormVariables vars= UpdateTaxFormVariables(id: id,status: _status,formData: _formData,title: _title,subtitle: _subtitle,description: _description,);
UpdateTaxFormVariables vars= UpdateTaxFormVariables(id: id,formType: _formType,firstName: _firstName,lastName: _lastName,mInitial: _mInitial,oLastName: _oLastName,dob: _dob,socialSN: _socialSN,email: _email,phone: _phone,address: _address,city: _city,apt: _apt,state: _state,zipCode: _zipCode,marital: _marital,multipleJob: _multipleJob,childrens: _childrens,otherDeps: _otherDeps,totalCredits: _totalCredits,otherInconme: _otherInconme,deductions: _deductions,extraWithholding: _extraWithholding,citizen: _citizen,uscis: _uscis,passportNumber: _passportNumber,countryIssue: _countryIssue,prepartorOrTranslator: _prepartorOrTranslator,signature: _signature,date: _date,status: _status,);
return _dataConnect.mutation("updateTaxForm", dataDeserializer, varsSerializer, vars);
}
}
@@ -115,11 +240,36 @@ class UpdateTaxFormData {
@immutable
class UpdateTaxFormVariables {
final String id;
late final Optional<TaxFormType>formType;
late final Optional<String>firstName;
late final Optional<String>lastName;
late final Optional<String>mInitial;
late final Optional<String>oLastName;
late final Optional<Timestamp>dob;
late final Optional<int>socialSN;
late final Optional<String>email;
late final Optional<String>phone;
late final Optional<String>address;
late final Optional<String>city;
late final Optional<String>apt;
late final Optional<String>state;
late final Optional<String>zipCode;
late final Optional<MaritalStatus>marital;
late final Optional<bool>multipleJob;
late final Optional<int>childrens;
late final Optional<int>otherDeps;
late final Optional<double>totalCredits;
late final Optional<double>otherInconme;
late final Optional<double>deductions;
late final Optional<double>extraWithholding;
late final Optional<CitizenshipStatus>citizen;
late final Optional<String>uscis;
late final Optional<String>passportNumber;
late final Optional<String>countryIssue;
late final Optional<bool>prepartorOrTranslator;
late final Optional<String>signature;
late final Optional<Timestamp>date;
late final Optional<TaxFormStatus>status;
late final Optional<AnyValue>formData;
late final Optional<String>title;
late final Optional<String>subtitle;
late final Optional<String>description;
@Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
UpdateTaxFormVariables.fromJson(Map<String, dynamic> json):
@@ -127,25 +277,125 @@ class UpdateTaxFormVariables {
formType = Optional.optional((data) => TaxFormType.values.byName(data), enumSerializer);
formType.value = json['formType'] == null ? null : TaxFormType.values.byName(json['formType']);
firstName = Optional.optional(nativeFromJson, nativeToJson);
firstName.value = json['firstName'] == null ? null : nativeFromJson<String>(json['firstName']);
lastName = Optional.optional(nativeFromJson, nativeToJson);
lastName.value = json['lastName'] == null ? null : nativeFromJson<String>(json['lastName']);
mInitial = Optional.optional(nativeFromJson, nativeToJson);
mInitial.value = json['mInitial'] == null ? null : nativeFromJson<String>(json['mInitial']);
oLastName = Optional.optional(nativeFromJson, nativeToJson);
oLastName.value = json['oLastName'] == null ? null : nativeFromJson<String>(json['oLastName']);
dob = Optional.optional((json) => json['dob'] = Timestamp.fromJson(json['dob']), defaultSerializer);
dob.value = json['dob'] == null ? null : Timestamp.fromJson(json['dob']);
socialSN = Optional.optional(nativeFromJson, nativeToJson);
socialSN.value = json['socialSN'] == null ? null : nativeFromJson<int>(json['socialSN']);
email = Optional.optional(nativeFromJson, nativeToJson);
email.value = json['email'] == null ? null : nativeFromJson<String>(json['email']);
phone = Optional.optional(nativeFromJson, nativeToJson);
phone.value = json['phone'] == null ? null : nativeFromJson<String>(json['phone']);
address = Optional.optional(nativeFromJson, nativeToJson);
address.value = json['address'] == null ? null : nativeFromJson<String>(json['address']);
city = Optional.optional(nativeFromJson, nativeToJson);
city.value = json['city'] == null ? null : nativeFromJson<String>(json['city']);
apt = Optional.optional(nativeFromJson, nativeToJson);
apt.value = json['apt'] == null ? null : nativeFromJson<String>(json['apt']);
state = Optional.optional(nativeFromJson, nativeToJson);
state.value = json['state'] == null ? null : nativeFromJson<String>(json['state']);
zipCode = Optional.optional(nativeFromJson, nativeToJson);
zipCode.value = json['zipCode'] == null ? null : nativeFromJson<String>(json['zipCode']);
marital = Optional.optional((data) => MaritalStatus.values.byName(data), enumSerializer);
marital.value = json['marital'] == null ? null : MaritalStatus.values.byName(json['marital']);
multipleJob = Optional.optional(nativeFromJson, nativeToJson);
multipleJob.value = json['multipleJob'] == null ? null : nativeFromJson<bool>(json['multipleJob']);
childrens = Optional.optional(nativeFromJson, nativeToJson);
childrens.value = json['childrens'] == null ? null : nativeFromJson<int>(json['childrens']);
otherDeps = Optional.optional(nativeFromJson, nativeToJson);
otherDeps.value = json['otherDeps'] == null ? null : nativeFromJson<int>(json['otherDeps']);
totalCredits = Optional.optional(nativeFromJson, nativeToJson);
totalCredits.value = json['totalCredits'] == null ? null : nativeFromJson<double>(json['totalCredits']);
otherInconme = Optional.optional(nativeFromJson, nativeToJson);
otherInconme.value = json['otherInconme'] == null ? null : nativeFromJson<double>(json['otherInconme']);
deductions = Optional.optional(nativeFromJson, nativeToJson);
deductions.value = json['deductions'] == null ? null : nativeFromJson<double>(json['deductions']);
extraWithholding = Optional.optional(nativeFromJson, nativeToJson);
extraWithholding.value = json['extraWithholding'] == null ? null : nativeFromJson<double>(json['extraWithholding']);
citizen = Optional.optional((data) => CitizenshipStatus.values.byName(data), enumSerializer);
citizen.value = json['citizen'] == null ? null : CitizenshipStatus.values.byName(json['citizen']);
uscis = Optional.optional(nativeFromJson, nativeToJson);
uscis.value = json['uscis'] == null ? null : nativeFromJson<String>(json['uscis']);
passportNumber = Optional.optional(nativeFromJson, nativeToJson);
passportNumber.value = json['passportNumber'] == null ? null : nativeFromJson<String>(json['passportNumber']);
countryIssue = Optional.optional(nativeFromJson, nativeToJson);
countryIssue.value = json['countryIssue'] == null ? null : nativeFromJson<String>(json['countryIssue']);
prepartorOrTranslator = Optional.optional(nativeFromJson, nativeToJson);
prepartorOrTranslator.value = json['prepartorOrTranslator'] == null ? null : nativeFromJson<bool>(json['prepartorOrTranslator']);
signature = Optional.optional(nativeFromJson, nativeToJson);
signature.value = json['signature'] == null ? null : nativeFromJson<String>(json['signature']);
date = Optional.optional((json) => json['date'] = Timestamp.fromJson(json['date']), defaultSerializer);
date.value = json['date'] == null ? null : Timestamp.fromJson(json['date']);
status = Optional.optional((data) => TaxFormStatus.values.byName(data), enumSerializer);
status.value = json['status'] == null ? null : TaxFormStatus.values.byName(json['status']);
formData = Optional.optional(AnyValue.fromJson, defaultSerializer);
formData.value = json['formData'] == null ? null : AnyValue.fromJson(json['formData']);
title = Optional.optional(nativeFromJson, nativeToJson);
title.value = json['title'] == null ? null : nativeFromJson<String>(json['title']);
subtitle = Optional.optional(nativeFromJson, nativeToJson);
subtitle.value = json['subtitle'] == null ? null : nativeFromJson<String>(json['subtitle']);
description = Optional.optional(nativeFromJson, nativeToJson);
description.value = json['description'] == null ? null : nativeFromJson<String>(json['description']);
}
@override
bool operator ==(Object other) {
@@ -158,45 +408,170 @@ class UpdateTaxFormVariables {
final UpdateTaxFormVariables otherTyped = other as UpdateTaxFormVariables;
return id == otherTyped.id &&
status == otherTyped.status &&
formData == otherTyped.formData &&
title == otherTyped.title &&
subtitle == otherTyped.subtitle &&
description == otherTyped.description;
formType == otherTyped.formType &&
firstName == otherTyped.firstName &&
lastName == otherTyped.lastName &&
mInitial == otherTyped.mInitial &&
oLastName == otherTyped.oLastName &&
dob == otherTyped.dob &&
socialSN == otherTyped.socialSN &&
email == otherTyped.email &&
phone == otherTyped.phone &&
address == otherTyped.address &&
city == otherTyped.city &&
apt == otherTyped.apt &&
state == otherTyped.state &&
zipCode == otherTyped.zipCode &&
marital == otherTyped.marital &&
multipleJob == otherTyped.multipleJob &&
childrens == otherTyped.childrens &&
otherDeps == otherTyped.otherDeps &&
totalCredits == otherTyped.totalCredits &&
otherInconme == otherTyped.otherInconme &&
deductions == otherTyped.deductions &&
extraWithholding == otherTyped.extraWithholding &&
citizen == otherTyped.citizen &&
uscis == otherTyped.uscis &&
passportNumber == otherTyped.passportNumber &&
countryIssue == otherTyped.countryIssue &&
prepartorOrTranslator == otherTyped.prepartorOrTranslator &&
signature == otherTyped.signature &&
date == otherTyped.date &&
status == otherTyped.status;
}
@override
int get hashCode => Object.hashAll([id.hashCode, status.hashCode, formData.hashCode, title.hashCode, subtitle.hashCode, description.hashCode]);
int get hashCode => Object.hashAll([id.hashCode, formType.hashCode, firstName.hashCode, lastName.hashCode, mInitial.hashCode, oLastName.hashCode, dob.hashCode, socialSN.hashCode, email.hashCode, phone.hashCode, address.hashCode, city.hashCode, apt.hashCode, state.hashCode, zipCode.hashCode, marital.hashCode, multipleJob.hashCode, childrens.hashCode, otherDeps.hashCode, totalCredits.hashCode, otherInconme.hashCode, deductions.hashCode, extraWithholding.hashCode, citizen.hashCode, uscis.hashCode, passportNumber.hashCode, countryIssue.hashCode, prepartorOrTranslator.hashCode, signature.hashCode, date.hashCode, status.hashCode]);
Map<String, dynamic> toJson() {
Map<String, dynamic> json = {};
json['id'] = nativeToJson<String>(id);
if(formType.state == OptionalState.set) {
json['formType'] = formType.toJson();
}
if(firstName.state == OptionalState.set) {
json['firstName'] = firstName.toJson();
}
if(lastName.state == OptionalState.set) {
json['lastName'] = lastName.toJson();
}
if(mInitial.state == OptionalState.set) {
json['mInitial'] = mInitial.toJson();
}
if(oLastName.state == OptionalState.set) {
json['oLastName'] = oLastName.toJson();
}
if(dob.state == OptionalState.set) {
json['dob'] = dob.toJson();
}
if(socialSN.state == OptionalState.set) {
json['socialSN'] = socialSN.toJson();
}
if(email.state == OptionalState.set) {
json['email'] = email.toJson();
}
if(phone.state == OptionalState.set) {
json['phone'] = phone.toJson();
}
if(address.state == OptionalState.set) {
json['address'] = address.toJson();
}
if(city.state == OptionalState.set) {
json['city'] = city.toJson();
}
if(apt.state == OptionalState.set) {
json['apt'] = apt.toJson();
}
if(state.state == OptionalState.set) {
json['state'] = state.toJson();
}
if(zipCode.state == OptionalState.set) {
json['zipCode'] = zipCode.toJson();
}
if(marital.state == OptionalState.set) {
json['marital'] = marital.toJson();
}
if(multipleJob.state == OptionalState.set) {
json['multipleJob'] = multipleJob.toJson();
}
if(childrens.state == OptionalState.set) {
json['childrens'] = childrens.toJson();
}
if(otherDeps.state == OptionalState.set) {
json['otherDeps'] = otherDeps.toJson();
}
if(totalCredits.state == OptionalState.set) {
json['totalCredits'] = totalCredits.toJson();
}
if(otherInconme.state == OptionalState.set) {
json['otherInconme'] = otherInconme.toJson();
}
if(deductions.state == OptionalState.set) {
json['deductions'] = deductions.toJson();
}
if(extraWithholding.state == OptionalState.set) {
json['extraWithholding'] = extraWithholding.toJson();
}
if(citizen.state == OptionalState.set) {
json['citizen'] = citizen.toJson();
}
if(uscis.state == OptionalState.set) {
json['uscis'] = uscis.toJson();
}
if(passportNumber.state == OptionalState.set) {
json['passportNumber'] = passportNumber.toJson();
}
if(countryIssue.state == OptionalState.set) {
json['countryIssue'] = countryIssue.toJson();
}
if(prepartorOrTranslator.state == OptionalState.set) {
json['prepartorOrTranslator'] = prepartorOrTranslator.toJson();
}
if(signature.state == OptionalState.set) {
json['signature'] = signature.toJson();
}
if(date.state == OptionalState.set) {
json['date'] = date.toJson();
}
if(status.state == OptionalState.set) {
json['status'] = status.toJson();
}
if(formData.state == OptionalState.set) {
json['formData'] = formData.toJson();
}
if(title.state == OptionalState.set) {
json['title'] = title.toJson();
}
if(subtitle.state == OptionalState.set) {
json['subtitle'] = subtitle.toJson();
}
if(description.state == OptionalState.set) {
json['description'] = description.toJson();
}
return json;
}
UpdateTaxFormVariables({
required this.id,
required this.formType,
required this.firstName,
required this.lastName,
required this.mInitial,
required this.oLastName,
required this.dob,
required this.socialSN,
required this.email,
required this.phone,
required this.address,
required this.city,
required this.apt,
required this.state,
required this.zipCode,
required this.marital,
required this.multipleJob,
required this.childrens,
required this.otherDeps,
required this.totalCredits,
required this.otherInconme,
required this.deductions,
required this.extraWithholding,
required this.citizen,
required this.uscis,
required this.passportNumber,
required this.countryIssue,
required this.prepartorOrTranslator,
required this.signature,
required this.date,
required this.status,
required this.formData,
required this.title,
required this.subtitle,
required this.description,
});
}

View File

@@ -15,18 +15,36 @@ class TaxFormAdapter {
DateTime? createdAt,
DateTime? updatedAt,
}) {
return TaxForm(
id: id,
type: _stringToType(type),
title: title,
subtitle: subtitle,
description: description,
status: _stringToStatus(status),
staffId: staffId,
formData: formData is Map ? Map<String, dynamic>.from(formData) : null,
createdAt: createdAt,
updatedAt: updatedAt,
);
final TaxFormType formType = _stringToType(type);
final TaxFormStatus formStatus = _stringToStatus(status);
final Map<String, dynamic> formDetails =
formData is Map ? Map<String, dynamic>.from(formData as Map) : <String, dynamic>{};
if (formType == TaxFormType.i9) {
return I9TaxForm(
id: id,
title: title,
subtitle: subtitle,
description: description,
status: formStatus,
staffId: staffId,
formData: formDetails,
createdAt: createdAt,
updatedAt: updatedAt,
);
} else {
return W4TaxForm(
id: id,
title: title,
subtitle: subtitle,
description: description,
status: formStatus,
staffId: staffId,
formData: formDetails,
createdAt: createdAt,
updatedAt: updatedAt,
);
}
}
static TaxFormType _stringToType(String? value) {

View File

@@ -4,27 +4,26 @@ enum TaxFormType { i9, w4 }
enum TaxFormStatus { notStarted, inProgress, submitted, approved, rejected }
class TaxForm extends Equatable {
abstract class TaxForm extends Equatable {
final String id;
final TaxFormType type;
TaxFormType get type;
final String title;
final String? subtitle;
final String? description;
final TaxFormStatus status;
final String? staffId;
final Map<String, dynamic>? formData;
final Map<String, dynamic> formData;
final DateTime? createdAt;
final DateTime? updatedAt;
const TaxForm({
required this.id,
required this.type,
required this.title,
this.subtitle,
this.description,
this.status = TaxFormStatus.notStarted,
this.staffId,
this.formData,
this.formData = const {},
this.createdAt,
this.updatedAt,
});
@@ -43,3 +42,37 @@ class TaxForm extends Equatable {
updatedAt,
];
}
class I9TaxForm extends TaxForm {
const I9TaxForm({
required super.id,
required super.title,
super.subtitle,
super.description,
super.status,
super.staffId,
super.formData,
super.createdAt,
super.updatedAt,
});
@override
TaxFormType get type => TaxFormType.i9;
}
class W4TaxForm extends TaxForm {
const W4TaxForm({
required super.id,
required super.title,
super.subtitle,
super.description,
super.status,
super.staffId,
super.formData,
super.createdAt,
super.updatedAt,
});
@override
TaxFormType get type => TaxFormType.w4;
}

View File

@@ -1,650 +0,0 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
async:
dependency: transitive
description:
name: async
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
url: "https://pub.dev"
source: hosted
version: "2.13.0"
auto_injector:
dependency: transitive
description:
name: auto_injector
sha256: "1fc2624898e92485122eb2b1698dd42511d7ff6574f84a3a8606fc4549a1e8f8"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
bloc:
dependency: transitive
description:
name: bloc
sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e"
url: "https://pub.dev"
source: hosted
version: "8.1.4"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
characters:
dependency: transitive
description:
name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev"
source: hosted
version: "1.4.0"
clock:
dependency: transitive
description:
name: clock
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev"
source: hosted
version: "1.1.2"
code_assets:
dependency: transitive
description:
name: code_assets
sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
collection:
dependency: transitive
description:
name: collection
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev"
source: hosted
version: "1.19.1"
core_localization:
dependency: "direct main"
description:
path: "../../../core_localization"
relative: true
source: path
version: "0.0.1"
crypto:
dependency: transitive
description:
name: crypto
sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
url: "https://pub.dev"
source: hosted
version: "3.0.7"
csv:
dependency: transitive
description:
name: csv
sha256: c6aa2679b2a18cb57652920f674488d89712efaf4d3fdf2e537215b35fc19d6c
url: "https://pub.dev"
source: hosted
version: "6.0.0"
design_system:
dependency: "direct main"
description:
path: "../../../design_system"
relative: true
source: path
version: "0.0.1"
equatable:
dependency: "direct main"
description:
name: equatable
sha256: "3e0141505477fd8ad55d6eb4e7776d3fe8430be8e497ccb1521370c3f21a3e2b"
url: "https://pub.dev"
source: hosted
version: "2.0.8"
fake_async:
dependency: transitive
description:
name: fake_async
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
ffi:
dependency: transitive
description:
name: ffi
sha256: d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c
url: "https://pub.dev"
source: hosted
version: "2.1.5"
file:
dependency: transitive
description:
name: file
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
url: "https://pub.dev"
source: hosted
version: "7.0.1"
fixnum:
dependency: transitive
description:
name: fixnum
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
url: "https://pub.dev"
source: hosted
version: "1.1.1"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_bloc:
dependency: "direct main"
description:
name: flutter_bloc
sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a
url: "https://pub.dev"
source: hosted
version: "8.1.6"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
url: "https://pub.dev"
source: hosted
version: "5.0.0"
flutter_localizations:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_modular:
dependency: "direct main"
description:
name: flutter_modular
sha256: "33a63d9fe61429d12b3dfa04795ed890f17d179d3d38e988ba7969651fcd5586"
url: "https://pub.dev"
source: hosted
version: "6.4.1"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
font_awesome_flutter:
dependency: transitive
description:
name: font_awesome_flutter
sha256: b9011df3a1fa02993630b8fb83526368cf2206a711259830325bab2f1d2a4eb0
url: "https://pub.dev"
source: hosted
version: "10.12.0"
glob:
dependency: transitive
description:
name: glob
sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
url: "https://pub.dev"
source: hosted
version: "2.1.3"
google_fonts:
dependency: transitive
description:
name: google_fonts
sha256: "6996212014b996eaa17074e02b1b925b212f5e053832d9048970dc27255a8fb3"
url: "https://pub.dev"
source: hosted
version: "7.1.0"
hooks:
dependency: transitive
description:
name: hooks
sha256: "5d309c86e7ce34cd8e37aa71cb30cb652d3829b900ab145e4d9da564b31d59f7"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
http:
dependency: transitive
description:
name: http
sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
source: hosted
version: "1.6.0"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
url: "https://pub.dev"
source: hosted
version: "4.1.2"
intl:
dependency: "direct main"
description:
name: intl
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
url: "https://pub.dev"
source: hosted
version: "0.20.2"
krow_core:
dependency: "direct main"
description:
path: "../../../core"
relative: true
source: path
version: "0.0.1"
krow_data_connect:
dependency: "direct main"
description:
path: "../../../data_connect"
relative: true
source: path
version: "0.0.1"
krow_domain:
dependency: "direct main"
description:
path: "../../../domain"
relative: true
source: path
version: "0.0.1"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
url: "https://pub.dev"
source: hosted
version: "11.0.2"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
version: "3.0.10"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
lints:
dependency: transitive
description:
name: lints
sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
url: "https://pub.dev"
source: hosted
version: "5.1.1"
logging:
dependency: transitive
description:
name: logging
sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
url: "https://pub.dev"
source: hosted
version: "1.3.0"
lucide_icons:
dependency: transitive
description:
name: lucide_icons
sha256: ad24d0fd65707e48add30bebada7d90bff2a1bba0a72d6e9b19d44246b0e83c4
url: "https://pub.dev"
source: hosted
version: "0.257.0"
matcher:
dependency: transitive
description:
name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev"
source: hosted
version: "0.12.17"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
version: "0.11.1"
meta:
dependency: transitive
description:
name: meta
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
url: "https://pub.dev"
source: hosted
version: "1.17.0"
modular_core:
dependency: transitive
description:
name: modular_core
sha256: "1db0420a0dfb8a2c6dca846e7cbaa4ffeb778e247916dbcb27fb25aa566e5436"
url: "https://pub.dev"
source: hosted
version: "3.4.1"
native_toolchain_c:
dependency: transitive
description:
name: native_toolchain_c
sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac"
url: "https://pub.dev"
source: hosted
version: "0.17.4"
nested:
dependency: transitive
description:
name: nested
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
objective_c:
dependency: transitive
description:
name: objective_c
sha256: "7fd0c4d8ac8980011753b9bdaed2bf15111365924cdeeeaeb596214ea2b03537"
url: "https://pub.dev"
source: hosted
version: "9.2.4"
path:
dependency: transitive
description:
name: path
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev"
source: hosted
version: "1.9.1"
path_provider:
dependency: transitive
description:
name: path_provider
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e
url: "https://pub.dev"
source: hosted
version: "2.2.22"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699"
url: "https://pub.dev"
source: hosted
version: "2.6.0"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
url: "https://pub.dev"
source: hosted
version: "2.2.1"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
url: "https://pub.dev"
source: hosted
version: "2.3.0"
platform:
dependency: transitive
description:
name: platform
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
url: "https://pub.dev"
source: hosted
version: "3.1.6"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
url: "https://pub.dev"
source: hosted
version: "2.1.8"
provider:
dependency: transitive
description:
name: provider
sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272"
url: "https://pub.dev"
source: hosted
version: "6.1.5+1"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
result_dart:
dependency: transitive
description:
name: result_dart
sha256: "0666b21fbdf697b3bdd9986348a380aa204b3ebe7c146d8e4cdaa7ce735e6054"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
shared_preferences:
dependency: transitive
description:
name: shared_preferences
sha256: "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64"
url: "https://pub.dev"
source: hosted
version: "2.5.4"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: "83af5c682796c0f7719c2bbf74792d113e40ae97981b8f266fa84574573556bc"
url: "https://pub.dev"
source: hosted
version: "2.4.18"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f"
url: "https://pub.dev"
source: hosted
version: "2.5.6"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
url: "https://pub.dev"
source: hosted
version: "2.4.3"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
slang:
dependency: transitive
description:
name: slang
sha256: "13e3b6f07adc51ab751e7889647774d294cbce7a3382f81d9e5029acfe9c37b2"
url: "https://pub.dev"
source: hosted
version: "4.12.0"
slang_flutter:
dependency: transitive
description:
name: slang_flutter
sha256: "0a4545cca5404d6b7487cf61cf1fe56c52daeb08de56a7574ee8381fbad035a0"
url: "https://pub.dev"
source: hosted
version: "4.12.0"
source_span:
dependency: transitive
description:
name: source_span
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.dev"
source: hosted
version: "1.10.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev"
source: hosted
version: "1.12.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
string_scanner:
dependency: transitive
description:
name: string_scanner
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev"
source: hosted
version: "1.4.1"
term_glyph:
dependency: transitive
description:
name: term_glyph
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev"
source: hosted
version: "1.2.2"
test_api:
dependency: transitive
description:
name: test_api
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
url: "https://pub.dev"
source: hosted
version: "0.7.7"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.dev"
source: hosted
version: "1.4.0"
uuid:
dependency: transitive
description:
name: uuid
sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8
url: "https://pub.dev"
source: hosted
version: "4.5.2"
vector_math:
dependency: transitive
description:
name: vector_math
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
source: hosted
version: "2.2.0"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60"
url: "https://pub.dev"
source: hosted
version: "15.0.2"
watcher:
dependency: transitive
description:
name: watcher
sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
web:
dependency: transitive
description:
name: web
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
yaml:
dependency: transitive
description:
name: yaml
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
url: "https://pub.dev"
source: hosted
version: "3.1.3"
sdks:
dart: ">=3.10.7 <4.0.0"
flutter: ">=3.38.4"

View File

@@ -2,6 +2,7 @@ name: client_coverage
description: Client coverage feature for tracking daily shift coverage and worker status
version: 1.0.0
publish_to: none
resolution: workspace
environment:
sdk: ^3.6.0
@@ -26,7 +27,8 @@ dependencies:
flutter_modular: ^6.3.4
flutter_bloc: ^8.1.6
equatable: ^2.0.7
intl: ^0.20.1
intl: ^0.20.0
firebase_data_connect: ^0.2.2+1
dev_dependencies:
flutter_test:

View File

@@ -24,8 +24,8 @@ class SettingsActions extends StatelessWidget {
delegate: SliverChildListDelegate(<Widget>[
const SizedBox(height: UiConstants.space5),
/// TODO: FEATURE_NOT_YET_IMPLEMENTED
// Edit profile is not yet implemented
/// TODO: FEATURE_NOT_YET_IMPLEMENTED
// Edit profile is not yet implemented
// Hubs button
UiButton.primary(
@@ -49,12 +49,19 @@ class SettingsActions extends StatelessWidget {
),
);
}
/// Handles the sign-out button click event.
void _onSignoutClicked(BuildContext context) {
ReadContext(
context,
).read<ClientSettingsBloc>().add(const ClientSettingsSignOutRequested());
}
/// Shows a confirmation dialog for signing out.
Future<void> _showSignOutDialog(BuildContext context) {
return showDialog(
context: context,
builder: (BuildContext context) => AlertDialog(
builder: (BuildContext dialogContext) => AlertDialog(
backgroundColor: UiColors.bgPopup,
elevation: 0,
shape: RoundedRectangleBorder(borderRadius: UiConstants.radiusLg),
@@ -70,12 +77,7 @@ class SettingsActions extends StatelessWidget {
// Log out button
UiButton.secondary(
text: t.client_settings.profile.log_out,
onPressed: () {
Modular.to.pop();
BlocProvider.of<ClientSettingsBloc>(
context,
).add(const ClientSettingsSignOutRequested());
},
onPressed: () => _onSignoutClicked(context),
),
// Cancel button

View File

@@ -2,6 +2,7 @@ name: staff_certificates
description: Staff certificates feature
version: 0.0.1
publish_to: none
resolution: workspace
environment:
sdk: '>=3.0.0 <4.0.0'

View File

@@ -1,778 +0,0 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
_flutterfire_internals:
dependency: transitive
description:
name: _flutterfire_internals
sha256: cd83f7d6bd4e4c0b0b4fef802e8796784032e1cc23d7b0e982cf5d05d9bbe182
url: "https://pub.dev"
source: hosted
version: "1.3.66"
archive:
dependency: transitive
description:
name: archive
sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d
url: "https://pub.dev"
source: hosted
version: "3.6.1"
args:
dependency: transitive
description:
name: args
sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
url: "https://pub.dev"
source: hosted
version: "2.7.0"
async:
dependency: transitive
description:
name: async
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
url: "https://pub.dev"
source: hosted
version: "2.13.0"
auto_injector:
dependency: transitive
description:
name: auto_injector
sha256: "1fc2624898e92485122eb2b1698dd42511d7ff6574f84a3a8606fc4549a1e8f8"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
bloc:
dependency: "direct main"
description:
name: bloc
sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e"
url: "https://pub.dev"
source: hosted
version: "8.1.4"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
characters:
dependency: transitive
description:
name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev"
source: hosted
version: "1.4.0"
clock:
dependency: transitive
description:
name: clock
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev"
source: hosted
version: "1.1.2"
code_assets:
dependency: transitive
description:
name: code_assets
sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
collection:
dependency: transitive
description:
name: collection
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev"
source: hosted
version: "1.19.1"
core_localization:
dependency: "direct main"
description:
path: "../../../../../core_localization"
relative: true
source: path
version: "0.0.1"
crypto:
dependency: transitive
description:
name: crypto
sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
url: "https://pub.dev"
source: hosted
version: "3.0.7"
csv:
dependency: transitive
description:
name: csv
sha256: c6aa2679b2a18cb57652920f674488d89712efaf4d3fdf2e537215b35fc19d6c
url: "https://pub.dev"
source: hosted
version: "6.0.0"
design_system:
dependency: "direct main"
description:
path: "../../../../../design_system"
relative: true
source: path
version: "0.0.1"
equatable:
dependency: "direct main"
description:
name: equatable
sha256: "3e0141505477fd8ad55d6eb4e7776d3fe8430be8e497ccb1521370c3f21a3e2b"
url: "https://pub.dev"
source: hosted
version: "2.0.8"
fake_async:
dependency: transitive
description:
name: fake_async
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
ffi:
dependency: transitive
description:
name: ffi
sha256: d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c
url: "https://pub.dev"
source: hosted
version: "2.1.5"
file:
dependency: transitive
description:
name: file
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
url: "https://pub.dev"
source: hosted
version: "7.0.1"
firebase_app_check:
dependency: transitive
description:
name: firebase_app_check
sha256: "45f0d279ea7ae4eac1867a4c85aa225761e3ac0ccf646386a860b2bc16581f76"
url: "https://pub.dev"
source: hosted
version: "0.4.1+4"
firebase_app_check_platform_interface:
dependency: transitive
description:
name: firebase_app_check_platform_interface
sha256: e32b4e6adeaac207a6f7afe0906d97c0811de42fb200d9b6317a09155de65e2b
url: "https://pub.dev"
source: hosted
version: "0.2.1+4"
firebase_app_check_web:
dependency: transitive
description:
name: firebase_app_check_web
sha256: "2cbc8a18a34813a7e31d7b30f989973087421cd5d0e397b4dd88a90289aa2bed"
url: "https://pub.dev"
source: hosted
version: "0.2.2+2"
firebase_auth:
dependency: "direct main"
description:
name: firebase_auth
sha256: b20d1540460814c5984474c1e9dd833bdbcff6ecd8d6ad86cc9da8cfd581c172
url: "https://pub.dev"
source: hosted
version: "6.1.4"
firebase_auth_platform_interface:
dependency: transitive
description:
name: firebase_auth_platform_interface
sha256: fd0225320b6bbc92460c86352d16b60aea15f9ef88292774cca97b0522ea9f72
url: "https://pub.dev"
source: hosted
version: "8.1.6"
firebase_auth_web:
dependency: transitive
description:
name: firebase_auth_web
sha256: be7dccb263b89fbda2a564de9d8193118196e8481ffb937222a025cdfdf82c40
url: "https://pub.dev"
source: hosted
version: "6.1.2"
firebase_core:
dependency: transitive
description:
name: firebase_core
sha256: "923085c881663ef685269b013e241b428e1fb03cdd0ebde265d9b40ff18abf80"
url: "https://pub.dev"
source: hosted
version: "4.4.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
sha256: cccb4f572325dc14904c02fcc7db6323ad62ba02536833dddb5c02cac7341c64
url: "https://pub.dev"
source: hosted
version: "6.0.2"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
sha256: "83e7356c704131ca4d8d8dd57e360d8acecbca38b1a3705c7ae46cc34c708084"
url: "https://pub.dev"
source: hosted
version: "3.4.0"
firebase_data_connect:
dependency: "direct main"
description:
name: firebase_data_connect
sha256: "01d0f8e33c520a6e6f59cf5ac6ff281d1927f7837f094fa8eb5fdb0b1b328ad8"
url: "https://pub.dev"
source: hosted
version: "0.2.2+2"
fixnum:
dependency: transitive
description:
name: fixnum
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
url: "https://pub.dev"
source: hosted
version: "1.1.1"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_bloc:
dependency: "direct main"
description:
name: flutter_bloc
sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a
url: "https://pub.dev"
source: hosted
version: "8.1.6"
flutter_localizations:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_modular:
dependency: "direct main"
description:
name: flutter_modular
sha256: "33a63d9fe61429d12b3dfa04795ed890f17d179d3d38e988ba7969651fcd5586"
url: "https://pub.dev"
source: hosted
version: "6.4.1"
flutter_test:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
font_awesome_flutter:
dependency: transitive
description:
name: font_awesome_flutter
sha256: b9011df3a1fa02993630b8fb83526368cf2206a711259830325bab2f1d2a4eb0
url: "https://pub.dev"
source: hosted
version: "10.12.0"
glob:
dependency: transitive
description:
name: glob
sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
url: "https://pub.dev"
source: hosted
version: "2.1.3"
google_fonts:
dependency: transitive
description:
name: google_fonts
sha256: "6996212014b996eaa17074e02b1b925b212f5e053832d9048970dc27255a8fb3"
url: "https://pub.dev"
source: hosted
version: "7.1.0"
google_identity_services_web:
dependency: transitive
description:
name: google_identity_services_web
sha256: "5d187c46dc59e02646e10fe82665fc3884a9b71bc1c90c2b8b749316d33ee454"
url: "https://pub.dev"
source: hosted
version: "0.3.3+1"
googleapis_auth:
dependency: transitive
description:
name: googleapis_auth
sha256: befd71383a955535060acde8792e7efc11d2fccd03dd1d3ec434e85b68775938
url: "https://pub.dev"
source: hosted
version: "1.6.0"
grpc:
dependency: transitive
description:
name: grpc
sha256: e93ee3bce45c134bf44e9728119102358c7cd69de7832d9a874e2e74eb8cab40
url: "https://pub.dev"
source: hosted
version: "3.2.4"
hooks:
dependency: transitive
description:
name: hooks
sha256: "5d309c86e7ce34cd8e37aa71cb30cb652d3829b900ab145e4d9da564b31d59f7"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
http:
dependency: transitive
description:
name: http
sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
source: hosted
version: "1.6.0"
http2:
dependency: transitive
description:
name: http2
sha256: "382d3aefc5bd6dc68c6b892d7664f29b5beb3251611ae946a98d35158a82bbfa"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
url: "https://pub.dev"
source: hosted
version: "4.1.2"
intl:
dependency: transitive
description:
name: intl
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
url: "https://pub.dev"
source: hosted
version: "0.20.2"
krow_core:
dependency: "direct main"
description:
path: "../../../../../core"
relative: true
source: path
version: "0.0.1"
krow_data_connect:
dependency: "direct main"
description:
path: "../../../../../data_connect"
relative: true
source: path
version: "0.0.1"
krow_domain:
dependency: "direct main"
description:
path: "../../../../../domain"
relative: true
source: path
version: "0.0.1"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
url: "https://pub.dev"
source: hosted
version: "11.0.2"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
version: "3.0.10"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
logging:
dependency: transitive
description:
name: logging
sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
url: "https://pub.dev"
source: hosted
version: "1.3.0"
lucide_icons:
dependency: "direct main"
description:
name: lucide_icons
sha256: ad24d0fd65707e48add30bebada7d90bff2a1bba0a72d6e9b19d44246b0e83c4
url: "https://pub.dev"
source: hosted
version: "0.257.0"
matcher:
dependency: transitive
description:
name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev"
source: hosted
version: "0.12.17"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
version: "0.11.1"
meta:
dependency: transitive
description:
name: meta
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
url: "https://pub.dev"
source: hosted
version: "1.17.0"
modular_core:
dependency: transitive
description:
name: modular_core
sha256: "1db0420a0dfb8a2c6dca846e7cbaa4ffeb778e247916dbcb27fb25aa566e5436"
url: "https://pub.dev"
source: hosted
version: "3.4.1"
native_toolchain_c:
dependency: transitive
description:
name: native_toolchain_c
sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac"
url: "https://pub.dev"
source: hosted
version: "0.17.4"
nested:
dependency: transitive
description:
name: nested
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
objective_c:
dependency: transitive
description:
name: objective_c
sha256: "7fd0c4d8ac8980011753b9bdaed2bf15111365924cdeeeaeb596214ea2b03537"
url: "https://pub.dev"
source: hosted
version: "9.2.4"
path:
dependency: transitive
description:
name: path
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev"
source: hosted
version: "1.9.1"
path_provider:
dependency: transitive
description:
name: path_provider
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e
url: "https://pub.dev"
source: hosted
version: "2.2.22"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699"
url: "https://pub.dev"
source: hosted
version: "2.6.0"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
url: "https://pub.dev"
source: hosted
version: "2.2.1"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
url: "https://pub.dev"
source: hosted
version: "2.3.0"
platform:
dependency: transitive
description:
name: platform
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
url: "https://pub.dev"
source: hosted
version: "3.1.6"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
url: "https://pub.dev"
source: hosted
version: "2.1.8"
protobuf:
dependency: transitive
description:
name: protobuf
sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
provider:
dependency: transitive
description:
name: provider
sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272"
url: "https://pub.dev"
source: hosted
version: "6.1.5+1"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
result_dart:
dependency: transitive
description:
name: result_dart
sha256: "0666b21fbdf697b3bdd9986348a380aa204b3ebe7c146d8e4cdaa7ce735e6054"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
shared_preferences:
dependency: transitive
description:
name: shared_preferences
sha256: "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64"
url: "https://pub.dev"
source: hosted
version: "2.5.4"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: "83af5c682796c0f7719c2bbf74792d113e40ae97981b8f266fa84574573556bc"
url: "https://pub.dev"
source: hosted
version: "2.4.18"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f"
url: "https://pub.dev"
source: hosted
version: "2.5.6"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
url: "https://pub.dev"
source: hosted
version: "2.4.3"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
slang:
dependency: transitive
description:
name: slang
sha256: "13e3b6f07adc51ab751e7889647774d294cbce7a3382f81d9e5029acfe9c37b2"
url: "https://pub.dev"
source: hosted
version: "4.12.0"
slang_flutter:
dependency: transitive
description:
name: slang_flutter
sha256: "0a4545cca5404d6b7487cf61cf1fe56c52daeb08de56a7574ee8381fbad035a0"
url: "https://pub.dev"
source: hosted
version: "4.12.0"
source_span:
dependency: transitive
description:
name: source_span
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.dev"
source: hosted
version: "1.10.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev"
source: hosted
version: "1.12.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
string_scanner:
dependency: transitive
description:
name: string_scanner
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev"
source: hosted
version: "1.4.1"
term_glyph:
dependency: transitive
description:
name: term_glyph
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev"
source: hosted
version: "1.2.2"
test_api:
dependency: transitive
description:
name: test_api
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
url: "https://pub.dev"
source: hosted
version: "0.7.7"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.dev"
source: hosted
version: "1.4.0"
uuid:
dependency: transitive
description:
name: uuid
sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8
url: "https://pub.dev"
source: hosted
version: "4.5.2"
vector_math:
dependency: transitive
description:
name: vector_math
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
source: hosted
version: "2.2.0"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60"
url: "https://pub.dev"
source: hosted
version: "15.0.2"
watcher:
dependency: transitive
description:
name: watcher
sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
web:
dependency: transitive
description:
name: web
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
yaml:
dependency: transitive
description:
name: yaml
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
url: "https://pub.dev"
source: hosted
version: "3.1.3"
sdks:
dart: ">=3.10.7 <4.0.0"
flutter: ">=3.38.4"

View File

@@ -2,6 +2,7 @@ name: staff_documents
description: Staff Documents feature.
version: 0.0.1
publish_to: none
resolution: workspace
environment:
sdk: '>=3.10.0 <4.0.0'

View File

@@ -0,0 +1,76 @@
import 'package:firebase_data_connect/firebase_data_connect.dart';
import 'package:krow_data_connect/krow_data_connect.dart' as dc;
import 'package:krow_domain/krow_domain.dart';
class TaxFormMapper {
static TaxForm fromDataConnect(dc.GetTaxFormsByStaffIdTaxForms form) {
// Construct the legacy map for the entity
final Map<String, dynamic> formData = {
'firstName': form.firstName,
'lastName': form.lastName,
'middleInitial': form.mInitial,
'otherLastNames': form.oLastName,
'dob': _formatDate(form.dob),
'ssn': form.socialSN.toString(),
'email': form.email,
'phone': form.phone,
'address': form.address,
'aptNumber': form.apt,
'city': form.city,
'state': form.state,
'zipCode': form.zipCode,
// I-9 Fields
'citizenshipStatus': form.citizen?.stringValue,
'uscisNumber': form.uscis,
'passportNumber': form.passportNumber,
'countryIssuance': form.countryIssue,
'preparerUsed': form.prepartorOrTranslator,
// W-4 Fields
'filingStatus': form.marital?.stringValue,
'multipleJobs': form.multipleJob,
'qualifyingChildren': form.childrens,
'otherDependents': form.otherDeps,
'otherIncome': form.otherInconme?.toString(),
'deductions': form.deductions?.toString(),
'extraWithholding': form.extraWithholding?.toString(),
'signature': form.signature,
};
String title = '';
String subtitle = '';
String description = '';
if (form.formType == dc.TaxFormType.I9) {
title = 'Form I-9';
subtitle = 'Employment Eligibility Verification';
description = 'Required for all new hires to verify identity.';
} else {
title = 'Form W-4';
subtitle = 'Employee\'s Withholding Certificate';
description = 'Determines federal income tax withholding.';
}
return TaxFormAdapter.fromPrimitives(
id: form.id,
type: form.formType.stringValue,
title: title,
subtitle: subtitle,
description: description,
status: form.status.stringValue,
staffId: form.staffId,
formData: formData,
updatedAt: form.updatedAt?.toDateTime(),
);
}
static String? _formatDate(Timestamp? timestamp) {
if (timestamp == null) return null;
final DateTime date = timestamp.toDateTime();
return '${date.month.toString().padLeft(2, '0')}/${date.day.toString().padLeft(2, '0')}/${date.year}';
}
}

View File

@@ -6,6 +6,7 @@ import 'package:krow_data_connect/krow_data_connect.dart' as dc;
import 'package:krow_domain/krow_domain.dart';
import '../../domain/repositories/tax_forms_repository.dart';
import '../mappers/tax_form_mapper.dart';
class TaxFormsRepositoryImpl implements TaxFormsRepository {
TaxFormsRepositoryImpl({
@@ -33,11 +34,11 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository {
@override
Future<List<TaxForm>> getTaxForms() async {
final String staffId = _getStaffId();
final QueryResult<dc.GetTaxFormsBystaffIdData, dc.GetTaxFormsBystaffIdVariables>
final QueryResult<dc.GetTaxFormsByStaffIdData, dc.GetTaxFormsByStaffIdVariables>
result =
await dataConnect.getTaxFormsBystaffId(staffId: staffId).execute();
await dataConnect.getTaxFormsByStaffId(staffId: staffId).execute();
final List<TaxForm> forms = result.data.taxForms.map((dc.GetTaxFormsBystaffIdTaxForms e) => _mapToEntity(e)).toList();
final List<TaxForm> forms = result.data.taxForms.map(TaxFormMapper.fromDataConnect).toList();
// Check if required forms exist, create if not.
final Set<TaxFormType> typesPresent = forms.map((TaxForm f) => f.type).toSet();
@@ -53,98 +54,161 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository {
}
if (createdNew) {
final QueryResult<dc.GetTaxFormsBystaffIdData, dc.GetTaxFormsBystaffIdVariables>
final QueryResult<dc.GetTaxFormsByStaffIdData, dc.GetTaxFormsByStaffIdVariables>
result2 =
await dataConnect.getTaxFormsBystaffId(staffId: staffId).execute();
return result2.data.taxForms.map((dc.GetTaxFormsBystaffIdTaxForms e) => _mapToEntity(e)).toList();
await dataConnect.getTaxFormsByStaffId(staffId: staffId).execute();
return result2.data.taxForms.map(TaxFormMapper.fromDataConnect).toList();
}
return forms;
}
Future<void> _createInitialForm(String staffId, TaxFormType type) async {
String title = '';
String subtitle = '';
String description = '';
if (type == TaxFormType.i9) {
title = 'Form I-9';
subtitle = 'Employment Eligibility Verification';
description = 'Required for all new hires to verify identity.';
} else {
title = 'Form W-4';
subtitle = 'Employee\'s Withholding Certificate';
description = 'Determines federal income tax withholding.';
}
await dataConnect
.createTaxForm(
staffId: staffId,
formType: dc.TaxFormType.values.byName(TaxFormAdapter.typeToString(type)),
title: title,
formType:
dc.TaxFormType.values.byName(TaxFormAdapter.typeToString(type)),
firstName: '',
lastName: '',
socialSN: 0,
address: '',
status: dc.TaxFormStatus.NOT_STARTED,
)
.subtitle(subtitle)
.description(description)
.status(dc.TaxFormStatus.NOT_STARTED)
.execute();
}
@override
Future<void> submitForm(TaxFormType type, Map<String, dynamic> data) async {
final String staffId = _getStaffId();
final QueryResult<dc.GetTaxFormsBystaffIdData, dc.GetTaxFormsBystaffIdVariables>
result =
await dataConnect.getTaxFormsBystaffId(staffId: staffId).execute();
final String targetTypeString = TaxFormAdapter.typeToString(type);
final dc.GetTaxFormsBystaffIdTaxForms form = result.data.taxForms.firstWhere(
(dc.GetTaxFormsBystaffIdTaxForms e) => e.formType.stringValue == targetTypeString,
orElse: () => throw Exception('Form not found for submission'),
);
// AnyValue expects a scalar, list, or map.
await dataConnect
.updateTaxForm(
id: form.id,
)
.formData(AnyValue.fromJson(data))
.status(dc.TaxFormStatus.SUBMITTED)
.execute();
Future<void> updateI9Form(I9TaxForm form) async {
final Map<String, dynamic> data = form.formData;
final dc.UpdateTaxFormVariablesBuilder builder = dataConnect.updateTaxForm(id: form.id);
_mapCommonFields(builder, data);
_mapI9Fields(builder, data);
await builder.execute();
}
@override
Future<void> updateFormStatus(TaxFormType type, TaxFormStatus status) async {
final String staffId = _getStaffId();
final QueryResult<dc.GetTaxFormsBystaffIdData, dc.GetTaxFormsBystaffIdVariables>
result =
await dataConnect.getTaxFormsBystaffId(staffId: staffId).execute();
final String targetTypeString = TaxFormAdapter.typeToString(type);
final dc.GetTaxFormsBystaffIdTaxForms form = result.data.taxForms.firstWhere(
(dc.GetTaxFormsBystaffIdTaxForms e) => e.formType.stringValue == targetTypeString,
orElse: () => throw Exception('Form not found for update'),
);
await dataConnect
.updateTaxForm(
id: form.id,
)
.status(dc.TaxFormStatus.values.byName(TaxFormAdapter.statusToString(status)))
.execute();
Future<void> submitI9Form(I9TaxForm form) async {
final Map<String, dynamic> data = form.formData;
final dc.UpdateTaxFormVariablesBuilder builder = dataConnect.updateTaxForm(id: form.id);
_mapCommonFields(builder, data);
_mapI9Fields(builder, data);
await builder.status(dc.TaxFormStatus.SUBMITTED).execute();
}
TaxForm _mapToEntity(dc.GetTaxFormsBystaffIdTaxForms form) {
return TaxFormAdapter.fromPrimitives(
id: form.id,
type: form.formType.stringValue,
title: form.title,
subtitle: form.subtitle,
description: form.description,
status: form.status.stringValue,
staffId: form.staffId,
formData: form.formData, // Adapter expects dynamic
updatedAt: form.updatedAt?.toDateTime(),
);
@override
Future<void> updateW4Form(W4TaxForm form) async {
final Map<String, dynamic> data = form.formData;
final dc.UpdateTaxFormVariablesBuilder builder = dataConnect.updateTaxForm(id: form.id);
_mapCommonFields(builder, data);
_mapW4Fields(builder, data);
await builder.execute();
}
@override
Future<void> submitW4Form(W4TaxForm form) async {
final Map<String, dynamic> data = form.formData;
final dc.UpdateTaxFormVariablesBuilder builder = dataConnect.updateTaxForm(id: form.id);
_mapCommonFields(builder, data);
_mapW4Fields(builder, data);
await builder.status(dc.TaxFormStatus.SUBMITTED).execute();
}
void _mapCommonFields(dc.UpdateTaxFormVariablesBuilder builder, Map<String, dynamic> data) {
if (data.containsKey('firstName')) builder.firstName(data['firstName'] as String?);
if (data.containsKey('lastName')) builder.lastName(data['lastName'] as String?);
if (data.containsKey('middleInitial')) builder.mInitial(data['middleInitial'] as String?);
if (data.containsKey('otherLastNames')) builder.oLastName(data['otherLastNames'] as String?);
if (data.containsKey('dob')) {
final String dob = data['dob'] as String;
// Handle both ISO string and MM/dd/yyyy manual entry
DateTime? date;
try {
date = DateTime.parse(dob);
} catch (_) {
try {
// Fallback minimal parse for mm/dd/yyyy
final List<String> parts = dob.split('/');
if (parts.length == 3) {
date = DateTime(
int.parse(parts[2]),
int.parse(parts[0]),
int.parse(parts[1]),
);
}
} catch (_) {}
}
if (date != null) {
final int ms = date.millisecondsSinceEpoch;
final int seconds = (ms / 1000).floor();
builder.dob(Timestamp(0, seconds));
}
}
if (data.containsKey('ssn') && data['ssn']?.toString().isNotEmpty == true) {
builder.socialSN(int.tryParse(data['ssn'].toString().replaceAll(RegExp(r'\D'), '')) ?? 0);
}
if (data.containsKey('email')) builder.email(data['email'] as String?);
if (data.containsKey('phone')) builder.phone(data['phone'] as String?);
if (data.containsKey('address')) builder.address(data['address'] as String?);
if (data.containsKey('aptNumber')) builder.apt(data['aptNumber'] as String?);
if (data.containsKey('city')) builder.city(data['city'] as String?);
if (data.containsKey('state')) builder.state(data['state'] as String?);
if (data.containsKey('zipCode')) builder.zipCode(data['zipCode'] as String?);
}
void _mapI9Fields(dc.UpdateTaxFormVariablesBuilder builder, Map<String, dynamic> data) {
if (data.containsKey('citizenshipStatus')) {
final String status = data['citizenshipStatus'] as String;
// Map string to enum if possible, or handle otherwise.
// Generated enum: CITIZEN, NONCITIZEN_NATIONAL, PERMANENT_RESIDENT, ALIEN_AUTHORIZED
try {
builder.citizen(dc.CitizenshipStatus.values.byName(status.toUpperCase()));
} catch (_) {}
}
if (data.containsKey('uscisNumber')) builder.uscis(data['uscisNumber'] as String?);
if (data.containsKey('passportNumber')) builder.passportNumber(data['passportNumber'] as String?);
if (data.containsKey('countryIssuance')) builder.countryIssue(data['countryIssuance'] as String?);
if (data.containsKey('preparerUsed')) builder.prepartorOrTranslator(data['preparerUsed'] as bool?);
if (data.containsKey('signature')) builder.signature(data['signature'] as String?);
// Note: admissionNumber not in builder based on file read
}
void _mapW4Fields(dc.UpdateTaxFormVariablesBuilder builder, Map<String, dynamic> data) {
if (data.containsKey('cityStateZip')) {
final String csz = data['cityStateZip'] as String;
// Extremely basic split: City, State Zip
final List<String> parts = csz.split(',');
if (parts.length >= 2) {
builder.city(parts[0].trim());
final String stateZip = parts[1].trim();
final List<String> szParts = stateZip.split(' ');
if (szParts.isNotEmpty) builder.state(szParts[0]);
if (szParts.length > 1) builder.zipCode(szParts.last);
}
}
if (data.containsKey('filingStatus')) {
// MARITIAL_STATUS_SINGLE, MARITIAL_STATUS_MARRIED, MARITIAL_STATUS_HEAD
try {
final String status = data['filingStatus'] as String;
// Simple mapping assumptions:
if (status.contains('single')) builder.marital(dc.MaritalStatus.SINGLE);
else if (status.contains('married')) builder.marital(dc.MaritalStatus.MARRIED);
else if (status.contains('head')) builder.marital(dc.MaritalStatus.HEAD);
} catch (_) {}
}
if (data.containsKey('multipleJobs')) builder.multipleJob(data['multipleJobs'] as bool?);
if (data.containsKey('qualifyingChildren')) builder.childrens(data['qualifyingChildren'] as int?);
if (data.containsKey('otherDependents')) builder.otherDeps(data['otherDependents'] as int?);
if (data.containsKey('otherIncome')) {
builder.otherInconme(double.tryParse(data['otherIncome'].toString()));
}
if (data.containsKey('deductions')) {
builder.deductions(double.tryParse(data['deductions'].toString()));
}
if (data.containsKey('extraWithholding')) {
builder.extraWithholding(double.tryParse(data['extraWithholding'].toString()));
}
if (data.containsKey('signature')) builder.signature(data['signature'] as String?);
}
}

View File

@@ -1,26 +0,0 @@
import 'package:equatable/equatable.dart';
enum TaxFormType { i9, w4 }
enum TaxFormStatus { notStarted, inProgress, submitted, approved, rejected }
class TaxFormEntity extends Equatable {
final TaxFormType type;
final String title;
final String subtitle;
final String description;
final TaxFormStatus status;
final DateTime? lastUpdated;
const TaxFormEntity({
required this.type,
required this.title,
required this.subtitle,
required this.description,
this.status = TaxFormStatus.notStarted,
this.lastUpdated,
});
@override
List<Object?> get props => [type, title, subtitle, description, status, lastUpdated];
}

View File

@@ -2,6 +2,8 @@ import 'package:krow_domain/krow_domain.dart';
abstract class TaxFormsRepository {
Future<List<TaxForm>> getTaxForms();
Future<void> submitForm(TaxFormType type, Map<String, dynamic> data);
Future<void> updateFormStatus(TaxFormType type, TaxFormStatus status);
Future<void> updateI9Form(I9TaxForm form);
Future<void> submitI9Form(I9TaxForm form);
Future<void> updateW4Form(W4TaxForm form);
Future<void> submitW4Form(W4TaxForm form);
}

View File

@@ -0,0 +1,12 @@
import 'package:krow_domain/krow_domain.dart';
import '../repositories/tax_forms_repository.dart';
class SaveI9FormUseCase {
final TaxFormsRepository _repository;
SaveI9FormUseCase(this._repository);
Future<void> call(I9TaxForm form) async {
return _repository.updateI9Form(form);
}
}

View File

@@ -0,0 +1,12 @@
import 'package:krow_domain/krow_domain.dart';
import '../repositories/tax_forms_repository.dart';
class SaveW4FormUseCase {
final TaxFormsRepository _repository;
SaveW4FormUseCase(this._repository);
Future<void> call(W4TaxForm form) async {
return _repository.updateW4Form(form);
}
}

View File

@@ -0,0 +1,12 @@
import 'package:krow_domain/krow_domain.dart';
import '../repositories/tax_forms_repository.dart';
class SubmitI9FormUseCase {
final TaxFormsRepository _repository;
SubmitI9FormUseCase(this._repository);
Future<void> call(I9TaxForm form) async {
return _repository.submitI9Form(form);
}
}

View File

@@ -1,12 +0,0 @@
import 'package:krow_domain/krow_domain.dart';
import '../repositories/tax_forms_repository.dart';
class SubmitTaxFormUseCase {
final TaxFormsRepository _repository;
SubmitTaxFormUseCase(this._repository);
Future<void> call(TaxFormType type, Map<String, dynamic> data) async {
return _repository.submitForm(type, data);
}
}

View File

@@ -0,0 +1,12 @@
import 'package:krow_domain/krow_domain.dart';
import '../repositories/tax_forms_repository.dart';
class SubmitW4FormUseCase {
final TaxFormsRepository _repository;
SubmitW4FormUseCase(this._repository);
Future<void> call(W4TaxForm form) async {
return _repository.submitW4Form(form);
}
}

View File

@@ -1,13 +1,47 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:krow_domain/krow_domain.dart';
import 'package:uuid/uuid.dart';
import '../../../domain/usecases/submit_tax_form_usecase.dart';
import '../../../domain/usecases/submit_i9_form_usecase.dart';
import 'form_i9_state.dart';
class FormI9Cubit extends Cubit<FormI9State> {
final SubmitTaxFormUseCase _submitTaxFormUseCase;
final SubmitI9FormUseCase _submitI9FormUseCase;
String _formId = '';
FormI9Cubit(this._submitTaxFormUseCase) : super(const FormI9State());
FormI9Cubit(this._submitI9FormUseCase) : super(const FormI9State());
void initialize(TaxForm? form) {
if (form == null || form.formData.isEmpty) {
emit(const FormI9State()); // Reset to empty if no form
return;
}
final Map<String, dynamic> data = form.formData;
_formId = form.id;
emit(FormI9State(
firstName: data['firstName'] as String? ?? '',
lastName: data['lastName'] as String? ?? '',
middleInitial: data['middleInitial'] as String? ?? '',
otherLastNames: data['otherLastNames'] as String? ?? '',
dob: data['dob'] as String? ?? '',
ssn: data['ssn'] as String? ?? '',
email: data['email'] as String? ?? '',
phone: data['phone'] as String? ?? '',
address: data['address'] as String? ?? '',
aptNumber: data['aptNumber'] as String? ?? '',
city: data['city'] as String? ?? '',
state: data['state'] as String? ?? '',
zipCode: data['zipCode'] as String? ?? '',
citizenshipStatus: data['citizenshipStatus'] as String? ?? '',
uscisNumber: data['uscisNumber'] as String? ?? '',
admissionNumber: data['admissionNumber'] as String? ?? '',
passportNumber: data['passportNumber'] as String? ?? '',
countryIssuance: data['countryIssuance'] as String? ?? '',
preparerUsed: data['preparerUsed'] as bool? ?? false,
signature: data['signature'] as String? ?? '',
));
}
void nextStep(int totalSteps) {
if (state.currentStep < totalSteps - 1) {
@@ -52,18 +86,36 @@ class FormI9Cubit extends Cubit<FormI9State> {
Future<void> submit() async {
emit(state.copyWith(status: FormI9Status.submitting));
try {
await _submitTaxFormUseCase(
TaxFormType.i9,
<String, dynamic>{
'firstName': state.firstName,
'lastName': state.lastName,
'middleInitial': state.middleInitial,
'citizenshipStatus': state.citizenshipStatus,
'ssn': state.ssn,
'signature': state.signature,
// ... add other fields as needed for backend
},
final Map<String, dynamic> formData = {
'firstName': state.firstName,
'lastName': state.lastName,
'middleInitial': state.middleInitial,
'otherLastNames': state.otherLastNames,
'dob': state.dob,
'ssn': state.ssn,
'email': state.email,
'phone': state.phone,
'address': state.address,
'aptNumber': state.aptNumber,
'city': state.city,
'state': state.state,
'zipCode': state.zipCode,
'citizenshipStatus': state.citizenshipStatus,
'uscisNumber': state.uscisNumber,
'admissionNumber': state.admissionNumber,
'passportNumber': state.passportNumber,
'countryIssuance': state.countryIssuance,
'preparerUsed': state.preparerUsed,
'signature': state.signature,
};
final I9TaxForm form = I9TaxForm(
id: _formId.isNotEmpty ? _formId : const Uuid().v4(),
title: 'Form I-9',
formData: formData,
);
await _submitI9FormUseCase(form);
emit(state.copyWith(status: FormI9Status.success));
} catch (e) {
emit(state.copyWith(

View File

@@ -1,13 +1,47 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:krow_domain/krow_domain.dart';
import 'package:uuid/uuid.dart';
import '../../../domain/usecases/submit_tax_form_usecase.dart';
import '../../../domain/usecases/submit_w4_form_usecase.dart';
import 'form_w4_state.dart';
class FormW4Cubit extends Cubit<FormW4State> {
final SubmitTaxFormUseCase _submitTaxFormUseCase;
final SubmitW4FormUseCase _submitW4FormUseCase;
String _formId = '';
FormW4Cubit(this._submitTaxFormUseCase) : super(const FormW4State());
FormW4Cubit(this._submitW4FormUseCase) : super(const FormW4State());
void initialize(TaxForm? form) {
if (form == null || form.formData.isEmpty) {
emit(const FormW4State()); // Reset
return;
}
final Map<String, dynamic> data = form.formData;
_formId = form.id;
// Combine address parts if needed, or take existing
final String city = data['city'] as String? ?? '';
final String stateVal = data['state'] as String? ?? '';
final String zip = data['zipCode'] as String? ?? '';
final String cityStateZip = '$city, $stateVal $zip'.trim();
emit(FormW4State(
firstName: data['firstName'] as String? ?? '',
lastName: data['lastName'] as String? ?? '',
ssn: data['ssn'] as String? ?? '',
address: data['address'] as String? ?? '',
cityStateZip: cityStateZip.contains(',') ? cityStateZip : '',
filingStatus: data['filingStatus'] as String? ?? '',
multipleJobs: data['multipleJobs'] as bool? ?? false,
qualifyingChildren: data['qualifyingChildren'] as int? ?? 0,
otherDependents: data['otherDependents'] as int? ?? 0,
otherIncome: data['otherIncome'] as String? ?? '',
deductions: data['deductions'] as String? ?? '',
extraWithholding: data['extraWithholding'] as String? ?? '',
signature: data['signature'] as String? ?? '',
));
}
void nextStep(int totalSteps) {
if (state.currentStep < totalSteps - 1) {
@@ -45,18 +79,29 @@ class FormW4Cubit extends Cubit<FormW4State> {
Future<void> submit() async {
emit(state.copyWith(status: FormW4Status.submitting));
try {
await _submitTaxFormUseCase(
TaxFormType.w4,
<String, dynamic>{
'firstName': state.firstName,
'lastName': state.lastName,
'ssn': state.ssn,
'filingStatus': state.filingStatus,
'multipleJobs': state.multipleJobs,
'signature': state.signature,
// ... add other fields as needed
},
final Map<String, dynamic> formData = {
'firstName': state.firstName,
'lastName': state.lastName,
'ssn': state.ssn,
'address': state.address,
'cityStateZip': state.cityStateZip, // Note: Repository should split this if needed.
'filingStatus': state.filingStatus,
'multipleJobs': state.multipleJobs,
'qualifyingChildren': state.qualifyingChildren,
'otherDependents': state.otherDependents,
'otherIncome': state.otherIncome,
'deductions': state.deductions,
'extraWithholding': state.extraWithholding,
'signature': state.signature,
};
final W4TaxForm form = W4TaxForm(
id: _formId.isNotEmpty ? _formId : const Uuid().v4(),
title: 'Form W-4',
formData: formData,
);
await _submitW4FormUseCase(form);
emit(state.copyWith(status: FormW4Status.success));
} catch (e) {
emit(state.copyWith(

View File

@@ -2,12 +2,14 @@ import 'package:design_system/design_system.dart';
import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart' hide ModularWatchExtension;
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:krow_domain/krow_domain.dart';
import '../blocs/i9/form_i9_cubit.dart';
import '../blocs/i9/form_i9_state.dart';
class FormI9Page extends StatefulWidget {
const FormI9Page({super.key});
final TaxForm? form;
const FormI9Page({super.key, this.form});
@override
State<FormI9Page> createState() => _FormI9PageState();
@@ -22,6 +24,16 @@ class _FormI9PageState extends State<FormI9Page> {
'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 'WI', 'WY'
];
@override
void initState() {
super.initState();
if (widget.form != null) {
// Use post-frame callback or simple direct call since we are using Modular.get in build
// But better helper:
Modular.get<FormI9Cubit>().initialize(widget.form);
}
}
final List<Map<String, String>> _steps = <Map<String, String>>[
<String, String>{'title': 'Personal Information', 'subtitle': 'Name and contact details'},
<String, String>{'title': 'Address', 'subtitle': 'Your current address'},

View File

@@ -2,18 +2,81 @@ import 'package:design_system/design_system.dart';
import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart' hide ModularWatchExtension;
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:krow_domain/krow_domain.dart';
import '../blocs/w4/form_w4_cubit.dart';
import '../blocs/w4/form_w4_state.dart';
class FormW4Page extends StatefulWidget {
const FormW4Page({super.key});
final TaxForm? form;
const FormW4Page({super.key, this.form});
@override
State<FormW4Page> createState() => _FormW4PageState();
}
class _FormW4PageState extends State<FormW4Page> {
@override
void initState() {
super.initState();
if (widget.form != null) {
Modular.get<FormW4Cubit>().initialize(widget.form);
}
}
final List<String> _usStates = <String>[
'Alabama',
'Alaska',
'Arizona',
'Arkansas',
'California',
'Colorado',
'Connecticut',
'Delaware',
'Florida',
'Georgia',
'Hawaii',
'Idaho',
'Illinois',
'Indiana',
'Iowa',
'Kansas',
'Kentucky',
'Louisiana',
'Maine',
'Maryland',
'Massachusetts',
'Michigan',
'Minnesota',
'Mississippi',
'Missouri',
'Montana',
'Nebraska',
'Nevada',
'New Hampshire',
'New Jersey',
'New Mexico',
'New York',
'North Carolina',
'North Dakota',
'Ohio',
'Oklahoma',
'Oregon',
'Pennsylvania',
'Rhode Island',
'South Carolina',
'South Dakota',
'Tennessee',
'Texas',
'Utah',
'Vermont',
'Virginia',
'Washington',
'West Virginia',
'Wisconsin',
'Wyoming',
];
final List<Map<String, String>> _steps = <Map<String, String>>[
<String, String>{'title': 'Personal Information', 'subtitle': 'Step 1'},
<String, String>{'title': 'Filing Status', 'subtitle': 'Step 1c'},

View File

@@ -140,14 +140,14 @@ class TaxFormsPage extends StatelessWidget {
Widget _buildFormCard(TaxForm form) {
// Helper to get icon based on type (could be in entity or a mapper)
final String icon = form.type == TaxFormType.i9 ? '🛂' : '📋';
final String icon = form is I9TaxForm ? '🛂' : '📋';
return GestureDetector(
onTap: () {
if (form.type == TaxFormType.i9) {
Modular.to.pushNamed('i9');
} else if (form.type == TaxFormType.w4) {
Modular.to.pushNamed('w4');
if (form is I9TaxForm) {
Modular.to.pushNamed('i9', arguments: form);
} else if (form is W4TaxForm) {
Modular.to.pushNamed('w4', arguments: form);
}
},
child: Container(

View File

@@ -1,10 +1,12 @@
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:krow_data_connect/krow_data_connect.dart';
import 'package:krow_domain/krow_domain.dart';
import 'data/repositories/tax_forms_repository_impl.dart';
import 'domain/repositories/tax_forms_repository.dart';
import 'domain/usecases/get_tax_forms_usecase.dart';
import 'domain/usecases/submit_tax_form_usecase.dart';
import 'domain/usecases/submit_i9_form_usecase.dart';
import 'domain/usecases/submit_w4_form_usecase.dart';
import 'presentation/blocs/i9/form_i9_cubit.dart';
import 'presentation/blocs/tax_forms/tax_forms_cubit.dart';
import 'presentation/blocs/w4/form_w4_cubit.dart';
@@ -24,7 +26,8 @@ class StaffTaxFormsModule extends Module {
// Use Cases
i.addLazySingleton(GetTaxFormsUseCase.new);
i.addLazySingleton(SubmitTaxFormUseCase.new);
i.addLazySingleton(SubmitI9FormUseCase.new);
i.addLazySingleton(SubmitW4FormUseCase.new);
// Blocs
i.addLazySingleton(TaxFormsCubit.new);
@@ -35,7 +38,13 @@ class StaffTaxFormsModule extends Module {
@override
void routes(RouteManager r) {
r.child('/', child: (_) => const TaxFormsPage());
r.child('/i9', child: (_) => const FormI9Page());
r.child('/w4', child: (_) => const FormW4Page());
r.child(
'/i9',
child: (_) => FormI9Page(form: r.args.data as TaxForm?),
);
r.child(
'/w4',
child: (_) => FormW4Page(form: r.args.data as TaxForm?),
);
}
}

View File

@@ -1,778 +0,0 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
_flutterfire_internals:
dependency: transitive
description:
name: _flutterfire_internals
sha256: cd83f7d6bd4e4c0b0b4fef802e8796784032e1cc23d7b0e982cf5d05d9bbe182
url: "https://pub.dev"
source: hosted
version: "1.3.66"
archive:
dependency: transitive
description:
name: archive
sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d
url: "https://pub.dev"
source: hosted
version: "3.6.1"
args:
dependency: transitive
description:
name: args
sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
url: "https://pub.dev"
source: hosted
version: "2.7.0"
async:
dependency: transitive
description:
name: async
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
url: "https://pub.dev"
source: hosted
version: "2.13.0"
auto_injector:
dependency: transitive
description:
name: auto_injector
sha256: "1fc2624898e92485122eb2b1698dd42511d7ff6574f84a3a8606fc4549a1e8f8"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
bloc:
dependency: "direct main"
description:
name: bloc
sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e"
url: "https://pub.dev"
source: hosted
version: "8.1.4"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
characters:
dependency: transitive
description:
name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev"
source: hosted
version: "1.4.0"
clock:
dependency: transitive
description:
name: clock
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev"
source: hosted
version: "1.1.2"
code_assets:
dependency: transitive
description:
name: code_assets
sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
collection:
dependency: transitive
description:
name: collection
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev"
source: hosted
version: "1.19.1"
core_localization:
dependency: "direct main"
description:
path: "../../../../../core_localization"
relative: true
source: path
version: "0.0.1"
crypto:
dependency: transitive
description:
name: crypto
sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
url: "https://pub.dev"
source: hosted
version: "3.0.7"
csv:
dependency: transitive
description:
name: csv
sha256: c6aa2679b2a18cb57652920f674488d89712efaf4d3fdf2e537215b35fc19d6c
url: "https://pub.dev"
source: hosted
version: "6.0.0"
design_system:
dependency: "direct main"
description:
path: "../../../../../design_system"
relative: true
source: path
version: "0.0.1"
equatable:
dependency: "direct main"
description:
name: equatable
sha256: "3e0141505477fd8ad55d6eb4e7776d3fe8430be8e497ccb1521370c3f21a3e2b"
url: "https://pub.dev"
source: hosted
version: "2.0.8"
fake_async:
dependency: transitive
description:
name: fake_async
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
ffi:
dependency: transitive
description:
name: ffi
sha256: d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c
url: "https://pub.dev"
source: hosted
version: "2.1.5"
file:
dependency: transitive
description:
name: file
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
url: "https://pub.dev"
source: hosted
version: "7.0.1"
firebase_app_check:
dependency: transitive
description:
name: firebase_app_check
sha256: "45f0d279ea7ae4eac1867a4c85aa225761e3ac0ccf646386a860b2bc16581f76"
url: "https://pub.dev"
source: hosted
version: "0.4.1+4"
firebase_app_check_platform_interface:
dependency: transitive
description:
name: firebase_app_check_platform_interface
sha256: e32b4e6adeaac207a6f7afe0906d97c0811de42fb200d9b6317a09155de65e2b
url: "https://pub.dev"
source: hosted
version: "0.2.1+4"
firebase_app_check_web:
dependency: transitive
description:
name: firebase_app_check_web
sha256: "2cbc8a18a34813a7e31d7b30f989973087421cd5d0e397b4dd88a90289aa2bed"
url: "https://pub.dev"
source: hosted
version: "0.2.2+2"
firebase_auth:
dependency: "direct main"
description:
name: firebase_auth
sha256: b20d1540460814c5984474c1e9dd833bdbcff6ecd8d6ad86cc9da8cfd581c172
url: "https://pub.dev"
source: hosted
version: "6.1.4"
firebase_auth_platform_interface:
dependency: transitive
description:
name: firebase_auth_platform_interface
sha256: fd0225320b6bbc92460c86352d16b60aea15f9ef88292774cca97b0522ea9f72
url: "https://pub.dev"
source: hosted
version: "8.1.6"
firebase_auth_web:
dependency: transitive
description:
name: firebase_auth_web
sha256: be7dccb263b89fbda2a564de9d8193118196e8481ffb937222a025cdfdf82c40
url: "https://pub.dev"
source: hosted
version: "6.1.2"
firebase_core:
dependency: transitive
description:
name: firebase_core
sha256: "923085c881663ef685269b013e241b428e1fb03cdd0ebde265d9b40ff18abf80"
url: "https://pub.dev"
source: hosted
version: "4.4.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
sha256: cccb4f572325dc14904c02fcc7db6323ad62ba02536833dddb5c02cac7341c64
url: "https://pub.dev"
source: hosted
version: "6.0.2"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
sha256: "83e7356c704131ca4d8d8dd57e360d8acecbca38b1a3705c7ae46cc34c708084"
url: "https://pub.dev"
source: hosted
version: "3.4.0"
firebase_data_connect:
dependency: "direct main"
description:
name: firebase_data_connect
sha256: "01d0f8e33c520a6e6f59cf5ac6ff281d1927f7837f094fa8eb5fdb0b1b328ad8"
url: "https://pub.dev"
source: hosted
version: "0.2.2+2"
fixnum:
dependency: transitive
description:
name: fixnum
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
url: "https://pub.dev"
source: hosted
version: "1.1.1"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_bloc:
dependency: "direct main"
description:
name: flutter_bloc
sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a
url: "https://pub.dev"
source: hosted
version: "8.1.6"
flutter_localizations:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_modular:
dependency: "direct main"
description:
name: flutter_modular
sha256: "33a63d9fe61429d12b3dfa04795ed890f17d179d3d38e988ba7969651fcd5586"
url: "https://pub.dev"
source: hosted
version: "6.4.1"
flutter_test:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
font_awesome_flutter:
dependency: transitive
description:
name: font_awesome_flutter
sha256: b9011df3a1fa02993630b8fb83526368cf2206a711259830325bab2f1d2a4eb0
url: "https://pub.dev"
source: hosted
version: "10.12.0"
glob:
dependency: transitive
description:
name: glob
sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
url: "https://pub.dev"
source: hosted
version: "2.1.3"
google_fonts:
dependency: transitive
description:
name: google_fonts
sha256: "6996212014b996eaa17074e02b1b925b212f5e053832d9048970dc27255a8fb3"
url: "https://pub.dev"
source: hosted
version: "7.1.0"
google_identity_services_web:
dependency: transitive
description:
name: google_identity_services_web
sha256: "5d187c46dc59e02646e10fe82665fc3884a9b71bc1c90c2b8b749316d33ee454"
url: "https://pub.dev"
source: hosted
version: "0.3.3+1"
googleapis_auth:
dependency: transitive
description:
name: googleapis_auth
sha256: befd71383a955535060acde8792e7efc11d2fccd03dd1d3ec434e85b68775938
url: "https://pub.dev"
source: hosted
version: "1.6.0"
grpc:
dependency: transitive
description:
name: grpc
sha256: e93ee3bce45c134bf44e9728119102358c7cd69de7832d9a874e2e74eb8cab40
url: "https://pub.dev"
source: hosted
version: "3.2.4"
hooks:
dependency: transitive
description:
name: hooks
sha256: "5d309c86e7ce34cd8e37aa71cb30cb652d3829b900ab145e4d9da564b31d59f7"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
http:
dependency: transitive
description:
name: http
sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
source: hosted
version: "1.6.0"
http2:
dependency: transitive
description:
name: http2
sha256: "382d3aefc5bd6dc68c6b892d7664f29b5beb3251611ae946a98d35158a82bbfa"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
url: "https://pub.dev"
source: hosted
version: "4.1.2"
intl:
dependency: transitive
description:
name: intl
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
url: "https://pub.dev"
source: hosted
version: "0.20.2"
krow_core:
dependency: "direct main"
description:
path: "../../../../../core"
relative: true
source: path
version: "0.0.1"
krow_data_connect:
dependency: "direct main"
description:
path: "../../../../../data_connect"
relative: true
source: path
version: "0.0.1"
krow_domain:
dependency: "direct main"
description:
path: "../../../../../domain"
relative: true
source: path
version: "0.0.1"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
url: "https://pub.dev"
source: hosted
version: "11.0.2"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
version: "3.0.10"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
logging:
dependency: transitive
description:
name: logging
sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
url: "https://pub.dev"
source: hosted
version: "1.3.0"
lucide_icons:
dependency: "direct main"
description:
name: lucide_icons
sha256: ad24d0fd65707e48add30bebada7d90bff2a1bba0a72d6e9b19d44246b0e83c4
url: "https://pub.dev"
source: hosted
version: "0.257.0"
matcher:
dependency: transitive
description:
name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev"
source: hosted
version: "0.12.17"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
version: "0.11.1"
meta:
dependency: transitive
description:
name: meta
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
url: "https://pub.dev"
source: hosted
version: "1.17.0"
modular_core:
dependency: transitive
description:
name: modular_core
sha256: "1db0420a0dfb8a2c6dca846e7cbaa4ffeb778e247916dbcb27fb25aa566e5436"
url: "https://pub.dev"
source: hosted
version: "3.4.1"
native_toolchain_c:
dependency: transitive
description:
name: native_toolchain_c
sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac"
url: "https://pub.dev"
source: hosted
version: "0.17.4"
nested:
dependency: transitive
description:
name: nested
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
objective_c:
dependency: transitive
description:
name: objective_c
sha256: "7fd0c4d8ac8980011753b9bdaed2bf15111365924cdeeeaeb596214ea2b03537"
url: "https://pub.dev"
source: hosted
version: "9.2.4"
path:
dependency: transitive
description:
name: path
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev"
source: hosted
version: "1.9.1"
path_provider:
dependency: transitive
description:
name: path_provider
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e
url: "https://pub.dev"
source: hosted
version: "2.2.22"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699"
url: "https://pub.dev"
source: hosted
version: "2.6.0"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
url: "https://pub.dev"
source: hosted
version: "2.2.1"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
url: "https://pub.dev"
source: hosted
version: "2.3.0"
platform:
dependency: transitive
description:
name: platform
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
url: "https://pub.dev"
source: hosted
version: "3.1.6"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
url: "https://pub.dev"
source: hosted
version: "2.1.8"
protobuf:
dependency: transitive
description:
name: protobuf
sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
provider:
dependency: transitive
description:
name: provider
sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272"
url: "https://pub.dev"
source: hosted
version: "6.1.5+1"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
result_dart:
dependency: transitive
description:
name: result_dart
sha256: "0666b21fbdf697b3bdd9986348a380aa204b3ebe7c146d8e4cdaa7ce735e6054"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
shared_preferences:
dependency: transitive
description:
name: shared_preferences
sha256: "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64"
url: "https://pub.dev"
source: hosted
version: "2.5.4"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: "83af5c682796c0f7719c2bbf74792d113e40ae97981b8f266fa84574573556bc"
url: "https://pub.dev"
source: hosted
version: "2.4.18"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f"
url: "https://pub.dev"
source: hosted
version: "2.5.6"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
url: "https://pub.dev"
source: hosted
version: "2.4.3"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
slang:
dependency: transitive
description:
name: slang
sha256: "13e3b6f07adc51ab751e7889647774d294cbce7a3382f81d9e5029acfe9c37b2"
url: "https://pub.dev"
source: hosted
version: "4.12.0"
slang_flutter:
dependency: transitive
description:
name: slang_flutter
sha256: "0a4545cca5404d6b7487cf61cf1fe56c52daeb08de56a7574ee8381fbad035a0"
url: "https://pub.dev"
source: hosted
version: "4.12.0"
source_span:
dependency: transitive
description:
name: source_span
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.dev"
source: hosted
version: "1.10.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev"
source: hosted
version: "1.12.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
string_scanner:
dependency: transitive
description:
name: string_scanner
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev"
source: hosted
version: "1.4.1"
term_glyph:
dependency: transitive
description:
name: term_glyph
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev"
source: hosted
version: "1.2.2"
test_api:
dependency: transitive
description:
name: test_api
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
url: "https://pub.dev"
source: hosted
version: "0.7.7"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.dev"
source: hosted
version: "1.4.0"
uuid:
dependency: transitive
description:
name: uuid
sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8
url: "https://pub.dev"
source: hosted
version: "4.5.2"
vector_math:
dependency: transitive
description:
name: vector_math
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
source: hosted
version: "2.2.0"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60"
url: "https://pub.dev"
source: hosted
version: "15.0.2"
watcher:
dependency: transitive
description:
name: watcher
sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
web:
dependency: transitive
description:
name: web
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
yaml:
dependency: transitive
description:
name: yaml
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
url: "https://pub.dev"
source: hosted
version: "3.1.3"
sdks:
dart: ">=3.10.7 <4.0.0"
flutter: ">=3.38.4"

View File

@@ -2,6 +2,7 @@ name: staff_tax_forms
description: Staff Tax Forms feature.
version: 0.0.1
publish_to: none
resolution: workspace
environment:
sdk: '>=3.10.0 <4.0.0'

View File

@@ -25,11 +25,13 @@ class PersonalInfoBloc extends Bloc<PersonalInfoEvent, PersonalInfoState>
required UpdatePersonalInfoUseCase updatePersonalInfoUseCase,
}) : _getPersonalInfoUseCase = getPersonalInfoUseCase,
_updatePersonalInfoUseCase = updatePersonalInfoUseCase,
super(const PersonalInfoState()) {
super(const PersonalInfoState.initial()) {
on<PersonalInfoLoadRequested>(_onLoadRequested);
on<PersonalInfoFieldUpdated>(_onFieldUpdated);
on<PersonalInfoSaveRequested>(_onSaveRequested);
on<PersonalInfoPhotoUploadRequested>(_onPhotoUploadRequested);
on<PersonalInfoFieldChanged>(_onFieldChanged);
on<PersonalInfoAddressSelected>(_onAddressSelected);
on<PersonalInfoFormSubmitted>(_onSubmitted);
add(const PersonalInfoLoadRequested());
}
/// Handles loading staff profile information.
@@ -67,8 +69,8 @@ class PersonalInfoBloc extends Bloc<PersonalInfoEvent, PersonalInfoState>
}
/// Handles updating a field value in the current staff profile.
void _onFieldUpdated(
PersonalInfoFieldUpdated event,
void _onFieldChanged(
PersonalInfoFieldChanged event,
Emitter<PersonalInfoState> emit,
) {
final Map<String, dynamic> updatedValues = Map.from(state.formValues);
@@ -77,8 +79,8 @@ class PersonalInfoBloc extends Bloc<PersonalInfoEvent, PersonalInfoState>
}
/// Handles saving staff profile information.
Future<void> _onSaveRequested(
PersonalInfoSaveRequested event,
Future<void> _onSubmitted(
PersonalInfoFormSubmitted event,
Emitter<PersonalInfoState> emit,
) async {
if (state.staff == null) return;
@@ -116,33 +118,16 @@ class PersonalInfoBloc extends Bloc<PersonalInfoEvent, PersonalInfoState>
}
}
/// Handles uploading a profile photo.
Future<void> _onPhotoUploadRequested(
PersonalInfoPhotoUploadRequested event,
void _onAddressSelected(
PersonalInfoAddressSelected event,
Emitter<PersonalInfoState> emit,
) async {
if (state.staff == null) return;
emit(state.copyWith(status: PersonalInfoStatus.uploadingPhoto));
try {
// TODO: Implement photo upload when repository method is available
// final photoUrl = await _repository.uploadProfilePhoto(event.filePath);
// final updatedStaff = Staff(...);
// emit(state.copyWith(
// status: PersonalInfoStatus.loaded,
// staff: updatedStaff,
// ));
// For now, just return to loaded state
emit(state.copyWith(status: PersonalInfoStatus.loaded));
} catch (e) {
emit(state.copyWith(
status: PersonalInfoStatus.error,
errorMessage: e.toString(),
));
}
) {
// TODO: Implement Google Places logic if needed
}
/// With _onPhotoUploadRequested and _onSaveRequested removed or renamed,
/// there are no errors pointing to them here.
@override
void dispose() {
close();

View File

@@ -14,11 +14,11 @@ class PersonalInfoLoadRequested extends PersonalInfoEvent {
}
/// Event to update a field value.
class PersonalInfoFieldUpdated extends PersonalInfoEvent {
class PersonalInfoFieldChanged extends PersonalInfoEvent {
final String field;
final dynamic value;
const PersonalInfoFieldUpdated({
const PersonalInfoFieldChanged({
required this.field,
required this.value,
});
@@ -27,17 +27,16 @@ class PersonalInfoFieldUpdated extends PersonalInfoEvent {
List<Object?> get props => [field, value];
}
/// Event to save personal information.
class PersonalInfoSaveRequested extends PersonalInfoEvent {
const PersonalInfoSaveRequested();
/// Event to submit the form.
class PersonalInfoFormSubmitted extends PersonalInfoEvent {
const PersonalInfoFormSubmitted();
}
/// Event to upload a profile photo.
class PersonalInfoPhotoUploadRequested extends PersonalInfoEvent {
final String filePath;
const PersonalInfoPhotoUploadRequested({required this.filePath});
/// Event when an address is selected from autocomplete.
class PersonalInfoAddressSelected extends PersonalInfoEvent {
final String address;
const PersonalInfoAddressSelected(this.address);
@override
List<Object?> get props => [filePath];
List<Object?> get props => [address];
}

View File

@@ -49,6 +49,13 @@ class PersonalInfoState extends Equatable {
this.errorMessage,
});
/// Initial state.
const PersonalInfoState.initial()
: status = PersonalInfoStatus.initial,
staff = null,
formValues = const {},
errorMessage = null;
/// Creates a copy of this state with the given fields replaced.
PersonalInfoState copyWith({
PersonalInfoStatus? status,

View File

@@ -26,8 +26,7 @@ class PersonalInfoPage extends StatelessWidget {
Widget build(BuildContext context) {
final TranslationsStaffOnboardingPersonalInfoEn i18n = t.staff.onboarding.personal_info;
return BlocProvider<PersonalInfoBloc>(
create: (BuildContext context) => Modular.get<PersonalInfoBloc>()
..add(const PersonalInfoLoadRequested()),
create: (BuildContext context) => Modular.get<PersonalInfoBloc>(),
child: BlocListener<PersonalInfoBloc, PersonalInfoState>(
listener: (BuildContext context, PersonalInfoState state) {
if (state.status == PersonalInfoStatus.saved) {

View File

@@ -56,7 +56,7 @@ class _PersonalInfoContentState extends State<PersonalInfoContent> {
void _onPhoneChanged() {
context.read<PersonalInfoBloc>().add(
PersonalInfoFieldUpdated(
PersonalInfoFieldChanged(
field: 'phone',
value: _phoneController.text,
),
@@ -73,7 +73,7 @@ class _PersonalInfoContentState extends State<PersonalInfoContent> {
.toList();
context.read<PersonalInfoBloc>().add(
PersonalInfoFieldUpdated(
PersonalInfoFieldChanged(
field: 'preferredLocations',
value: locations,
),
@@ -81,7 +81,7 @@ class _PersonalInfoContentState extends State<PersonalInfoContent> {
}
void _handleSave() {
context.read<PersonalInfoBloc>().add(const PersonalInfoSaveRequested());
context.read<PersonalInfoBloc>().add(const PersonalInfoFormSubmitted());
}
void _handlePhotoTap() {

View File

@@ -1,650 +0,0 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
async:
dependency: transitive
description:
name: async
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
url: "https://pub.dev"
source: hosted
version: "2.13.0"
auto_injector:
dependency: transitive
description:
name: auto_injector
sha256: "1fc2624898e92485122eb2b1698dd42511d7ff6574f84a3a8606fc4549a1e8f8"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
bloc:
dependency: transitive
description:
name: bloc
sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e"
url: "https://pub.dev"
source: hosted
version: "8.1.4"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
characters:
dependency: transitive
description:
name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev"
source: hosted
version: "1.4.0"
clock:
dependency: transitive
description:
name: clock
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev"
source: hosted
version: "1.1.2"
code_assets:
dependency: transitive
description:
name: code_assets
sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
collection:
dependency: transitive
description:
name: collection
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev"
source: hosted
version: "1.19.1"
core_localization:
dependency: "direct main"
description:
path: "../../../core_localization"
relative: true
source: path
version: "0.0.1"
crypto:
dependency: transitive
description:
name: crypto
sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
url: "https://pub.dev"
source: hosted
version: "3.0.7"
csv:
dependency: transitive
description:
name: csv
sha256: c6aa2679b2a18cb57652920f674488d89712efaf4d3fdf2e537215b35fc19d6c
url: "https://pub.dev"
source: hosted
version: "6.0.0"
design_system:
dependency: "direct main"
description:
path: "../../../design_system"
relative: true
source: path
version: "0.0.1"
equatable:
dependency: "direct main"
description:
name: equatable
sha256: "3e0141505477fd8ad55d6eb4e7776d3fe8430be8e497ccb1521370c3f21a3e2b"
url: "https://pub.dev"
source: hosted
version: "2.0.8"
fake_async:
dependency: transitive
description:
name: fake_async
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
ffi:
dependency: transitive
description:
name: ffi
sha256: d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c
url: "https://pub.dev"
source: hosted
version: "2.1.5"
file:
dependency: transitive
description:
name: file
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
url: "https://pub.dev"
source: hosted
version: "7.0.1"
fixnum:
dependency: transitive
description:
name: fixnum
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
url: "https://pub.dev"
source: hosted
version: "1.1.1"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_bloc:
dependency: "direct main"
description:
name: flutter_bloc
sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a
url: "https://pub.dev"
source: hosted
version: "8.1.6"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
flutter_localizations:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_modular:
dependency: "direct main"
description:
name: flutter_modular
sha256: "33a63d9fe61429d12b3dfa04795ed890f17d179d3d38e988ba7969651fcd5586"
url: "https://pub.dev"
source: hosted
version: "6.4.1"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
font_awesome_flutter:
dependency: transitive
description:
name: font_awesome_flutter
sha256: b9011df3a1fa02993630b8fb83526368cf2206a711259830325bab2f1d2a4eb0
url: "https://pub.dev"
source: hosted
version: "10.12.0"
glob:
dependency: transitive
description:
name: glob
sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
url: "https://pub.dev"
source: hosted
version: "2.1.3"
google_fonts:
dependency: transitive
description:
name: google_fonts
sha256: "6996212014b996eaa17074e02b1b925b212f5e053832d9048970dc27255a8fb3"
url: "https://pub.dev"
source: hosted
version: "7.1.0"
hooks:
dependency: transitive
description:
name: hooks
sha256: "5d309c86e7ce34cd8e37aa71cb30cb652d3829b900ab145e4d9da564b31d59f7"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
http:
dependency: transitive
description:
name: http
sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
source: hosted
version: "1.6.0"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
url: "https://pub.dev"
source: hosted
version: "4.1.2"
intl:
dependency: "direct main"
description:
name: intl
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
url: "https://pub.dev"
source: hosted
version: "0.20.2"
krow_core:
dependency: "direct main"
description:
path: "../../../core"
relative: true
source: path
version: "0.0.1"
krow_data_connect:
dependency: "direct main"
description:
path: "../../../data_connect"
relative: true
source: path
version: "0.0.1"
krow_domain:
dependency: "direct main"
description:
path: "../../../domain"
relative: true
source: path
version: "0.0.1"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
url: "https://pub.dev"
source: hosted
version: "11.0.2"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
version: "3.0.10"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
lints:
dependency: transitive
description:
name: lints
sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290
url: "https://pub.dev"
source: hosted
version: "3.0.0"
logging:
dependency: transitive
description:
name: logging
sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
url: "https://pub.dev"
source: hosted
version: "1.3.0"
lucide_icons:
dependency: transitive
description:
name: lucide_icons
sha256: ad24d0fd65707e48add30bebada7d90bff2a1bba0a72d6e9b19d44246b0e83c4
url: "https://pub.dev"
source: hosted
version: "0.257.0"
matcher:
dependency: transitive
description:
name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev"
source: hosted
version: "0.12.17"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
version: "0.11.1"
meta:
dependency: transitive
description:
name: meta
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
url: "https://pub.dev"
source: hosted
version: "1.17.0"
modular_core:
dependency: transitive
description:
name: modular_core
sha256: "1db0420a0dfb8a2c6dca846e7cbaa4ffeb778e247916dbcb27fb25aa566e5436"
url: "https://pub.dev"
source: hosted
version: "3.4.1"
native_toolchain_c:
dependency: transitive
description:
name: native_toolchain_c
sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac"
url: "https://pub.dev"
source: hosted
version: "0.17.4"
nested:
dependency: transitive
description:
name: nested
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
objective_c:
dependency: transitive
description:
name: objective_c
sha256: "7fd0c4d8ac8980011753b9bdaed2bf15111365924cdeeeaeb596214ea2b03537"
url: "https://pub.dev"
source: hosted
version: "9.2.4"
path:
dependency: transitive
description:
name: path
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev"
source: hosted
version: "1.9.1"
path_provider:
dependency: transitive
description:
name: path_provider
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e
url: "https://pub.dev"
source: hosted
version: "2.2.22"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699"
url: "https://pub.dev"
source: hosted
version: "2.6.0"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
url: "https://pub.dev"
source: hosted
version: "2.2.1"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
url: "https://pub.dev"
source: hosted
version: "2.3.0"
platform:
dependency: transitive
description:
name: platform
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
url: "https://pub.dev"
source: hosted
version: "3.1.6"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
url: "https://pub.dev"
source: hosted
version: "2.1.8"
provider:
dependency: transitive
description:
name: provider
sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272"
url: "https://pub.dev"
source: hosted
version: "6.1.5+1"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
result_dart:
dependency: transitive
description:
name: result_dart
sha256: "0666b21fbdf697b3bdd9986348a380aa204b3ebe7c146d8e4cdaa7ce735e6054"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
shared_preferences:
dependency: transitive
description:
name: shared_preferences
sha256: "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64"
url: "https://pub.dev"
source: hosted
version: "2.5.4"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: "83af5c682796c0f7719c2bbf74792d113e40ae97981b8f266fa84574573556bc"
url: "https://pub.dev"
source: hosted
version: "2.4.18"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f"
url: "https://pub.dev"
source: hosted
version: "2.5.6"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
url: "https://pub.dev"
source: hosted
version: "2.4.3"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
slang:
dependency: transitive
description:
name: slang
sha256: "13e3b6f07adc51ab751e7889647774d294cbce7a3382f81d9e5029acfe9c37b2"
url: "https://pub.dev"
source: hosted
version: "4.12.0"
slang_flutter:
dependency: transitive
description:
name: slang_flutter
sha256: "0a4545cca5404d6b7487cf61cf1fe56c52daeb08de56a7574ee8381fbad035a0"
url: "https://pub.dev"
source: hosted
version: "4.12.0"
source_span:
dependency: transitive
description:
name: source_span
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.dev"
source: hosted
version: "1.10.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev"
source: hosted
version: "1.12.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
string_scanner:
dependency: transitive
description:
name: string_scanner
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev"
source: hosted
version: "1.4.1"
term_glyph:
dependency: transitive
description:
name: term_glyph
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev"
source: hosted
version: "1.2.2"
test_api:
dependency: transitive
description:
name: test_api
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
url: "https://pub.dev"
source: hosted
version: "0.7.7"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.dev"
source: hosted
version: "1.4.0"
uuid:
dependency: transitive
description:
name: uuid
sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8
url: "https://pub.dev"
source: hosted
version: "4.5.2"
vector_math:
dependency: transitive
description:
name: vector_math
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
source: hosted
version: "2.2.0"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60"
url: "https://pub.dev"
source: hosted
version: "15.0.2"
watcher:
dependency: transitive
description:
name: watcher
sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
web:
dependency: transitive
description:
name: web
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
yaml:
dependency: transitive
description:
name: yaml
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
url: "https://pub.dev"
source: hosted
version: "3.1.3"
sdks:
dart: ">=3.10.7 <4.0.0"
flutter: ">=3.38.4"

View File

@@ -2,6 +2,7 @@ name: staff_shifts
description: A new Flutter package project.
version: 0.0.1
publish_to: 'none'
resolution: workspace
environment:
sdk: '>=3.0.0 <4.0.0'

View File

@@ -1,45 +1,169 @@
mutation createTaxForm(
$formType: TaxFormType!
$title: String!
$subtitle: String
$description: String
$status: TaxFormStatus
$firstName: String!
$lastName: String!
$mInitial: String
$oLastName: String
$dob: Timestamp
$socialSN: Int!
$email: String
$phone: String
$address: String!
$city: String
$apt: String
$state: String
$zipCode: String
# W-4
$marital: MaritalStatus
$multipleJob: Boolean
$childrens: Int
$otherDeps: Int
$totalCredits: Float
$otherInconme: Float
$deductions: Float
$extraWithholding: Float
# I-9
$citizen: CitizenshipStatus
$uscis: String
$passportNumber: String
$countryIssue: String
$prepartorOrTranslator: Boolean
# both
$signature: String
$date: Timestamp
$status: TaxFormStatus!
$staffId: UUID!
$formData: Any
$createdBy: String
) @auth(level: USER) {
taxForm_insert(
data: {
formType: $formType
title: $title
subtitle: $subtitle
description: $description
firstName: $firstName
lastName: $lastName
mInitial: $mInitial
oLastName: $oLastName
dob: $dob
socialSN: $socialSN
email: $email
phone: $phone
address: $address
city: $city
apt: $apt
state: $state
zipCode: $zipCode
marital: $marital
multipleJob: $multipleJob
childrens: $childrens
otherDeps: $otherDeps
totalCredits: $totalCredits
otherInconme: $otherInconme
deductions: $deductions
extraWithholding: $extraWithholding
citizen: $citizen
uscis: $uscis
passportNumber: $passportNumber
countryIssue: $countryIssue
prepartorOrTranslator: $prepartorOrTranslator
signature: $signature
date: $date
status: $status
staffId: $staffId
formData: $formData
createdBy: $createdBy
}
)
)
}
mutation updateTaxForm(
$id: UUID!
$formType: TaxFormType
$firstName: String
$lastName: String
$mInitial: String
$oLastName: String
$dob: Timestamp
$socialSN: Int
$email: String
$phone: String
$address: String
$city: String
$apt: String
$state: String
$zipCode: String
# W-4
$marital: MaritalStatus
$multipleJob: Boolean
$childrens: Int
$otherDeps: Int
$totalCredits: Float
$otherInconme: Float
$deductions: Float
$extraWithholding: Float
# I-9
$citizen: CitizenshipStatus
$uscis: String
$passportNumber: String
$countryIssue: String
$prepartorOrTranslator: Boolean
# both
$signature: String
$date: Timestamp
$status: TaxFormStatus
$formData: Any
$title: String
$subtitle: String
$description: String
) @auth(level: USER) {
taxForm_update(
id: $id
data: {
formType: $formType
firstName: $firstName
lastName: $lastName
mInitial: $mInitial
oLastName: $oLastName
dob: $dob
socialSN: $socialSN
email: $email
phone: $phone
address: $address
city: $city
apt: $apt
state: $state
zipCode: $zipCode
marital: $marital
multipleJob: $multipleJob
childrens: $childrens
otherDeps: $otherDeps
totalCredits: $totalCredits
otherInconme: $otherInconme
deductions: $deductions
extraWithholding: $extraWithholding
citizen: $citizen
uscis: $uscis
passportNumber: $passportNumber
countryIssue: $countryIssue
prepartorOrTranslator: $prepartorOrTranslator
signature: $signature
date: $date
status: $status
formData: $formData
title: $title
subtitle: $subtitle
description: $description
}
)
)
}
mutation deleteTaxForm($id: UUID!) @auth(level: USER) {
taxForm_delete(id: $id)
taxForm_delete(id: $id)
}

View File

@@ -1,13 +1,47 @@
query listTaxForms @auth(level: USER) {
taxForms {
# ==========================================================
# TAX FORM - QUERIES (USE where, NOT filter)
# Include ALL fields from the new TaxForm type
# ==========================================================
query listTaxForms($offset: Int, $limit: Int) @auth(level: USER) {
taxForms(offset: $offset, limit: $limit, orderBy: { createdAt: DESC }) {
id
formType
title
subtitle
description
firstName
lastName
mInitial
oLastName
dob
socialSN
email
phone
address
city
apt
state
zipCode
marital
multipleJob
childrens
otherDeps
totalCredits
otherInconme
deductions
extraWithholding
citizen
uscis
passportNumber
countryIssue
prepartorOrTranslator
signature
date
status
staffId
formData
createdAt
updatedAt
createdBy
@@ -18,38 +52,105 @@ query getTaxFormById($id: UUID!) @auth(level: USER) {
taxForm(id: $id) {
id
formType
title
subtitle
description
firstName
lastName
mInitial
oLastName
dob
socialSN
email
phone
address
city
apt
state
zipCode
marital
multipleJob
childrens
otherDeps
totalCredits
otherInconme
deductions
extraWithholding
citizen
uscis
passportNumber
countryIssue
prepartorOrTranslator
signature
date
status
staffId
formData
createdAt
updatedAt
createdBy
}
}
query getTaxFormsBystaffId($staffId: UUID!) @auth(level: USER) {
taxForms(where: { staffId: { eq: $staffId } }) {
query getTaxFormsByStaffId(
$staffId: UUID!
$offset: Int
$limit: Int
) @auth(level: USER) {
taxForms(
where: { staffId: { eq: $staffId } }
offset: $offset
limit: $limit
orderBy: { createdAt: DESC }
) {
id
formType
title
subtitle
description
firstName
lastName
mInitial
oLastName
dob
socialSN
email
phone
address
city
apt
state
zipCode
marital
multipleJob
childrens
otherDeps
totalCredits
otherInconme
deductions
extraWithholding
citizen
uscis
passportNumber
countryIssue
prepartorOrTranslator
signature
date
status
staffId
formData
createdAt
updatedAt
createdBy
}
}
query filterTaxForms(
query listTaxFormsWhere(
$formType: TaxFormType
$status: TaxFormStatus
$staffId: UUID
$offset: Int
$limit: Int
) @auth(level: USER) {
taxForms(
where: {
@@ -57,11 +158,48 @@ query filterTaxForms(
status: { eq: $status }
staffId: { eq: $staffId }
}
offset: $offset
limit: $limit
orderBy: { createdAt: DESC }
) {
id
formType
title
firstName
lastName
mInitial
oLastName
dob
socialSN
email
phone
address
city
apt
state
zipCode
marital
multipleJob
childrens
otherDeps
totalCredits
otherInconme
deductions
extraWithholding
citizen
uscis
passportNumber
countryIssue
prepartorOrTranslator
signature
date
status
staffId
createdAt
updatedAt
createdBy
}
}

View File

@@ -11,15 +11,66 @@ enum TaxFormType {
W4
}
enum MaritalStatus{
SINGLE
MARRIED
HEAD
}
enum CitizenshipStatus{
CITIZEN
NONCITIZEN
PERMANENT_RESIDENT
ALIEN
}
type TaxForm @table(name: "tax_forms") {
id: UUID! @default(expr: "uuidV4()")
formType: TaxFormType!
title: String!
subtitle: String
description: String
firstName: String!
lastName: String!
mInitial: String
oLastName:String
dob: Timestamp
socialSN: Int!
email: String
phone: String
address: String!
city: String
apt: String
state: String
zipCode: String
# form W-4
marital: MaritalStatus
multipleJob: Boolean @default(expr: "false")
childrens: Int
otherDeps: Int
totalCredits: Float @default(expr: "0")
otherInconme: Float @default(expr: "0")
deductions: Float @default(expr: "0")
extraWithholding: Float @default(expr: "0")
# form I-9
citizen: CitizenshipStatus
uscis: String
passportNumber: String
countryIssue: String
prepartorOrTranslator: Boolean @default(expr: "false")
# both forms
signature:String
date: Timestamp
status: TaxFormStatus!
staffId: UUID!
formData: Any
createdAt: Timestamp @default(expr: "request.time")
updatedAt: Timestamp @default(expr: "request.time")