use cosmwasm_schema::cw_serde;
use cosmwasm_std::{Addr, Uint128};
use croncat_sdk_manager::types::TaskBalance;
use cw_storage_plus::{Item, Map};
pub use croncat_sdk_manager::types::Config;
use croncat_sdk_tasks::types::TaskExecutionInfo;
pub const CONFIG: Item<Config> = Item::new("config");
pub const PAUSED: Item<bool> = Item::new("paused");
pub const TREASURY_BALANCE: Item<Uint128> = Item::new("treasury_balance");
pub const AGENT_REWARDS: Map<&Addr, Uint128> = Map::new("agent_rewards");
pub const TEMP_BALANCES_CW20: Map<(&Addr, &Addr), Uint128> = Map::new("temp_balances_cw20");
pub const TASKS_BALANCES: Map<&[u8], TaskBalance> = Map::new("tasks_balances");
pub const REPLY_QUEUE: Item<QueueItem> = Item::new("reply_queue");
pub const LAST_TASK_EXECUTION_INFO: Item<TaskExecutionInfo> =
croncat_sdk_manager::state::LAST_TASK_EXECUTION_INFO;
#[cw_serde]
pub struct QueueItem {
pub task: croncat_sdk_tasks::types::TaskInfo,
pub agent_addr: Addr,
pub failures: Vec<(u8, String)>,
}