import 'package:flutter/cupertino.dart'; import 'package:test_sa/extensions/context_extension.dart'; class SearchAllRequestsModel { SearchByRequestNumberModel requestNumber; SearchByAssetNameModel assetName; SearchByAssetNoModel assetNo; SearchByManufactureModel manufacture; SearchBySNModel sn; SearchByRequestModel model; SearchAllRequestsBaseModel searchBySelectedValue; List statuses; List typeTransaction; DateTime startDate, endDate; SearchAllRequestsModel({ this.requestNumber, this.assetName, this.assetNo, this.manufacture, this.sn, this.model, this.statuses, this.typeTransaction, this.startDate, this.endDate, }); } abstract class SearchAllRequestsBaseModel { String label; String value; BuildContext context; TextInputType inputType; SearchAllRequestsBaseModel(this.context, {this.label, this.value, this.inputType = TextInputType.text}); } class SearchByRequestNumberModel extends SearchAllRequestsBaseModel { SearchByRequestNumberModel(BuildContext context, {String value}) : super(context, label: "${context.translation.requestNo}.", value: value); } class SearchByAssetNameModel extends SearchAllRequestsBaseModel { SearchByAssetNameModel(BuildContext context, {String value}) : super(context, label: context.translation.assetName, value: value); } class SearchByAssetNoModel extends SearchAllRequestsBaseModel { SearchByAssetNoModel(BuildContext context, {String value}) : super(context, label: context.translation.assetNo, value: value); } class SearchByManufactureModel extends SearchAllRequestsBaseModel { SearchByManufactureModel(BuildContext context, {String value}) : super(context, label: context.translation.manufacture, value: value); } class SearchBySNModel extends SearchAllRequestsBaseModel { SearchBySNModel(BuildContext context, {String value}) : super(context, label: context.translation.sn, value: value); } class SearchByRequestModel extends SearchAllRequestsBaseModel { SearchByRequestModel(BuildContext context, {String value}) : super(context, label: context.translation.model, value: value); }