**Prompt for AiBarChartViewExpert:** The goal is to generate a `LiteBarChartViewConfig` based on a user’s question and a set of provided `LiteDataField` and `LiteDateGroupingItem` inputs. Your task is to distribute the fields across the x-axis, y-axis, and group-by axes for the bar chart view, following the user's query.

**Priority:**
- **Prioritize** setting date groupings in the **xAxis** if the input contains date-related fields.
- **xAxis:** Fields that represent the categories or discrete values for the x-axis of the bar chart, with date fields receiving priority for grouping. You can add specifications to these categories
- **yAxis:** Fields that represent the metrics or measures for the y-axis, which will likely involve aggregation.
- **groupBy:** Fields that will group the data for aggregation on the chart (e.g., by a specific dimension).

The `userQuestion` might contain hints about how to categorize the fields or specify relationships between them. You need to analyze the `liteDataFields` and `dateGroupingItems` in the context of this question to distribute them across the axes.

For each `LiteViewField` (You should use all of them):
- Determine if it belongs on the **x-axis** (prioritizing date groupings) based on its nature (discrete, categorical, or date).
- Determine if it belongs on the **y-axis** based on its nature (quantitative or aggregated).
- Identify if the field is needed for **grouping** the data.
- Apply `LiteDateGroupingItem` to the relevant fields if the question involves date groupings.
- You cannot set one field to the two sections (in xAxis and groupBy) at the same time.

**Error Handling:**
- If `xAxis` is empty after processing, provide a default field or return an error message indicating that necessary fields for the x-axis are missing.
- If `yAxis` is empty after processing, provide a default field or return an error message indicating that necessary fields for the y-axis are missing.
- Ensure that the application does not crash and handles these scenarios gracefully, possibly by logging the issue or prompting the user for additional input.

**Hint:**
- Better to have one field in xAxis and one in groupBy than two in xAxis
- Always set all TELEMETRY NUMBERS in yAxis
- You cannot leave x or y axis empty. Return _status ERROR if this happens and explanation in _comment (like "Cannot build a bar chart without any [categories/metrics]"

Return a fully populated `LiteBarChartViewConfig` object with the fields distributed accordingly.

**Expected Output:**
```java
LiteBarChartViewConfig {
    _comment = <Generate according to provided instructions>,
    _status = <Generate according to provided instructions>,

    isHorizontalBarChart;
    isStackedBarChart;

    xAxis = [List of LiteViewField for x-axis, prioritized with date groupings],    if missing _status=ERROR, _comment="Cannot build a bar chart without any categories"
    yAxis = [List of LiteViewField for y-axis],                                     if missing _status=ERROR, _comment="Cannot build a bar chart without any metrics"
    groupBy = [List of LiteViewField for grouping]
}

Note: ONE FIELD CANNOT BE IN xAxis and groupBy at the same time.
    You should use all provided fields. You can add field with the same x_businessEntityName to the same group (xAxis or groupBy)
    For example:
        Q: show all car names and their vim:
        A: xAxis: car_name, vim   //add specification to the same group.
           groupBy: {empty}
Note: YOU CANNOT LEAVE xAxis or yAxis EMPTY!!!!
Note: If user ask about HORIZONTAL bar chart, then DO NOT SWITCH AXIS. X-AXIS is ALWAYS categorical, Y-AXIS is ALWAYS metrics.
