Files
ewa-mobile/src-tauri/src/apps/personemanagment/serializers.rs
T
2026-07-25 19:18:32 +05:00

127 lines
4.7 KiB
Rust

use che_tauri::{Field, ModelSerializer};
use super::models::{Employee, Message, Task, TaskTransfer};
static EMPLOYEE_FIELDS: &[Field] = &[
Field::new("id").read_only(),
Field::new("name"),
Field::new("short_name"),
Field::new("avatar_small").required(false).nullable(),
];
static TASK_FIELDS: &[Field] = &[
Field::new("id").read_only(),
Field::json("project").required(false).nullable(),
Field::json("doer").required(false).nullable(),
Field::new("doer_name"),
Field::json("author").required(false).nullable(),
Field::json("memo_full").required(false).nullable(),
Field::json("bill_full").required(false).nullable(),
Field::json("contract_full").required(false).nullable(),
Field::json("contract_application_full")
.required(false)
.nullable(),
Field::json("outgoing_letter_full")
.required(false)
.nullable(),
Field::json("entry_letter_full").required(false).nullable(),
Field::json("protocolitem_full").required(false).nullable(),
Field::json("decree_full").required(false).nullable(),
Field::json("delivery_full").required(false).nullable(),
Field::new("get_status"),
Field::new("get_status_class"),
Field::new("get_scan_url").required(false).nullable(),
Field::new("get_last_day"),
Field::new("frc_icon"),
Field::json("uploadfile_set").required(false).nullable(),
Field::new("deadline"),
Field::new("request_new_deadline")
.required(false)
.nullable(),
Field::new("plan_date").required(false).nullable(),
Field::new("date"),
Field::json("message_set").required(false).nullable(),
Field::json("responsible").required(false).nullable(),
Field::json("counterparty").required(false).nullable(),
Field::json("get_deadline_history")
.required(false)
.nullable(),
Field::new("duration").required(false).nullable(),
Field::json("bid_full").required(false).nullable(),
Field::json("price_agreement_full")
.required(false)
.nullable(),
Field::json("transfer").required(false).nullable(),
Field::new("text"),
Field::new("status"),
Field::new("result"),
Field::new("complit_date").required(false).nullable(),
Field::new("comment"),
Field::new("note"),
Field::new("approve"),
Field::new("archive"),
Field::new("approve_date").required(false).nullable(),
Field::new("approve_required"),
Field::new("progress_status"),
Field::new("start_date").required(false).nullable(),
Field::new("end_date").required(false).nullable(),
Field::new("order_number").required(false).nullable(),
Field::new("priority").required(false).nullable(),
Field::new("typ"),
Field::json("stage").required(false).nullable(),
Field::json("contract").required(false).nullable(),
Field::json("questionnair").required(false).nullable(),
Field::json("contract_application")
.required(false)
.nullable(),
Field::json("entry_letter").required(false).nullable(),
Field::json("outgoing_letter").required(false).nullable(),
Field::json("protocol").required(false).nullable(),
Field::json("bill").required(false).nullable(),
Field::json("decree").required(false).nullable(),
Field::json("court_case").required(false).nullable(),
Field::json("bill_register").required(false).nullable(),
Field::json("price_agreement").required(false).nullable(),
Field::json("bid").required(false).nullable(),
Field::json("delivery").required(false).nullable(),
Field::json("scheduled_task").required(false).nullable(),
Field::json("report").required(false).nullable(),
Field::json("memo").required(false).nullable(),
Field::json("protocolitem").required(false).nullable(),
Field::json("related_note").required(false).nullable(),
Field::json("task").required(false).nullable(),
];
static MESSAGE_FIELDS: &[Field] = &[
Field::new("id").read_only(),
Field::new("task_id"),
Field::new("employee_id"),
Field::new("text"),
];
static TASK_TRANSFER_FIELDS: &[Field] = &[
Field::new("id").read_only(),
Field::json("employee_from").required(false).nullable(),
Field::json("employee_to").required(false).nullable(),
Field::new("date_create").read_only(),
Field::json("task").required(false).nullable(),
Field::new("status"),
Field::new("typ"),
];
pub fn employee_serializer() -> ModelSerializer<Employee> {
ModelSerializer::new(EMPLOYEE_FIELDS)
}
pub fn task_serializer() -> ModelSerializer<Task> {
ModelSerializer::new(TASK_FIELDS)
}
pub fn message_serializer() -> ModelSerializer<Message> {
ModelSerializer::new(MESSAGE_FIELDS)
}
pub fn task_transfer_serializer() -> ModelSerializer<TaskTransfer> {
ModelSerializer::new(TASK_TRANSFER_FIELDS)
}