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 '../Forma_viewModel/Forma_view_model_screen.dart';/// Field definitions for Forma entity
/// This defines the structure and validation for Forma forms
class FormaFields {
  /// Get field definitions for Forma entity
  static List<BaseField> getFields(BuildContext context) {
    final viewModel =
        Provider.of<FormaViewModelScreen>(context, listen: false);
    return [
      // Basic Information
 CustomTextField(
        fieldKey: 'name',
        label: 'Name',
        hint: 'Enter Name',
        isRequired: true,
        maxLength: 50,
      ),

CustomTextField(
        fieldKey: 'description',
        label: 'Description',
        hint: 'Enter Description',
        isRequired: false,
        maxLength: 1000,
      ),

  // Number Fields
      NumberField(
        fieldKey: 'number_field',
        label: 'Number Field',
        hint: 'Enter Number Field',
        isRequired: false,
        min: 0,
        decimalPlaces: 0,
      ),

 PhoneField(
        fieldKey: 'phone_numberb',
        label: 'Phone Numberb',
        hint: 'Enter Phone Numberb',
        isRequired: false,
        countryCode: '+91',
      ),

CustomTextField(
        fieldKey: 'paragraph_field',
        label: 'Paragraph Field',
        hint: 'Enter Paragraph Field',
        isRequired: false,
        maxLength: 500,
      ),


      // Password Fields (dynamic names supported via fieldKey)
      PasswordField(
        fieldKey: 'password_field',
        label: 'Password Field',
        hint: 'Enter Password Field',
        isRequired: false,
        maxLength: 50,
        groupId: 'p1',
      ),
      PasswordField(
        fieldKey: 'confirm+password_field',
        label: 'Confirm Password Field',
        hint: 'Confirm Password Field',
        isRequired: false,
        maxLength: 50,
        groupId: 'p1',
        isConfirm: true,
      ),

CustomTextField(
        fieldKey: 'textarea_field',
        label: 'Textarea Field',
        hint: 'Enter Textarea Field',
        isRequired: false,
        maxLength: 1000,
      ),

 DateField(
        fieldKey: 'date_field',
        label: 'Date Field',
        hint: 'Select Date Field',
        isRequired: false,
      ),


DateTimeField(
        fieldKey: 'datetime_field',
        label: 'Datetime Field',
        hint: 'Select Datetime Field',
        isRequired: false,
      ),

EmailField(
        fieldKey: 'email_field',
        label: 'Email Field',
        hint: 'Enter Email Field',
        isRequired: false,
      ),

    ];
  }
}
