use cosmwasm_schema::cw_serde;
use cosmwasm_std::Coin;
use terp721::{CollectionInfo, ResidualInfoResponse};
#[cw_serde]
pub struct CreateMinterMsg<T> {
pub init_msg: T,
pub collection_params: CollectionParams,
}
#[cw_serde]
pub struct CollectionParams {
pub code_id: u64,
pub name: String,
pub symbol: String,
pub info: CollectionInfo<ResidualInfoResponse>,
}
#[cw_serde]
pub struct UpdateMinterParamsMsg<T> {
pub code_id: Option<u64>,
pub add_terp721_code_ids: Option<Vec<u64>>,
pub rm_terp721_code_ids: Option<Vec<u64>>,
pub frozen: Option<bool>,
pub creation_fee: Option<Coin>,
pub min_mint_price: Option<Coin>,
pub mint_fee_bps: Option<u64>,
pub max_trading_offset_secs: Option<u64>,
pub extension: T,
}
#[cw_serde]
pub enum FactoryUtilsExecuteMsg<T> {
CreateMinter(CreateMinterMsg<T>),
}