# targets:
#   $default:
#     builders:
#       injectable_generator:injectable_builder:
#         options:
#           auto_register: true
#           # auto registers any class with a name matches the given pattern
#           class_name_pattern:
#             "Service$|Repository$|Bloc$|UseCases$"
#             # auto registers any class inside a file with a
#           # name matches the given pattern
#           #file_name_pattern: "_service$|_repository$|_bloc$"
targets:
  $default:
    sources:
      - lib/**
      - swaggers/**
      - swaggers2/**
      - swagger_examples/**
      - $package$
    builders:
      # copy_with_extension_gen:
      #   enabled: true
      #   options:
      #     copy_with_null: true # default is false
      #     # skip_fields: true    
      injectable_generator:injectable_builder:
        options:
          auto_register: true
          # auto registers any class with a name matches the given pattern
          class_name_pattern:
            "Service$|Bloc$|UseCases$"
            # auto registers any class inside a file with a
          # name matches the given pattern
          #file_name_pattern: "_service$|_repository$|_bloc$"
      swagger_dart_code_generator:
        options:
          input_folder: "lib/features/repositories/"
          output_folder: "lib/features/repositories/"
          use_inheritance: false
          with_converter: true
          use_default_null_for_lists: false
          build_only_models: false
          separate_models: true
          enums_case_sensitive: false
          ignore_headers: true
          use_required_attribute_for_headers: false
          include_if_null: true
          default_api_version: '1.0'
          url_parterns:
            # - "/public/"
          custom_api_version:
            - version: "2.0"
              urls: "/api/exam/v{version}/public/ExamPackage/GetList,/api/exam/v{version}/public/ExamPackage/GetListIsBuy,/api/exam/v{version}/public/Competition/GetAllCompetitionForDashBoard,/api/exam/v{version}/public/HomePage/GetData,/api/exam/v{version}/public/Exam/GetCategoryCountExam,/api/exam/v{version}/public/HomePage/GetListDataView"
          exclude_params:
            - "block"
            - "blockId"
            - "version"
          include_paths:
          exclude_paths:
            - "/api/v1/captcha/refresh/refresh"
            - "/api/v1/captcha/show/show"
            - "/weatherforecast/get"
          response_override_value_map:
          request_override_value_map:
            - url: "/api/v1/account/login"
              method: post
              param_name: "body"
              overridden_value: "LoginDto"
            - url: "/api/v1/account/login"
              method: post
              param_name: "multipart"
              overridden_value: "true"
          # default_header_values_map:
          #   - header_name: "X-Entitlements-Token"
          #     default_value: "X-Entitlements-Token"
          #   - header_name: "X-Cus"
          #     default_value: "X-Cus"
            # - url: "/api/system/v1.0/public/Notify/GetList"
            #   method: get
            #   param_name: ""
            #   overridden_value: "NotifyGetListRequestModel"
              
          custom_model_path:
            - 'package:baseproject/features/model/index.dart'
            # - 'package:eschool/core/model/index.dart'
          # default_values_map:
          #   - type_name: String
          #     default_value: ""
          #   - type_name: int
          #     default_value: '0'
          #   - type_name: double
          #     default_value: '0'
          #   - type_name: bool
          #     default_value: 'false'
      
