modkit_db/odata/mod.rs
1//! `OData` integration for `SeaORM` with security-scoped pagination.
2//!
3//! This module provides `SeaORM`-specific adapters for `OData` queries:
4//! - `OData` filter compilation to `SeaORM` conditions (legacy `FieldMap` and new `FilterNode`)
5//! - Cursor-based pagination with `OData` ordering
6//! - Security-scoped pagination via `OPager` builder
7//!
8//! # Filter DSL
9//!
10//! The core filter types (`FilterField`, `FilterNode`, `FilterOp`, `FieldKind`) are defined
11//! in `modkit-odata` as part of the `OData` protocol contract. Import them from:
12//! ```ignore
13//! use modkit_odata::filter::{FilterField, FilterNode, FilterOp, FieldKind};
14//! ```
15//!
16//! # Modules
17//!
18//! - `core`: Core `OData` to `SeaORM` translation (filters, cursors, ordering) - legacy `FieldMap` based
19//! - `sea_orm_filter`: Type-safe mapping from `FilterNode<F>` to `SeaORM` conditions
20//! - `pager`: Fluent builder for secure + `OData` pagination
21
22// Core OData functionality (legacy FieldMap-based)
23mod core;
24
25// SeaORM-specific filter mapping
26pub mod sea_orm_filter;
27
28// Fluent pagination builder
29pub mod pager;
30
31// Re-export all public items from core (legacy API)
32pub use core::*;
33
34// Re-export SeaORM filter mapping and pagination
35pub use sea_orm_filter::{
36 FieldToColumn, LimitCfg, ODataFieldMapping, encode_cursor_value, filter_node_to_condition,
37 paginate_odata, parse_cursor_value,
38};