Skip to main content

text_document_frontend/commands/
inline_element_commands.rs

1// Generated by Qleany v1.5.0 from frontend_entity_commands.tera
2
3//! InlineElement entity commands
4#![allow(unused_imports, dead_code)]
5
6use crate::app_context::AppContext;
7use anyhow::{Context, Result};
8use common::types::EntityId;
9use direct_access::{
10    CreateInlineElementDto, InlineElementDto, UpdateInlineElementDto, inline_element_controller,
11};
12
13/// Create a new inline_element entity (orphan, no parent)
14pub fn create_orphan_inline_element(
15    ctx: &AppContext,
16    stack_id: Option<u64>,
17    dto: &CreateInlineElementDto,
18) -> Result<InlineElementDto> {
19    let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
20    inline_element_controller::create_orphan(
21        &ctx.db_context,
22        &ctx.event_hub,
23        &mut undo_redo_manager,
24        stack_id,
25        dto,
26    )
27    .context("creating inline_element")
28}
29/// Create a new inline_element entity as child of owner
30pub fn create_inline_element(
31    ctx: &AppContext,
32    stack_id: Option<u64>,
33    dto: &CreateInlineElementDto,
34    owner_id: EntityId,
35    index: i32,
36) -> Result<InlineElementDto> {
37    let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
38    inline_element_controller::create(
39        &ctx.db_context,
40        &ctx.event_hub,
41        &mut undo_redo_manager,
42        stack_id,
43        dto,
44        owner_id,
45        index,
46    )
47    .context("creating inline_element")
48}
49/// Create multiple inline_element entities (orphan, no parent)
50pub fn create_orphan_inline_element_multi(
51    ctx: &AppContext,
52    stack_id: Option<u64>,
53    dtos: &[CreateInlineElementDto],
54) -> Result<Vec<InlineElementDto>> {
55    let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
56    inline_element_controller::create_orphan_multi(
57        &ctx.db_context,
58        &ctx.event_hub,
59        &mut undo_redo_manager,
60        stack_id,
61        dtos,
62    )
63    .context("creating inline_element entities")
64}
65/// Create multiple inline_element entities as children of owner
66pub fn create_inline_element_multi(
67    ctx: &AppContext,
68    stack_id: Option<u64>,
69    dtos: &[CreateInlineElementDto],
70    owner_id: EntityId,
71    index: i32,
72) -> Result<Vec<InlineElementDto>> {
73    let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
74    inline_element_controller::create_multi(
75        &ctx.db_context,
76        &ctx.event_hub,
77        &mut undo_redo_manager,
78        stack_id,
79        dtos,
80        owner_id,
81        index,
82    )
83    .context("creating inline_element entities")
84}
85/// Get a inline_element entity by ID
86pub fn get_inline_element(ctx: &AppContext, id: &EntityId) -> Result<Option<InlineElementDto>> {
87    inline_element_controller::get(&ctx.db_context, id).context("getting inline_element")
88}
89
90/// Get multiple inline_element entities by IDs
91pub fn get_inline_element_multi(
92    ctx: &AppContext,
93    ids: &[EntityId],
94) -> Result<Vec<Option<InlineElementDto>>> {
95    inline_element_controller::get_multi(&ctx.db_context, ids)
96        .context("getting inline_element entities")
97}
98
99/// Get all inline_element entities.
100/// Note: returns entities in database key order (by EntityId), not insertion order
101/// or any user-defined sort. For ordered collections, use relationship-based
102/// retrieval (e.g. get_*_relationship for ordered_one_to_many fields).
103pub fn get_all_inline_element(ctx: &AppContext) -> Result<Vec<InlineElementDto>> {
104    inline_element_controller::get_all(&ctx.db_context)
105        .context("getting all inline_element entities")
106}
107
108/// Update a inline_element entity
109pub fn update_inline_element(
110    ctx: &AppContext,
111    stack_id: Option<u64>,
112    dto: &UpdateInlineElementDto,
113) -> Result<InlineElementDto> {
114    let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
115    inline_element_controller::update(
116        &ctx.db_context,
117        &ctx.event_hub,
118        &mut undo_redo_manager,
119        stack_id,
120        dto,
121    )
122    .context("updating inline_element")
123}
124
125/// Update multiple inline_element entities
126pub fn update_inline_element_multi(
127    ctx: &AppContext,
128    stack_id: Option<u64>,
129    dtos: &[UpdateInlineElementDto],
130) -> Result<Vec<InlineElementDto>> {
131    let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
132    inline_element_controller::update_multi(
133        &ctx.db_context,
134        &ctx.event_hub,
135        &mut undo_redo_manager,
136        stack_id,
137        dtos,
138    )
139    .context("updating inline_element entities")
140}
141
142/// Update a inline_element entity with relationships
143pub fn update_inline_element_with_relationships(
144    ctx: &AppContext,
145    stack_id: Option<u64>,
146    dto: &InlineElementDto,
147) -> Result<InlineElementDto> {
148    let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
149    inline_element_controller::update_with_relationships(
150        &ctx.db_context,
151        &ctx.event_hub,
152        &mut undo_redo_manager,
153        stack_id,
154        dto,
155    )
156    .context("updating inline_element with relationships")
157}
158
159/// Update multiple inline_element entities with relationships
160pub fn update_inline_element_with_relationships_multi(
161    ctx: &AppContext,
162    stack_id: Option<u64>,
163    dtos: &[InlineElementDto],
164) -> Result<Vec<InlineElementDto>> {
165    let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
166    inline_element_controller::update_with_relationships_multi(
167        &ctx.db_context,
168        &ctx.event_hub,
169        &mut undo_redo_manager,
170        stack_id,
171        dtos,
172    )
173    .context("updating inline_element entities with relationships")
174}
175
176/// Remove a inline_element entity by ID
177pub fn remove_inline_element(ctx: &AppContext, stack_id: Option<u64>, id: &EntityId) -> Result<()> {
178    let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
179    inline_element_controller::remove(
180        &ctx.db_context,
181        &ctx.event_hub,
182        &mut undo_redo_manager,
183        stack_id,
184        id,
185    )
186    .context("removing inline_element")
187}
188
189/// Remove multiple inline_element entities by IDs
190pub fn remove_inline_element_multi(
191    ctx: &AppContext,
192    stack_id: Option<u64>,
193    ids: &[EntityId],
194) -> Result<()> {
195    let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
196    inline_element_controller::remove_multi(
197        &ctx.db_context,
198        &ctx.event_hub,
199        &mut undo_redo_manager,
200        stack_id,
201        ids,
202    )
203    .context("removing inline_element entities")
204}