### Persefone.jl - a model of agricultural landscapes and ecosystems in Europe.
###
### This file is responsible for managing the farm module(s).
###

"""
    Farmer

This is the agent type for the farm ABM. (Not yet implemented.)
"""
mutable struct Farmer <: ModelAgent
    #XXX make this into an abstract type and create subtypes for different
    # farm submodels? (#69)
    const id::Int64
    fields::Vector{FarmPlot}
    croprotation::Vector{ALMaSS.CropType}
    #TODO add AES
end

"""
    stepagent!(farmer, model)

Update a farmer by one day.
"""
function stepagent!(farmer::Farmer, model::SimulationModel)
    #TODO
end

"""
    initfarms!(model)

Initialise the model with a set of farm agents.
"""
function initfarms!(model::SimulationModel)
    #TODO
end