uf-valence-core 0.1.2

Valence ports: DatabaseBackend, router, builder, host injectable traits
Documentation
//! Batch create hooks for codegen `BatchCreatable` impls (full batch runtime is host-owned).

use async_trait::async_trait;
use serde::de::DeserializeOwned;
use serde::Serialize;

use crate::error::Result;
use crate::record_id::RecordId;
use crate::runtime::Valence;

/// Marker trait for models participating in batch create codegen.
#[async_trait]
pub trait BatchCreatable: Serialize + DeserializeOwned + Send + 'static {
    fn table_name() -> &'static str;

    fn set_id(&mut self, id: RecordId);

    async fn ensure_ownership_after_batch_create(
        _created_row: serde_json::Value,
        _valence: &Valence,
    ) -> Result<()> {
        Ok(())
    }
}