tdm_server_rust/entity/evaluation.rs
1//! 评价实体 (Evaluation Entity)
2//!
3//! 组员互评/审稿评价记录,映射 `t_evaluation` 表。
4//!
5//! ## 业务场景
6//!
7//! 校对或审稿岗位对组员的翻译/嵌字质量进行文字评价,
8//! 用于组长掌握组员水平并合理分配任务。
9//!
10//! ## 权限约束
11//!
12//! 仅有校对 (post=2) 或审稿 (post=4) 岗位的组员可以访问评价接口,
13//! 权限校验在 `auth_middleware` 中完成。
14
15use chrono::{DateTime, Utc};
16use serde::{Deserialize, Serialize};
17
18/// 组员互评/审稿评价记录
19///
20/// 记录校对或审稿岗位对组员工作质量的评价。
21/// 每条评价包含评价方、被评价方、职责类型和评价内容。
22///
23/// ## 字段说明
24///
25/// | 字段 | 数据库列 | 说明 |
26/// |------|----------|------|
27/// | `id` | `id` | 自增主键 |
28/// | `member_id` | `memberId` | 被评价组员 ID |
29/// | `target` | `target` | 被评价组员姓名(冗余,便于直接展示) |
30/// | `evaluator_id` | `evaluatorId` | 评价人 ID |
31/// | `evaluator` | `evaluator` | 评价人姓名 |
32/// | `role_type` | `roleType` | 职责类型:0-未指定,1-翻译质量,2-嵌字质量 |
33/// | `content` | `content` | 评价正文 |
34/// | `evaluation_time` | `evaluationTime` | 评价时间(业务时间) |
35/// | `created_at` | `createdAt` | 记录创建时间 |
36/// | `updated_at` | `updatedAt` | 记录最后更新时间 |
37///
38/// ## 序列化
39///
40/// JSON 格式(camelCase),用于 `GET/POST /api/evaluations` 的请求与响应。
41///
42/// ## 对应 Java 类
43///
44/// Java `Evaluation` 实体。
45#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(rename_all = "camelCase")]
47pub struct Evaluation {
48 /// 自增主键,新增时为 `None`
49 pub id: Option<i64>,
50 /// 被评价组员 ID
51 pub member_id: Option<i32>,
52 /// 被评价人姓名(冗余字段,避免 JOIN 查询)
53 pub target: Option<String>,
54 /// 评价人 ID
55 pub evaluator_id: Option<i32>,
56 /// 评价人姓名
57 pub evaluator: Option<String>,
58 /// 职责类型:0-未指定,1-翻译,2-嵌字
59 pub role_type: Option<i16>,
60 /// 评价正文内容
61 pub content: Option<String>,
62 /// 评价发起时间
63 pub evaluation_time: Option<DateTime<Utc>>,
64 /// 记录创建时间(数据库自动填充)
65 pub created_at: Option<DateTime<Utc>>,
66 /// 记录最后更新时间
67 pub updated_at: Option<DateTime<Utc>>,
68}