I am trying to make a simulation of bike system in Julia:
mutable struct BikeStation
    id::Int
    num_bikes::Int
    incoming_trips::Array{Int, 1}
    outgoing_trips::Array{Int, 1}
end

function create_bike_stations(n::Int, bikes_per_station::Int)
    stations = [BikeStation(i, bikes_per_station, Int[], Int[]) for i in 1:n]
    return stations
end

function take_bike(from_station::Int, to_station::Int, bike_stations::Array{BikeStation, 1})
    from = bike_stations[from_station]
    to = bike_stations[to_station]

    updated_from = BikeStation(from.id, from.num_bikes - 1, from.incoming_trips, push!(from.outgoing_trips, to.id))
    updated_to = BikeStation(to.id, to.num_bikes + 1, push!(to.incoming_trips, from.id), to.outgoing_trips)

    bike_stations[from_station] = updated_from
    bike_stations[to_station] = updated_to
end

function simulate_demand(bike_stations::Array{BikeStation, 1}, time_steps::Int, demand_factor_range::Tuple{Float64, Float64})
    for _ in 1:time_steps
        for station in bike_stations
            demand_factor = rand(demand_factor_range)
            demand = round(Int, station.num_bikes * demand_factor)
            for _ in 1:demand
                to = rand(1:length(bike_stations))
                if station.num_bikes > 0 && to != station.id
                    take_bike(station.id, to, bike_stations)
                end
            end
        end
    end
end

function print_station_info(bike_stations::Array{BikeStation, 1})
    for station in bike_stations
        println("Station ", station.id, " has ", station.num_bikes,
                " bikes, with ", length(station.outgoing_trips),
                " bikes in transit to other stations.")
    end
end

bike_stations = create_bike_stations(5, 20)
time_steps = 4000
demand_factor_range = (0.05, 0.2)

simulate_demand(bike_stations, time_steps, demand_factor_range)
print_station_info(bike_stations)


but it has many flows, for example output looks like that:
Station 1 has 25 bikes, with 8383 bikes in transit to other stations.
Station 2 has 20 bikes, with 8312 bikes in transit to other stations.
Station 3 has 23 bikes, with 8401 bikes in transit to other stations.
Station 4 has 14 bikes, with 8315 bikes in transit to other stations.
Station 5 has 18 bikes, with 8366 bikes in transit to other stations.
Those resluts make no sense because the sum of bikes at station and currently in travel should be equal to 100.

I need toknow how many bikes were on the station at any time moment, whether the demand was reported if the station had no bikes and the whole logs. 