Module nested

Module nested 

Source
Expand description

Nested write operations for managing relations in a single mutation.

This module provides support for creating, connecting, disconnecting, and updating related records within a single create or update operation.

§Example

use prax_query::nested::*;

// Create a user with nested posts
let user = client
    .user()
    .create(user::create::Data {
        email: "user@example.com".into(),
        name: Some("John Doe".into()),
        posts: Some(NestedWrite::create_many(vec![
            post::create::Data { title: "First Post".into(), content: None },
            post::create::Data { title: "Second Post".into(), content: None },
        ])),
    })
    .exec()
    .await?;

// Connect existing posts to a user
let user = client
    .user()
    .update(user::id::equals(1))
    .data(user::update::Data {
        posts: Some(NestedWrite::connect(vec![
            post::id::equals(10),
            post::id::equals(20),
        ])),
        ..Default::default()
    })
    .exec()
    .await?;

// Disconnect posts from a user
let user = client
    .user()
    .update(user::id::equals(1))
    .data(user::update::Data {
        posts: Some(NestedWrite::disconnect(vec![
            post::id::equals(10),
        ])),
        ..Default::default()
    })
    .exec()
    .await?;

Structs§

JoinTableInfo
Information about a join table for many-to-many relations.
NestedCreateData
Data for creating a nested record.
NestedCreateOrConnectData
Data for creating or connecting a nested record.
NestedUpdateData
Data for updating a nested record.
NestedUpdateManyData
Data for updating many nested records.
NestedUpsertData
Data for upserting a nested record.
NestedWriteBuilder
Builder for nested write SQL operations.
NestedWriteOperations
A container for collecting all nested write operations to execute.

Enums§

NestedWrite
Represents a nested write operation for relations.