import 'package:base_project/BuilderField/shared/fields/number_field.dart';
import 'package:base_project/BuilderField/shared/fields/password_field.dart';
import 'package:base_project/BuilderField/shared/fields/phone_field.dart';
import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart';

import '../../../../BuilderField/shared/fields/base_field.dart';

import '../../../../BuilderField/shared/fields/date_field.dart';
import '../../../../BuilderField/shared/fields/datetime_field.dart';
import '../../../../BuilderField/shared/fields/email_field.dart';
import 'package:base_project/BuilderField/shared/fields/url_field.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text;
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
import '../../../../BuilderField/shared/fields/calculated_field.dart';
import '../../../../BuilderField/shared/fields/one_to_many_field.dart';
import '../../../../BuilderField/shared/fields/value_list_picker_field.dart';
import '../../../../BuilderField/shared/fields/captcha_field.dart';
import '../../../../BuilderField/shared/fields/switch_field.dart';
import '../../../../BuilderField/shared/fields/url_field.dart';

import '../../../../BuilderField/shared/fields/audio_upload_field.dart';
import '../../../../BuilderField/shared/fields/checkbox_field.dart';
import '../../../../BuilderField/shared/fields/file_upload_field.dart';
import '../../../../BuilderField/shared/fields/image_upload_field.dart';
import '../../../../BuilderField/shared/fields/radio_field.dart';
import '../../../../BuilderField/shared/fields/video_upload_field.dart';

import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart';
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
import '../../../../BuilderField/shared/fields/data_grid_field.dart';
import '../../../../BuilderField/shared/fields/dropdown_field.dart';
import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart';
import '../../../../BuilderField/shared/fields/static_multiselect_field.dart';
import '../../../../BuilderField/shared/fields/currency_field.dart';
import '../../../../BuilderField/shared/fields/field_group_field.dart';
import '../../../../BuilderField/shared/fields/qr_code_field.dart';
import '../../../../BuilderField/shared/fields/barcode_field.dart';
import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart';
 import '../Dv2_viewModel/Dv2_view_model_screen.dart';/// Field definitions for Dv2 entity
/// This defines the structure and validation for Dv2 forms
class Dv2Fields {
  /// Get field definitions for Dv2 entity
  static List<BaseField> getFields(BuildContext context) {
    final viewModel =
        Provider.of<Dv2ViewModelScreen>(context, listen: false);
    return [
      // Basic Information
 FieldGroupField(
        fieldKey: 'address',
        label: 'Address',
        hint: 'Enter Address',
        subFields: [

 
          GroupSubField(path: 'test3', label: 'test3', isRequired: true),
 

 
          GroupSubField(path: 'name', label: 'name', isRequired: true),
 

 
          GroupSubField(path: 'last_name', label: 'last_name', isRequired: true),
 

          
        ],
      ),


CurrencyField(
        fieldKey: 'currency',
        label: 'Currency',
        hint: 'Enter Currency',
        isRequired: false,
        currencySymbol: 'â¹',
      ),


  QRCodeField(
        fieldKey: 'qrcode_field',
        label: 'QRCode Field',
        hint: 'Scan or enter QRCode Field',
        scanner: viewModel.scanQrqrcode_field,
      ),


 BarcodeField(
        fieldKey: 'barcode_field',
        label: 'BarCode Field',
        hint: 'Scan or enter BarCode Field',
        scanner: viewModel.scanBarbarcode_field,
      ),

 CustomTextField(
        fieldKey: 'static',
        label: 'Static',
        hint: 'Enter Static',
        isRequired: true,
        maxLength: 50,
      ),

    ];
  }
}
