Skip to main content

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}