codetics-ocpp-service 0.1.0

Codetics OCPP: Charging Station Management System (CSMS) service for OCPP 1.6J, 2.0.1 and 2.1, with TLS security profiles, smart charging, reservations and tariffs
Documentation
// SPDX-License-Identifier: Apache-2.0
// Copyright 2026 Kevin Vavelin, Codetics (https://codetics.fr)

//! PostgreSQL access. Queries are plain SQL checked by the integration tests
//! (no compile-time database connection required).

pub mod charging;
pub mod events;
pub mod reservations;
pub mod stations;
pub mod tariffs;
pub mod tokens;
pub mod transactions;
mod ts;

pub use ts::Ts;

use sqlx::postgres::{PgPool, PgPoolOptions};

pub type Db = PgPool;

pub async fn connect(url: &str, max_connections: u32) -> Result<Db, sqlx::Error> {
    PgPoolOptions::new()
        .max_connections(max_connections)
        .acquire_timeout(std::time::Duration::from_secs(10))
        .connect(url)
        .await
}

pub async fn migrate(db: &Db) -> Result<(), sqlx::migrate::MigrateError> {
    sqlx::migrate!("./migrations").run(db).await
}