// @generated
// This file is @generated by prost-build.
/// 주문 방향
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum OrderSide {
    Unspecified = 0,
    /// 매수
    Bid = 1,
    /// 매도
    Ask = 2,
}
impl OrderSide {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            OrderSide::Unspecified => "ORDER_SIDE_UNSPECIFIED",
            OrderSide::Bid => "ORDER_SIDE_BID",
            OrderSide::Ask => "ORDER_SIDE_ASK",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "ORDER_SIDE_UNSPECIFIED" => Some(Self::Unspecified),
            "ORDER_SIDE_BID" => Some(Self::Bid),
            "ORDER_SIDE_ASK" => Some(Self::Ask),
            _ => None,
        }
    }
}
/// 시장 유형
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MarketType {
    Unspecified = 0,
    /// KOSPI
    Kospi = 1,
    /// KOSDAQ
    Kosdaq = 2,
    /// 파생상품
    Derivative = 3,
}
impl MarketType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            MarketType::Unspecified => "MARKET_TYPE_UNSPECIFIED",
            MarketType::Kospi => "MARKET_TYPE_KOSPI",
            MarketType::Kosdaq => "MARKET_TYPE_KOSDAQ",
            MarketType::Derivative => "MARKET_TYPE_DERIVATIVE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "MARKET_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
            "MARKET_TYPE_KOSPI" => Some(Self::Kospi),
            "MARKET_TYPE_KOSDAQ" => Some(Self::Kosdaq),
            "MARKET_TYPE_DERIVATIVE" => Some(Self::Derivative),
            _ => None,
        }
    }
}
/// 상품 타입
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ProductType {
    Unspecified = 0,
    Stock = 1,
    Futures = 2,
    Etf = 3,
    Cash = 4,
}
impl ProductType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            ProductType::Unspecified => "PRODUCT_TYPE_UNSPECIFIED",
            ProductType::Stock => "PRODUCT_TYPE_STOCK",
            ProductType::Futures => "PRODUCT_TYPE_FUTURES",
            ProductType::Etf => "PRODUCT_TYPE_ETF",
            ProductType::Cash => "PRODUCT_TYPE_CASH",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "PRODUCT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
            "PRODUCT_TYPE_STOCK" => Some(Self::Stock),
            "PRODUCT_TYPE_FUTURES" => Some(Self::Futures),
            "PRODUCT_TYPE_ETF" => Some(Self::Etf),
            "PRODUCT_TYPE_CASH" => Some(Self::Cash),
            _ => None,
        }
    }
}
/// 거래 세션 타입
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TradingSession {
    Unspecified = 0,
    /// 장 시작 전
    PreMarket = 1,
    /// 시가 동시호가 (08:30 ~ 09:00)
    OpeningAuction = 2,
    /// 장중 (09:00 ~ 15:20)
    Regular = 3,
    /// 종가 동시호가 (15:20 ~ 15:30)
    ClosingAuction = 4,
    /// 장 종료
    Closed = 5,
}
impl TradingSession {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            TradingSession::Unspecified => "TRADING_SESSION_UNSPECIFIED",
            TradingSession::PreMarket => "TRADING_SESSION_PRE_MARKET",
            TradingSession::OpeningAuction => "TRADING_SESSION_OPENING_AUCTION",
            TradingSession::Regular => "TRADING_SESSION_REGULAR",
            TradingSession::ClosingAuction => "TRADING_SESSION_CLOSING_AUCTION",
            TradingSession::Closed => "TRADING_SESSION_CLOSED",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "TRADING_SESSION_UNSPECIFIED" => Some(Self::Unspecified),
            "TRADING_SESSION_PRE_MARKET" => Some(Self::PreMarket),
            "TRADING_SESSION_OPENING_AUCTION" => Some(Self::OpeningAuction),
            "TRADING_SESSION_REGULAR" => Some(Self::Regular),
            "TRADING_SESSION_CLOSING_AUCTION" => Some(Self::ClosingAuction),
            "TRADING_SESSION_CLOSED" => Some(Self::Closed),
            _ => None,
        }
    }
}
/// 자동정정 전략 유형
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AmendMethodType {
    /// 미지정 (기본값: TIMED_MARKET으로 처리)
    Unspecified = 0,
    /// 적극적 정정: 반대편 잔량 비율이 임계값 이상이면 즉시 체결 시도
    Aggressive = 1,
    /// 회피적 정정: tick_offset 만큼 가격을 조정하여 미체결 유지
    Evasive = 2,
    /// 최우선 호가: 상대방 최우선 호가로 정정
    BestPrice = 3,
    /// 손절 정정: tick_threshold 이상 불리해지면 시장가로 전환
    StopLoss = 4,
    /// 시간 제한 시장가: timeout 후 시장가로 전환
    TimedMarket = 5,
}
impl AmendMethodType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            AmendMethodType::Unspecified => "AMEND_METHOD_TYPE_UNSPECIFIED",
            AmendMethodType::Aggressive => "AMEND_METHOD_TYPE_AGGRESSIVE",
            AmendMethodType::Evasive => "AMEND_METHOD_TYPE_EVASIVE",
            AmendMethodType::BestPrice => "AMEND_METHOD_TYPE_BEST_PRICE",
            AmendMethodType::StopLoss => "AMEND_METHOD_TYPE_STOP_LOSS",
            AmendMethodType::TimedMarket => "AMEND_METHOD_TYPE_TIMED_MARKET",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "AMEND_METHOD_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
            "AMEND_METHOD_TYPE_AGGRESSIVE" => Some(Self::Aggressive),
            "AMEND_METHOD_TYPE_EVASIVE" => Some(Self::Evasive),
            "AMEND_METHOD_TYPE_BEST_PRICE" => Some(Self::BestPrice),
            "AMEND_METHOD_TYPE_STOP_LOSS" => Some(Self::StopLoss),
            "AMEND_METHOD_TYPE_TIMED_MARKET" => Some(Self::TimedMarket),
            _ => None,
        }
    }
}
include!("kdo.v1.common.serde.rs");
// @@protoc_insertion_point(module)