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

/// 시간 프레임별 주문 제한 설정
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TimeFrameLimit {
    /// 시간 윈도우 (초)
    #[prost(uint32, tag="1")]
    pub window_seconds: u32,
    /// 최대 주문 건수
    #[prost(uint32, tag="2")]
    pub max_orders: u32,
}
/// OrderLimiter 설정 (전역 싱글톤)
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderLimiterConfig {
    /// 활성화 여부
    #[prost(bool, optional, tag="1")]
    pub enabled: ::core::option::Option<bool>,
    /// 단일 주문 수량 한도 (i64)
    #[prost(int64, optional, tag="3")]
    pub single_order_limit: ::core::option::Option<i64>,
    /// 시간 프레임별 주문 건수 제한 목록
    /// 설정 시 기존 목록을 전체 교체
    #[prost(message, repeated, tag="4")]
    pub time_frame_limits: ::prost::alloc::vec::Vec<TimeFrameLimit>,
}
/// 시간 프레임별 주문 건수 현황
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TimeFrameStatus {
    /// 시간 윈도우 (초)
    #[prost(uint32, tag="1")]
    pub window_seconds: u32,
    /// 현재 윈도우 내 주문 건수
    #[prost(uint32, tag="2")]
    pub current_count: u32,
    /// 최대 주문 건수
    #[prost(uint32, tag="3")]
    pub max_orders: u32,
}
/// 전역 OrderLimiter 현황
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderLimiterStatus {
    /// 활성화 여부
    #[prost(bool, tag="3")]
    pub enabled: bool,
    /// 시간 프레임별 주문 건수 현황
    #[prost(message, repeated, tag="6")]
    pub time_frame_statuses: ::prost::alloc::vec::Vec<TimeFrameStatus>,
}
// ============================================================================
// Request/Response Messages
// ============================================================================

/// UpdateOrderLimiterConfig
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateOrderLimiterConfigRequest {
    /// 업데이트할 설정
    #[prost(message, optional, tag="3")]
    pub config: ::core::option::Option<OrderLimiterConfig>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateOrderLimiterConfigResponse {
    /// 업데이트된 대상 수
    #[prost(uint32, tag="1")]
    pub updated_count: u32,
    /// 메시지
    #[prost(string, tag="2")]
    pub message: ::prost::alloc::string::String,
}
/// StreamOrderLimiterStatus
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct StreamOrderLimiterStatusRequest {
}
include!("kdo.v1.order_limit.tonic.rs");
include!("kdo.v1.order_limit.serde.rs");
// @@protoc_insertion_point(module)