// @generated
// This file is @generated by prost-build.
// ============================================================================
// Messages
// ============================================================================

/// MM 심볼 정보
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMaking {
    /// ISIN 심볼
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    /// 현재 상태
    #[prost(enumeration="MarketMakingState", tag="2")]
    pub state: i32,
    /// MM 설정
    #[prost(message, optional, tag="3")]
    pub config: ::core::option::Option<MarketMakingConfiguration>,
    /// 펀드 코드
    #[prost(string, tag="4")]
    pub fund_code: ::prost::alloc::string::String,
    /// ETF tick size (Price internal representation)
    #[prost(int64, tag="5")]
    pub tick_size: i64,
}
/// MM 엔진 설정 (MmConfig 대응)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMakingConfiguration {
    /// MM 활성화 여부
    #[prost(bool, tag="1")]
    pub enabled: bool,
    /// NAV pricing 상세 설정 (pricing = "nav" 일 때 사용)
    #[prost(message, optional, tag="2")]
    pub pricing: ::core::option::Option<MarketMakingPricing>,
    /// Trade Analyzer 설정
    #[prost(message, optional, tag="3")]
    pub trade_analyzer: ::core::option::Option<MarketMakingTradeAnalyzer>,
    /// MarketBias 설정 (장기 시장 체결 누적 → 영구 skew)
    #[prost(message, optional, tag="4")]
    pub market_bias: ::core::option::Option<MarketMakingMarketBias>,
    /// Momentum 설정 (단기 시장 체결 비율/강도 → 즉각 bid/ask 동일 shift)
    #[prost(message, optional, tag="5")]
    pub momentum: ::core::option::Option<MarketMakingMomentum>,
    /// 통합 포지션 관리 설정
    #[prost(message, optional, tag="6")]
    pub exposure_balancer: ::core::option::Option<MarketMakingExposureBalancer>,
    /// 레벨당 매수 수량
    #[prost(int64, tag="9")]
    pub bid_quantity: i64,
    /// 레벨당 매도 수량
    #[prost(int64, tag="10")]
    pub ask_quantity: i64,
    /// NAV+adj 기준가 대비 bid 추가 gap (Price internal representation)
    #[prost(int64, tag="13")]
    pub bid_offset: i64,
    /// NAV+adj 기준가 대비 ask 추가 gap (Price internal representation)
    #[prost(int64, tag="14")]
    pub ask_offset: i64,
    /// 단일 basis (bid_basis/ask_basis 통합 후속, Price internal representation)
    #[prost(int64, tag="15")]
    pub basis: i64,
    /// 호가 반폭 (틱 수). bid = mid - half, ask = mid + half
    #[prost(int32, tag="16")]
    pub base_half_ticks: i32,
}
/// NAV pricing 상세 설정
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMakingPricing {
    /// EtfPricing 전략 (oneof)
    #[prost(oneof="market_making_pricing::Pricing", tags="1, 2, 3, 4")]
    pub pricing: ::core::option::Option<market_making_pricing::Pricing>,
}
/// Nested message and enum types in `MarketMakingPricing`.
pub mod market_making_pricing {
    /// EtfPricing 전략 (oneof)
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Pricing {
        /// PDF 기반 nav 계산 및 헷지 프라이싱
        #[prost(message, tag="1")]
        PlainFollow(super::PlainFollow),
        /// 지수 추종 헷지 프라이싱
        #[prost(message, tag="2")]
        MeanBidAsk(super::MeanBidAsk),
        /// 선물 베이시스 기반 프라이싱
        #[prost(message, tag="3")]
        Nav(super::Nav),
        /// 레버리지 선물 기반 프라이싱
        #[prost(message, tag="4")]
        KrxNav(super::KrxNav),
    }
}
/// EtfPricing::PdfNavHedge
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PlainFollow {
}
/// EtfPricing::IndexTrackingHedge
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MeanBidAsk {
}
/// EtfPricing::FutureBasis { prev_index }
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Nav {
    /// 이전 지수 (Price internal representation)
    #[prost(message, optional, tag="1")]
    pub etf_pricing: ::core::option::Option<super::common::EtfPricing>,
}
/// EtfPricing::LeverageFuture { prev_index, prev_future }
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct KrxNav {
    /// 이전 지수 (Price internal representation)
    #[prost(int64, tag="1")]
    pub prev_index: i64,
    /// 이전 선물 (Price internal representation)
    #[prost(int64, tag="2")]
    pub prev_future: i64,
}
/// Trade Analyzer 설정 (갤럭티코 SingleTradeAnalyzer 포팅 — 시장 체결 추종)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketMakingTradeAnalyzer {
    /// 활성화 여부
    #[prost(bool, tag="1")]
    pub enabled: bool,
    /// 매 체결마다 net/total 에 곱하는 감쇠 비율 (갤럭티코 기본 0.98)
    #[prost(double, tag="2")]
    pub count_decay_ratio: f64,
    /// 시간 감쇠 주기 (초). 0 = 비활성 (갤럭티코 기본 10)
    #[prost(uint64, tag="3")]
    pub decay_interval_secs: u64,
    /// 시간 주기마다 total 에 곱하는 비율 (갤럭티코 기본 0.95)
    #[prost(double, tag="4")]
    pub total_decay_ratio: f64,
    /// 시간 주기마다 net 에 곱하는 비율 (갤럭티코 기본 0.9). total_decay_ratio 보다 작아야 방향성이 먼저 사라짐.
    #[prost(double, tag="5")]
    pub net_decay_ratio: f64,
    /// strength 분모 최소치 (기본 100)
    #[prost(int64, tag="6")]
    pub min_book_qty: i64,
}
/// Momentum 설정 (갤럭티코 DecoByTrade 포팅 — ratio/strength 기반 양쪽 동일 shift)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketMakingMomentum {
    /// 활성화 여부
    #[prost(bool, tag="1")]
    pub enabled: bool,
    /// 인버스 ETF: ratio 부호 반전
    #[prost(bool, tag="2")]
    pub is_opposite: bool,
    /// 최대 shift (tick 단위, 갤럭티코 pInfo.p1/100 등가)
    #[prost(double, tag="3")]
    pub max_tick: f64,
    /// ratio 발동 임계 ∈ [0, 1) (갤럭티코 pInfo.p2/100)
    #[prost(double, tag="4")]
    pub ratio_threshold: f64,
    /// strength 발동 임계 ∈ [0, 1) (갤럭티코 pInfo.p3/100)
    #[prost(double, tag="5")]
    pub strength_threshold: f64,
}
/// MarketBias 설정 (갤럭티코 DecoByTradeAcc 포팅 — 장기 누적 영구 skew)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketMakingMarketBias {
    /// 활성화 여부
    #[prost(bool, tag="1")]
    pub enabled: bool,
    /// 주기 평가 간격 (초, 갤럭티코 accNextUpdateSec 기본 60)
    #[prost(uint64, tag="2")]
    pub eval_interval_secs: u64,
    /// ratio 발동 임계 (기본 0.6)
    #[prost(double, tag="3")]
    pub ratio_threshold: f64,
    /// strength 발동 임계 (기본 0.5)
    #[prost(double, tag="4")]
    pub strength_threshold: f64,
    /// 점수 임계 0~100 (기본 5). 이 위를 통과해야 한 단계 가산.
    #[prost(int32, tag="5")]
    pub bias_huddle: i32,
    /// 1 단계 가산량 (가격 단위, Price internal representation)
    #[prost(int64, tag="6")]
    pub bias_unit: i64,
    /// 누적 상한 절댓값 (가격 단위, Price internal representation)
    #[prost(int64, tag="7")]
    pub max_bias: i64,
}
/// 통합 포지션 관리 설정 (soft rebalance + hard limit)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketMakingExposureBalancer {
    /// 활성화 여부
    #[prost(bool, tag="1")]
    pub enabled: bool,
    /// soft zone: 이 배수부터 soft rebalance 발동
    #[prost(int32, tag="2")]
    pub trigger_multiple: i32,
    /// 단계당 가격 중심 이동 틱 수
    #[prost(int32, tag="3")]
    pub price_skew_ticks: i32,
    /// hard zone: 이 배수에서 같은 방향 수량 0 (구 hard_limit_max 대체)
    #[prost(int32, tag="4")]
    pub limit_multiple: i32,
    /// opportunistic close 기능 활성화 여부
    #[prost(bool, tag="5")]
    pub opportunistic_enabled: bool,
}
// ============================================================================
// Request/Response Messages
// ============================================================================

/// ListMarketMaking
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListMarketMakingRequest {
    /// 페이지 크기 (optional)
    #[prost(uint32, optional, tag="1")]
    pub page_size: ::core::option::Option<u32>,
    /// 페이지 토큰 (optional)
    #[prost(string, optional, tag="2")]
    pub page_token: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListMarketMakingResponse {
    /// 등록된 MM 목록
    #[prost(message, repeated, tag="1")]
    pub entries: ::prost::alloc::vec::Vec<MarketMaking>,
    /// 다음 페이지 토큰
    #[prost(string, tag="2")]
    pub next_page_token: ::prost::alloc::string::String,
}
/// GetMarketMaking
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMarketMakingRequest {
    /// ISIN 심볼
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
}
/// GetMarketMakingStatus
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMarketMakingStatusRequest {
    /// ISIN 심볼
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
}
/// StartMarketMaking
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartMarketMakingRequest {
    /// ISIN 심볼
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    /// MM 설정 오버라이드 (optional, 없으면 기본 설정 사용)
    #[prost(message, optional, tag="2")]
    pub config: ::core::option::Option<MarketMakingConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartMarketMakingResponse {
    /// 시작된 MM 상태
    #[prost(enumeration="MarketMakingState", tag="1")]
    pub state: i32,
    /// 메시지
    #[prost(string, tag="2")]
    pub message: ::prost::alloc::string::String,
}
/// StopMarketMaking
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopMarketMakingRequest {
    /// ISIN 심볼
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopMarketMakingResponse {
    /// 메시지
    #[prost(string, tag="1")]
    pub message: ::prost::alloc::string::String,
}
/// ResetMarketMaking
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetMarketMakingRequest {
    /// ISIN 심볼 (빈 문자열이면 전체 리셋)
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetMarketMakingResponse {
    /// 리셋된 심볼 수
    #[prost(int32, tag="1")]
    pub reset_count: i32,
    /// 메시지
    #[prost(string, tag="2")]
    pub message: ::prost::alloc::string::String,
}
/// UpdateMarketMakingConfig
/// NOTE: config 내 pricing, fund_code, tick_size, depth 필드는 이 요청으로 변경할 수 없습니다.
/// 해당 필드들은 서버에서 무시됩니다.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateMarketMakingConfigRequest {
    /// ISIN 심볼
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    /// 업데이트할 설정 (전체 교체)
    /// pricing, fund_code, tick_size, depth 필드는 read-only이며 무시됩니다.
    #[prost(message, optional, tag="2")]
    pub config: ::core::option::Option<MarketMakingConfiguration>,
}
/// StreamMarketMakingStatus
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamMarketMakingStatusRequest {
    /// ISIN 심볼 (빈 문자열이면 전체 스트리밍)
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
}
/// UpdateMarketMaking
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateMarketMakingRequest {
    /// ISIN 심볼
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    /// 업데이트할 MM 설정
    #[prost(message, optional, tag="2")]
    pub config: ::core::option::Option<MarketMakingConfiguration>,
}
/// GetMarketMakingOrderbook / StreamMarketMakingOrderbook
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMarketMakingOrderbookRequest {
    /// ISIN 심볼
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
}
/// MM 전용 주문장 데이터
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMakingOrderbookData {
    /// 매수 호가 목록 (string 표현)
    #[prost(string, repeated, tag="1")]
    pub bid_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    /// 매도 호가 목록 (string 표현)
    #[prost(string, repeated, tag="2")]
    pub ask_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    /// 매수 수량 목록
    #[prost(int64, repeated, tag="3")]
    pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
    /// 매도 수량 목록
    #[prost(int64, repeated, tag="4")]
    pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
}
// ============================================================================
// MM 엔진 런타임 상태
// ============================================================================

/// Momentum 런타임 상태
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MomentumState {
    /// 현재 모멘텀 방향 ("none" / "up" / "down")
    #[prost(string, tag="1")]
    pub direction: ::prost::alloc::string::String,
    /// 현재 bid 가격 조정값 (Price internal representation)
    #[prost(int64, tag="2")]
    pub bid_adjustment: i64,
    /// 현재 ask 가격 조정값 (Price internal representation)
    #[prost(int64, tag="3")]
    pub ask_adjustment: i64,
    /// 원시 틱 변화량 (부호 포함, 모니터링용)
    #[prost(double, tag="4")]
    pub raw_ticks: f64,
}
/// Trade Analyzer 런타임 상태 (갤럭티코 SingleTradeAnalyzer 포팅)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TradeAnalyzerState {
    /// 매수/매도 누적 비율 ∈ \[-1, +1\]. 매수 우세 +.
    #[prost(double, tag="1")]
    pub ratio: f64,
    /// 체결 강도 ∈ \[0, 1\]. ratio 방향 가중 호가창 잔량 대비 누적 체결량.
    #[prost(double, tag="2")]
    pub strength: f64,
    /// 부호 있는 누적 체결량 (매수 우세 +)
    #[prost(int64, tag="3")]
    pub net_amount: i64,
    /// 절댓값 누적 체결량
    #[prost(int64, tag="4")]
    pub total_amount: i64,
    /// 5단 호가 평균 매수 잔량
    #[prost(double, tag="5")]
    pub avg_bid_qty: f64,
    /// 5단 호가 평균 매도 잔량
    #[prost(double, tag="6")]
    pub avg_ask_qty: f64,
    /// 마지막 시장 체결 시각 (일중 마이크로초). 체결 없으면 absent.
    #[prost(int64, optional, tag="7")]
    pub last_trade_at_us: ::core::option::Option<i64>,
    /// 누적 시장 체결 건수
    #[prost(int64, tag="8")]
    pub trade_count: i64,
}
/// MarketBias 런타임 상태 (갤럭티코 DecoByTradeAcc 포팅)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketBiasState {
    /// 누적 영구 편향 (가격 단위, Price internal representation)
    #[prost(int64, tag="1")]
    pub accumulated_bias: i64,
    /// 마지막 평가 점수 (0~100)
    #[prost(int32, tag="2")]
    pub last_score: i32,
    /// 누적 평가 횟수
    #[prost(int64, tag="3")]
    pub eval_count: i64,
}
/// 순노출 및 재고 균형 런타임 상태 (ExposureGuard + InventoryBalancer 통합)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ExposureBalancerState {
    /// 현재 순노출 수량
    #[prost(int64, tag="1")]
    pub net_exposure: i64,
    /// 현재 가격 중심 이동 틱 수
    #[prost(int32, tag="2")]
    pub price_shift_ticks: i32,
    /// 현재 bid 수량 스케일 (0.0 ~ 1.0)
    #[prost(double, tag="3")]
    pub bid_scale: f64,
    /// 현재 ask 수량 스케일 (0.0 ~ 1.0)
    #[prost(double, tag="4")]
    pub ask_scale: f64,
}
/// MM 엔진 런타임 상태 델타 메시지.
/// 스트리밍 시 set된 필드만 변경분을 의미하며, 변경이 없는 필드는 생략된다.
/// symbol은 항상 포함된다.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MmStateUpdate {
    /// ISIN 심볼 (항상 포함)
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    /// MM 상태 (변경 시에만 포함)
    #[prost(enumeration="MarketMakingState", optional, tag="2")]
    pub state: ::core::option::Option<i32>,
    /// Momentum 상태 (변경 시에만 포함)
    #[prost(message, optional, tag="3")]
    pub momentum: ::core::option::Option<MomentumState>,
    /// Trade Analyzer 상태 (변경 시에만 포함)
    #[prost(message, optional, tag="4")]
    pub trade_analyzer: ::core::option::Option<TradeAnalyzerState>,
    /// 순노출 및 재고 균형 상태 (변경 시에만 포함)
    #[prost(message, optional, tag="5")]
    pub exposure_balancer: ::core::option::Option<ExposureBalancerState>,
    /// MarketBias 상태 (변경 시에만 포함)
    #[prost(message, optional, tag="6")]
    pub market_bias: ::core::option::Option<MarketBiasState>,
    /// 현재 MM 매도 호가 (변경 시에만 포함, None이면 생략)
    #[prost(string, optional, tag="7")]
    pub ask_quote: ::core::option::Option<::prost::alloc::string::String>,
    /// 현재 MM 매수 호가 (변경 시에만 포함, None이면 생략)
    #[prost(string, optional, tag="8")]
    pub bid_quote: ::core::option::Option<::prost::alloc::string::String>,
    /// 현재 적용 중인 bid offset (변경 시에만 포함, None이면 생략)
    #[prost(string, optional, tag="9")]
    pub bid_offset: ::core::option::Option<::prost::alloc::string::String>,
    /// 현재 적용 중인 ask offset (변경 시에만 포함, None이면 생략)
    #[prost(string, optional, tag="10")]
    pub ask_offset: ::core::option::Option<::prost::alloc::string::String>,
    /// 호가 산출 단계별 분해 (변경 시에만 포함, 디버깅/튜닝용)
    #[prost(message, optional, tag="11")]
    pub decomposition: ::core::option::Option<SpreadDecomposition>,
}
/// 호가 산출 단계별 contribution. 최종 호가 = base + momentum + exposure_shift + market_bias.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SpreadDecomposition {
    /// Pricing 직후 bid (NAV + bid_adjustment, Price internal representation)
    #[prost(int64, tag="1")]
    pub base_bid: i64,
    /// Pricing 직후 ask (NAV + ask_adjustment, Price internal representation)
    #[prost(int64, tag="2")]
    pub base_ask: i64,
    /// Momentum 가산량 (부호 포함, bid·ask 동일, Price internal representation)
    #[prost(int64, tag="3")]
    pub momentum_shift: i64,
    /// ExposureSkew 가산량 (부호 포함, bid·ask 동일, Price internal representation)
    #[prost(int64, tag="4")]
    pub exposure_shift: i64,
    /// MarketBias 영구 편향 (부호 포함, bid·ask 동일, Price internal representation)
    #[prost(int64, tag="5")]
    pub market_bias_shift: i64,
    /// 정렬 후 최종 bid (Price internal representation)
    #[prost(int64, tag="6")]
    pub final_bid: i64,
    /// 정렬 후 최종 ask (Price internal representation)
    #[prost(int64, tag="7")]
    pub final_ask: i64,
}
// ============================================================================
// MM 엔진 상태 Request Messages
// ============================================================================

/// StreamMmStateUpdate
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamMmStateUpdateRequest {
    /// ISIN 심볼 (빈 문자열이면 전체 스트리밍)
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
}
// ============================================================================
// Enums
// ============================================================================

/// MM 상태
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MarketMakingState {
    Unspecified = 0,
    /// 대기
    Idle = 1,
    /// 활성
    Running = 2,
}
impl MarketMakingState {
    /// 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 {
            MarketMakingState::Unspecified => "MARKET_MAKING_STATE_UNSPECIFIED",
            MarketMakingState::Idle => "MARKET_MAKING_STATE_IDLE",
            MarketMakingState::Running => "MARKET_MAKING_STATE_RUNNING",
        }
    }
    /// 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_MAKING_STATE_UNSPECIFIED" => Some(Self::Unspecified),
            "MARKET_MAKING_STATE_IDLE" => Some(Self::Idle),
            "MARKET_MAKING_STATE_RUNNING" => Some(Self::Running),
            _ => None,
        }
    }
}
include!("kdo.v1.mm.tonic.rs");
include!("kdo.v1.mm.serde.rs");
// @@protoc_insertion_point(module)