#![allow(unused_imports, dead_code)]
use crate::app_context::AppContext;
use anyhow::{Context, Result};
use common::direct_access::system::SystemRelationshipField;
use common::types::EntityId;
use direct_access::SystemRelationshipDto;
use direct_access::{CreateSystemDto, SystemDto, UpdateSystemDto, system_controller};
pub fn create_orphan_system(ctx: &AppContext, dto: &CreateSystemDto) -> Result<SystemDto> {
system_controller::create_orphan(&ctx.db_context, &ctx.event_hub, dto)
.context("creating system")
}
pub fn create_system(
ctx: &AppContext,
dto: &CreateSystemDto,
owner_id: EntityId,
index: i32,
) -> Result<SystemDto> {
system_controller::create(&ctx.db_context, &ctx.event_hub, dto, owner_id, index)
.context("creating system")
}
pub fn create_orphan_system_multi(
ctx: &AppContext,
dtos: &[CreateSystemDto],
) -> Result<Vec<SystemDto>> {
system_controller::create_orphan_multi(&ctx.db_context, &ctx.event_hub, dtos)
.context("creating system entities")
}
pub fn create_system_multi(
ctx: &AppContext,
dtos: &[CreateSystemDto],
owner_id: EntityId,
index: i32,
) -> Result<Vec<SystemDto>> {
system_controller::create_multi(&ctx.db_context, &ctx.event_hub, dtos, owner_id, index)
.context("creating system entities")
}
pub fn get_system(ctx: &AppContext, id: &EntityId) -> Result<Option<SystemDto>> {
system_controller::get(&ctx.db_context, id).context("getting system")
}
pub fn get_system_multi(ctx: &AppContext, ids: &[EntityId]) -> Result<Vec<Option<SystemDto>>> {
system_controller::get_multi(&ctx.db_context, ids).context("getting system entities")
}
pub fn get_all_system(ctx: &AppContext) -> Result<Vec<SystemDto>> {
system_controller::get_all(&ctx.db_context).context("getting all system entities")
}
pub fn update_system(ctx: &AppContext, dto: &UpdateSystemDto) -> Result<SystemDto> {
system_controller::update(&ctx.db_context, &ctx.event_hub, dto).context("updating system")
}
pub fn update_system_multi(ctx: &AppContext, dtos: &[UpdateSystemDto]) -> Result<Vec<SystemDto>> {
system_controller::update_multi(&ctx.db_context, &ctx.event_hub, dtos)
.context("updating system entities")
}
pub fn update_system_with_relationships(ctx: &AppContext, dto: &SystemDto) -> Result<SystemDto> {
system_controller::update_with_relationships(&ctx.db_context, &ctx.event_hub, dto)
.context("updating system with relationships")
}
pub fn update_system_with_relationships_multi(
ctx: &AppContext,
dtos: &[SystemDto],
) -> Result<Vec<SystemDto>> {
system_controller::update_with_relationships_multi(&ctx.db_context, &ctx.event_hub, dtos)
.context("updating system entities with relationships")
}
pub fn remove_system(ctx: &AppContext, id: &EntityId) -> Result<()> {
system_controller::remove(&ctx.db_context, &ctx.event_hub, id).context("removing system")
}
pub fn remove_system_multi(ctx: &AppContext, ids: &[EntityId]) -> Result<()> {
system_controller::remove_multi(&ctx.db_context, &ctx.event_hub, ids)
.context("removing system entities")
}
pub fn get_system_relationship(
ctx: &AppContext,
id: &EntityId,
field: &SystemRelationshipField,
) -> Result<Vec<EntityId>> {
system_controller::get_relationship(&ctx.db_context, id, field)
.context("getting system relationship")
}
pub fn get_system_relationship_many(
ctx: &AppContext,
ids: &[EntityId],
field: &SystemRelationshipField,
) -> Result<std::collections::HashMap<EntityId, Vec<EntityId>>> {
system_controller::get_relationship_many(&ctx.db_context, ids, field)
.context("getting system relationships (many)")
}
pub fn get_system_relationship_count(
ctx: &AppContext,
id: &EntityId,
field: &SystemRelationshipField,
) -> Result<usize> {
system_controller::get_relationship_count(&ctx.db_context, id, field)
.context("getting system relationship count")
}
pub fn get_system_relationship_in_range(
ctx: &AppContext,
id: &EntityId,
field: &SystemRelationshipField,
offset: usize,
limit: usize,
) -> Result<Vec<EntityId>> {
system_controller::get_relationship_in_range(&ctx.db_context, id, field, offset, limit)
.context("getting system relationship range")
}
pub fn set_system_relationship(ctx: &AppContext, dto: &SystemRelationshipDto) -> Result<()> {
system_controller::set_relationship(&ctx.db_context, &ctx.event_hub, dto)
.context("setting system relationship")
}
pub fn move_system_relationship(
ctx: &AppContext,
id: &EntityId,
field: &SystemRelationshipField,
ids_to_move: &[EntityId],
new_index: i32,
) -> Result<Vec<EntityId>> {
system_controller::move_relationship(
&ctx.db_context,
&ctx.event_hub,
id,
field,
ids_to_move,
new_index,
)
.context("moving system relationship")
}