feat: implement I-9 and W-4 tax form handling with dedicated use cases and mappers

This commit is contained in:
Achintha Isuru
2026-01-28 15:40:39 -05:00
parent ec8fca7ef9
commit 8040803f66
15 changed files with 355 additions and 205 deletions

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) {