#[account]
pub struct WithdrawalAccount {
/// The vault this withdrawal is from
pub vault: Pubkey,
/// The depositor who owns this withdrawal
pub owner: Pubkey,
/// Type of withdrawal (Sol or Token)
pub withdrawal_type: WithdrawalType,
/// Original LP amount requested for withdrawal
pub lp_amount_requested: u64,
/// Remaining LP amount not yet filled
pub lp_amount_remaining: u64,
/// Token fills — each fill records a mint and amount
pub fills: Vec<WithdrawalTokenFill>,
/// Unix timestamp when the withdrawal was created
pub created_at: u32,
/// Unix timestamp when the withdrawal was last updated (filled)
pub updated_at: u32,
/// Reserved bytes for future use
pub reserved: [u8; 8],
}