use crate::types::Field;
use crate::types::Target;
use carbon_core::borsh;
use solana_pubkey::Pubkey;
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, borsh::BorshSerialize, borsh::BorshDeserialize, PartialEq, Eq, Hash)]
pub struct TakeEvent {
pub taker: Pubkey,
pub bid_id: Option<Pubkey>,
pub target: Target,
pub target_id: Pubkey,
pub field: Option<Field>,
pub field_id: Option<Pubkey>,
pub amount: u64,
pub quantity: u32,
pub tcomp_fee: u64,
pub taker_broker_fee: u64,
pub maker_broker_fee: u64,
pub creator_fee: u64,
pub currency: Option<Pubkey>,
pub asset_id: Option<Pubkey>,
}