```json
{
  "sym_variables": [
    ("x0", "rotisserie chickens"),
    ("x1", "apples")
  ],
  "objective_function": "8.8 * x0 + 7.52 * x1",
  "constraints": [
    "1*x0 + 12*x1 >= 11",
    "4*x0 + 10*x1 >= 11",
    "10*x0 - 6*x1 >= 0",
    "1*x0 + 12*x1 <= 43",
    "4*x0 + 10*x1 <= 55"
  ]
}
```

```python
import gurobipy as gp
from gurobipy import GRB

# Create a new model
m = gp.Model("minimize_cost")

# Create variables
rotisserie_chickens = m.addVar(vtype=GRB.INTEGER, name="rotisserie_chickens")
apples = m.addVar(vtype=GRB.CONTINUOUS, name="apples")

# Set objective function
m.setObjective(8.8 * rotisserie_chickens + 7.52 * apples, GRB.MINIMIZE)

# Add constraints
m.addConstr(1 * rotisserie_chickens + 12 * apples >= 11, "fat_constraint")
m.addConstr(4 * rotisserie_chickens + 10 * apples >= 11, "cost_constraint_min")
m.addConstr(10 * rotisserie_chickens - 6 * apples >= 0, "chicken_apple_ratio")
m.addConstr(1 * rotisserie_chickens + 12 * apples <= 43, "fat_constraint_upper")
m.addConstr(4 * rotisserie_chickens + 10 * apples <= 55, "cost_constraint_max")


# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print(f"Optimal objective value: {m.objVal}")
    print(f"Rotisserie Chickens: {rotisserie_chickens.x}")
    print(f"Apples: {apples.x}")
elif m.status == GRB.INFEASIBLE:
    print("The model is infeasible.")
else:
    print(f"Optimization ended with status {m.status}")

```
