// @generated
// This file is @generated by prost-build.
/// 시간 범위 쿼리
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TimeRange {
    #[prost(message, optional, tag="1")]
    pub start: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
    #[prost(message, optional, tag="2")]
    pub end: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
/// 페이지네이션
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Pagination {
    /// 최대 반환 개수 (default: 1000, max: 10000)
    #[prost(int32, tag="1")]
    pub limit: i32,
    /// 시작 위치
    #[prost(int32, tag="2")]
    pub offset: i32,
}
// ============================================================================
// Orderbook (호가)
// ============================================================================

/// 단일 호가 레벨
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PriceLevel {
    /// 가격
    #[prost(double, tag="1")]
    pub price: f64,
    /// 수량
    #[prost(int64, tag="2")]
    pub quantity: i64,
    /// 건수 (선물만 해당)
    #[prost(int32, tag="3")]
    pub count: i32,
}
/// 호가 데이터
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Orderbook {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(message, optional, tag="2")]
    pub time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
    #[prost(enumeration="SessionId", tag="3")]
    pub session_id: i32,
    /// 매수 호가 (가격 내림차순)
    #[prost(message, repeated, tag="4")]
    pub bids: ::prost::alloc::vec::Vec<PriceLevel>,
    /// 매도 호가 (가격 오름차순)
    #[prost(message, repeated, tag="5")]
    pub asks: ::prost::alloc::vec::Vec<PriceLevel>,
    /// 중간 가격
    #[prost(double, tag="6")]
    pub mid_price: f64,
    /// 스프레드
    #[prost(double, tag="7")]
    pub spread: f64,
    /// 총 수량
    #[prost(int64, tag="8")]
    pub total_bid_quantity: i64,
    #[prost(int64, tag="9")]
    pub total_ask_quantity: i64,
    /// 예상 체결가/수량 (단일가 시)
    #[prost(double, tag="10")]
    pub estimated_price: f64,
    #[prost(int64, tag="11")]
    pub estimated_volume: i64,
}
/// 호가 조회 요청
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetOrderbooksRequest {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(message, optional, tag="2")]
    pub time_range: ::core::option::Option<TimeRange>,
    #[prost(message, optional, tag="3")]
    pub pagination: ::core::option::Option<Pagination>,
}
/// 호가 조회 응답
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetOrderbooksResponse {
    #[prost(message, repeated, tag="1")]
    pub orderbooks: ::prost::alloc::vec::Vec<Orderbook>,
    #[prost(int32, tag="2")]
    pub total_count: i32,
    #[prost(bool, tag="3")]
    pub has_more: bool,
}
/// 최신 호가 조회 요청
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetLatestOrderbookRequest {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
}
/// 호가 스냅샷 조회 (특정 시점)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetOrderbookSnapshotRequest {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    /// 해당 시점 또는 직전 호가
    #[prost(message, optional, tag="2")]
    pub at: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
// ============================================================================
// Trade (체결)
// ============================================================================

/// 체결 데이터
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Trade {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(message, optional, tag="2")]
    pub time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
    #[prost(double, tag="3")]
    pub price: f64,
    #[prost(int64, tag="4")]
    pub quantity: i64,
    #[prost(enumeration="Side", tag="5")]
    pub side: i32,
    /// 누적 데이터
    #[prost(int64, tag="6")]
    pub cumulative_volume: i64,
    #[prost(double, tag="7")]
    pub cumulative_value: f64,
}
/// 체결 조회 요청
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTradesRequest {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(message, optional, tag="2")]
    pub time_range: ::core::option::Option<TimeRange>,
    #[prost(message, optional, tag="3")]
    pub pagination: ::core::option::Option<Pagination>,
    /// 선택적 필터
    #[prost(enumeration="Side", tag="4")]
    pub side_filter: i32,
}
/// 체결 조회 응답
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTradesResponse {
    #[prost(message, repeated, tag="1")]
    pub trades: ::prost::alloc::vec::Vec<Trade>,
    #[prost(int32, tag="2")]
    pub total_count: i32,
    #[prost(bool, tag="3")]
    pub has_more: bool,
}
// ============================================================================
// OHLC (캔들)
// ============================================================================

/// OHLC 캔들 데이터
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Candle {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    /// 캔들 시작 시간
    #[prost(message, optional, tag="2")]
    pub time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
    #[prost(enumeration="Interval", tag="3")]
    pub interval: i32,
    #[prost(double, tag="4")]
    pub open: f64,
    #[prost(double, tag="5")]
    pub high: f64,
    #[prost(double, tag="6")]
    pub low: f64,
    #[prost(double, tag="7")]
    pub close: f64,
    #[prost(int64, tag="8")]
    pub volume: i64,
    /// 거래대금
    #[prost(double, tag="9")]
    pub value: f64,
    /// 체결 건수
    #[prost(int32, tag="10")]
    pub trade_count: i32,
}
/// OHLC 조회 요청
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetCandlesRequest {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(enumeration="Interval", tag="2")]
    pub interval: i32,
    #[prost(message, optional, tag="3")]
    pub time_range: ::core::option::Option<TimeRange>,
    #[prost(message, optional, tag="4")]
    pub pagination: ::core::option::Option<Pagination>,
}
/// OHLC 조회 응답
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetCandlesResponse {
    #[prost(message, repeated, tag="1")]
    pub candles: ::prost::alloc::vec::Vec<Candle>,
    #[prost(int32, tag="2")]
    pub total_count: i32,
    #[prost(bool, tag="3")]
    pub has_more: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SymbolInfo {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub name: ::prost::alloc::string::String,
    #[prost(enumeration="MarketType", tag="3")]
    pub market_type: i32,
    /// 기초자산 (파생만 해당)
    #[prost(string, tag="4")]
    pub underlying: ::prost::alloc::string::String,
    /// 호가 단위
    #[prost(double, tag="5")]
    pub tick_size: f64,
    /// 거래 단위
    #[prost(int32, tag="6")]
    pub lot_size: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ListSymbolsRequest {
    /// 선택적 필터
    #[prost(enumeration="MarketType", tag="1")]
    pub market_type: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSymbolsResponse {
    #[prost(message, repeated, tag="1")]
    pub symbols: ::prost::alloc::vec::Vec<SymbolInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IndicatorParams {
    #[prost(enumeration="IndicatorType", tag="1")]
    pub r#type: i32,
    /// 기간 파라미터 (예: \[12, 26, 9\] for MACD)
    #[prost(int32, repeated, tag="2")]
    pub periods: ::prost::alloc::vec::Vec<i32>,
    /// 표준편차 (볼린저용)
    #[prost(double, tag="3")]
    pub std_dev: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IndicatorValue {
    #[prost(message, optional, tag="1")]
    pub time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
    /// 지표 값들 (MACD면 \[macd, signal, histogram\])
    #[prost(double, repeated, tag="2")]
    pub values: ::prost::alloc::vec::Vec<f64>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetIndicatorRequest {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(enumeration="Interval", tag="2")]
    pub interval: i32,
    #[prost(message, optional, tag="3")]
    pub params: ::core::option::Option<IndicatorParams>,
    #[prost(message, optional, tag="4")]
    pub time_range: ::core::option::Option<TimeRange>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetIndicatorResponse {
    #[prost(string, tag="1")]
    pub symbol: ::prost::alloc::string::String,
    #[prost(message, optional, tag="2")]
    pub params: ::core::option::Option<IndicatorParams>,
    #[prost(message, repeated, tag="3")]
    pub values: ::prost::alloc::vec::Vec<IndicatorValue>,
}
// ============================================================================
// Streaming (실시간)
// ============================================================================

#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscribeRequest {
    #[prost(string, repeated, tag="1")]
    pub symbols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderbookUpdate {
    #[prost(message, optional, tag="1")]
    pub orderbook: ::core::option::Option<Orderbook>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TradeUpdate {
    #[prost(message, optional, tag="1")]
    pub trade: ::core::option::Option<Trade>,
}
// ============================================================================
// Ingestion (적재) - Admin용
// ============================================================================

#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IngestFileRequest {
    #[prost(string, tag="1")]
    pub file_path: ::prost::alloc::string::String,
    /// 중복 스킵 여부
    #[prost(bool, tag="2")]
    pub skip_duplicates: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IngestFileResponse {
    #[prost(int64, tag="1")]
    pub total_lines: i64,
    #[prost(int64, tag="2")]
    pub parsed_count: i64,
    #[prost(int64, tag="3")]
    pub inserted_count: i64,
    #[prost(int64, tag="4")]
    pub skipped_count: i64,
    #[prost(int64, tag="5")]
    pub error_count: i64,
    /// 처음 10개 에러만
    #[prost(string, repeated, tag="6")]
    pub errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IngestDirectoryRequest {
    #[prost(string, tag="1")]
    pub directory_path: ::prost::alloc::string::String,
    /// glob 패턴 (예: "*.txt")
    #[prost(string, tag="2")]
    pub file_pattern: ::prost::alloc::string::String,
    #[prost(bool, tag="3")]
    pub skip_duplicates: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IngestDirectoryResponse {
    #[prost(int32, tag="1")]
    pub file_count: i32,
    #[prost(message, repeated, tag="2")]
    pub results: ::prost::alloc::vec::Vec<IngestFileResponse>,
}
/// 세션 ID (장 상태)
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SessionId {
    SessionUnknown = 0,
    /// 장개시전
    SessionPrevious = 1,
    /// 시가단일가
    SessionOpeningAuction = 2,
    /// 접속 (정규장)
    SessionContinuous = 3,
    /// 종가단일가
    SessionClosingAuction = 4,
    /// 장종료후
    SessionAfterHours = 5,
    /// VI단일가
    SessionViAuction = 6,
    /// 장마감
    SessionClosed = 7,
}
impl SessionId {
    /// 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 {
            SessionId::SessionUnknown => "SESSION_UNKNOWN",
            SessionId::SessionPrevious => "SESSION_PREVIOUS",
            SessionId::SessionOpeningAuction => "SESSION_OPENING_AUCTION",
            SessionId::SessionContinuous => "SESSION_CONTINUOUS",
            SessionId::SessionClosingAuction => "SESSION_CLOSING_AUCTION",
            SessionId::SessionAfterHours => "SESSION_AFTER_HOURS",
            SessionId::SessionViAuction => "SESSION_VI_AUCTION",
            SessionId::SessionClosed => "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 {
            "SESSION_UNKNOWN" => Some(Self::SessionUnknown),
            "SESSION_PREVIOUS" => Some(Self::SessionPrevious),
            "SESSION_OPENING_AUCTION" => Some(Self::SessionOpeningAuction),
            "SESSION_CONTINUOUS" => Some(Self::SessionContinuous),
            "SESSION_CLOSING_AUCTION" => Some(Self::SessionClosingAuction),
            "SESSION_AFTER_HOURS" => Some(Self::SessionAfterHours),
            "SESSION_VI_AUCTION" => Some(Self::SessionViAuction),
            "SESSION_CLOSED" => Some(Self::SessionClosed),
            _ => None,
        }
    }
}
/// 매수/매도 구분
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Side {
    Unknown = 0,
    /// 매수
    Bid = 1,
    /// 매도
    Ask = 2,
}
impl Side {
    /// 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 {
            Side::Unknown => "SIDE_UNKNOWN",
            Side::Bid => "SIDE_BID",
            Side::Ask => "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 {
            "SIDE_UNKNOWN" => Some(Self::Unknown),
            "SIDE_BID" => Some(Self::Bid),
            "SIDE_ASK" => Some(Self::Ask),
            _ => None,
        }
    }
}
/// OHLC 간격
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Interval {
    Unknown = 0,
    /// 1초
    Interval1s = 1,
    /// 5초
    Interval5s = 2,
    /// 10초
    Interval10s = 3,
    /// 30초
    Interval30s = 4,
    /// 1분
    Interval1m = 5,
    /// 5분
    Interval5m = 6,
    /// 15분
    Interval15m = 7,
    /// 30분
    Interval30m = 8,
    /// 1시간
    Interval1h = 9,
    /// 4시간
    Interval4h = 10,
    /// 1일
    Interval1d = 11,
}
impl Interval {
    /// 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 {
            Interval::Unknown => "INTERVAL_UNKNOWN",
            Interval::Interval1s => "INTERVAL_1S",
            Interval::Interval5s => "INTERVAL_5S",
            Interval::Interval10s => "INTERVAL_10S",
            Interval::Interval30s => "INTERVAL_30S",
            Interval::Interval1m => "INTERVAL_1M",
            Interval::Interval5m => "INTERVAL_5M",
            Interval::Interval15m => "INTERVAL_15M",
            Interval::Interval30m => "INTERVAL_30M",
            Interval::Interval1h => "INTERVAL_1H",
            Interval::Interval4h => "INTERVAL_4H",
            Interval::Interval1d => "INTERVAL_1D",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "INTERVAL_UNKNOWN" => Some(Self::Unknown),
            "INTERVAL_1S" => Some(Self::Interval1s),
            "INTERVAL_5S" => Some(Self::Interval5s),
            "INTERVAL_10S" => Some(Self::Interval10s),
            "INTERVAL_30S" => Some(Self::Interval30s),
            "INTERVAL_1M" => Some(Self::Interval1m),
            "INTERVAL_5M" => Some(Self::Interval5m),
            "INTERVAL_15M" => Some(Self::Interval15m),
            "INTERVAL_30M" => Some(Self::Interval30m),
            "INTERVAL_1H" => Some(Self::Interval1h),
            "INTERVAL_4H" => Some(Self::Interval4h),
            "INTERVAL_1D" => Some(Self::Interval1d),
            _ => None,
        }
    }
}
// ============================================================================
// Symbol (종목)
// ============================================================================

#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MarketType {
    MarketUnknown = 0,
    MarketKospi = 1,
    MarketKosdaq = 2,
    MarketEtf = 3,
    MarketFutures = 4,
    MarketOptions = 5,
}
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::MarketUnknown => "MARKET_UNKNOWN",
            MarketType::MarketKospi => "MARKET_KOSPI",
            MarketType::MarketKosdaq => "MARKET_KOSDAQ",
            MarketType::MarketEtf => "MARKET_ETF",
            MarketType::MarketFutures => "MARKET_FUTURES",
            MarketType::MarketOptions => "MARKET_OPTIONS",
        }
    }
    /// 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_UNKNOWN" => Some(Self::MarketUnknown),
            "MARKET_KOSPI" => Some(Self::MarketKospi),
            "MARKET_KOSDAQ" => Some(Self::MarketKosdaq),
            "MARKET_ETF" => Some(Self::MarketEtf),
            "MARKET_FUTURES" => Some(Self::MarketFutures),
            "MARKET_OPTIONS" => Some(Self::MarketOptions),
            _ => None,
        }
    }
}
// ============================================================================
// Indicator (기술적 지표) - Phase 2
// ============================================================================

#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum IndicatorType {
    IndicatorUnknown = 0,
    /// 단순 이동평균
    IndicatorSma = 1,
    /// 지수 이동평균
    IndicatorEma = 2,
    /// MACD
    IndicatorMacd = 3,
    /// RSI
    IndicatorRsi = 4,
    /// 볼린저 밴드
    IndicatorBollinger = 5,
    /// VWAP
    IndicatorVwap = 6,
    /// ATR
    IndicatorAtr = 7,
}
impl IndicatorType {
    /// 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 {
            IndicatorType::IndicatorUnknown => "INDICATOR_UNKNOWN",
            IndicatorType::IndicatorSma => "INDICATOR_SMA",
            IndicatorType::IndicatorEma => "INDICATOR_EMA",
            IndicatorType::IndicatorMacd => "INDICATOR_MACD",
            IndicatorType::IndicatorRsi => "INDICATOR_RSI",
            IndicatorType::IndicatorBollinger => "INDICATOR_BOLLINGER",
            IndicatorType::IndicatorVwap => "INDICATOR_VWAP",
            IndicatorType::IndicatorAtr => "INDICATOR_ATR",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "INDICATOR_UNKNOWN" => Some(Self::IndicatorUnknown),
            "INDICATOR_SMA" => Some(Self::IndicatorSma),
            "INDICATOR_EMA" => Some(Self::IndicatorEma),
            "INDICATOR_MACD" => Some(Self::IndicatorMacd),
            "INDICATOR_RSI" => Some(Self::IndicatorRsi),
            "INDICATOR_BOLLINGER" => Some(Self::IndicatorBollinger),
            "INDICATOR_VWAP" => Some(Self::IndicatorVwap),
            "INDICATOR_ATR" => Some(Self::IndicatorAtr),
            _ => None,
        }
    }
}
include!("market.v1.archive.tonic.rs");
include!("market.v1.archive.serde.rs");
// @@protoc_insertion_point(module)