首次提交:初始化项目代码
This commit is contained in:
@@ -0,0 +1,170 @@
|
||||
// Package model 数据模型层,定义所有业务实体结构
|
||||
// 包含用户、简历、作品集、答题记录等核心数据模型
|
||||
package model
|
||||
|
||||
// User 用户模型,用于用户认证和权限管理
|
||||
type User struct {
|
||||
ID string `json:"id"` // 用户唯一标识
|
||||
Username string `json:"username"` // 用户名(唯一)
|
||||
PasswordHash string `json:"password_hash"` // 密码哈希值
|
||||
Email string `json:"email"` // 用户邮箱
|
||||
Name string `json:"name"` // 用户姓名
|
||||
Phone string `json:"phone"` // 用户手机号
|
||||
Role string `json:"role"` // 用户角色(admin/user)
|
||||
CreatedAt string `json:"created_at"` // 创建时间
|
||||
UpdatedAt string `json:"updated_at"` // 更新时间
|
||||
}
|
||||
|
||||
// Resume 简历模型,存储个人简历的完整信息
|
||||
type Resume struct {
|
||||
ID string `json:"id"` // 简历唯一标识
|
||||
UserID string `json:"user_id"` // 关联的用户ID
|
||||
Route string `json:"route"` // 访问路由(唯一,如 zhangsan)
|
||||
Password string `json:"password"` // 简历密码(用于访问保护)
|
||||
BasicInfo BasicInfo `json:"basic_info"` // 基本信息
|
||||
Experience []Experience `json:"experience"` // 工作经历列表
|
||||
Education []Education `json:"education"` // 教育背景列表
|
||||
Skills []Skill `json:"skills"` // 技能列表
|
||||
Projects []Project `json:"projects"` // 项目经验列表
|
||||
Template string `json:"template"` // 使用的模板名称(默认modern)
|
||||
ShowInHome bool `json:"show_in_home"` // 是否在首页展示
|
||||
CreatedAt string `json:"created_at"` // 创建时间
|
||||
UpdatedAt string `json:"updated_at"` // 更新时间
|
||||
}
|
||||
|
||||
// BasicInfo 基本信息,包含个人基本资料
|
||||
type BasicInfo struct {
|
||||
Name string `json:"name"` // 姓名
|
||||
Title string `json:"title"` // 职位/头衔
|
||||
Email string `json:"email"` // 邮箱地址
|
||||
Phone string `json:"phone"` // 手机号码
|
||||
Location string `json:"location"` // 所在地
|
||||
Website string `json:"website"` // 个人网站地址
|
||||
Summary string `json:"summary"` // 个人简介
|
||||
Avatar string `json:"avatar"` // 头像URL
|
||||
ExperienceYears string `json:"experience_years"` // 工作年限
|
||||
JobTarget string `json:"job_target"` // 求职目标
|
||||
Industry string `json:"industry"` // 所属行业
|
||||
CoreAdvantages []string `json:"core_advantages"` // 核心优势列表
|
||||
}
|
||||
|
||||
// Experience 工作经历,记录职业发展历程
|
||||
type Experience struct {
|
||||
ID uint `json:"id"` // 经历唯一标识
|
||||
ResumeID string `json:"resume_id"` // 关联的简历ID
|
||||
Company string `json:"company"` // 公司名称
|
||||
Position string `json:"position"` // 职位名称
|
||||
StartDate string `json:"start_date"` // 开始日期(格式:YYYY-MM)
|
||||
EndDate string `json:"end_date"` // 结束日期(格式:YYYY-MM,"至今"表示当前)
|
||||
Description string `json:"description"` // 工作描述
|
||||
Highlights []string `json:"highlights"` // 工作亮点列表
|
||||
Platforms []string `json:"platforms"` // 线上平台列表
|
||||
}
|
||||
|
||||
// Education 教育背景,记录学习经历
|
||||
type Education struct {
|
||||
ID uint `json:"id"` // 教育背景唯一标识
|
||||
ResumeID string `json:"resume_id"` // 关联的简历ID
|
||||
School string `json:"school"` // 学校名称
|
||||
Degree string `json:"degree"` // 学位(本科/硕士/博士等)
|
||||
Major string `json:"major"` // 专业名称
|
||||
StartDate string `json:"start_date"` // 入学日期(格式:YYYY-MM)
|
||||
EndDate string `json:"end_date"` // 毕业日期(格式:YYYY-MM)
|
||||
GPA string `json:"gpa"` // GPA成绩
|
||||
}
|
||||
|
||||
// Skill 技能,记录个人技能和熟练程度
|
||||
type Skill struct {
|
||||
ID uint `json:"id"` // 技能唯一标识
|
||||
ResumeID string `json:"resume_id"` // 关联的简历ID
|
||||
Name string `json:"name"` // 技能名称
|
||||
Level string `json:"level"` // 熟练程度(beginner/intermediate/advanced/expert)
|
||||
Category string `json:"category"` // 技能分类(后端/前端/数据库/运维等)
|
||||
}
|
||||
|
||||
// Project 项目经验,记录参与的项目
|
||||
type Project struct {
|
||||
ID uint `json:"id"` // 项目唯一标识
|
||||
ResumeID string `json:"resume_id"` // 关联的简历ID
|
||||
Name string `json:"name"` // 项目名称
|
||||
Description string `json:"description"` // 项目描述
|
||||
TechStack []string `json:"tech_stack"` // 技术栈列表
|
||||
URL string `json:"url"` // 项目链接
|
||||
Highlights []string `json:"highlights"` // 项目亮点列表
|
||||
Achievements []string `json:"achievements"` // 项目成果列表
|
||||
StartDate string `json:"start_date"` // 开始日期(格式:YYYY-MM)
|
||||
EndDate string `json:"end_date"` // 结束日期(格式:YYYY-MM)
|
||||
ShowInResume bool `json:"show_in_resume"` // 是否在简历中显示
|
||||
}
|
||||
|
||||
// PortfolioItem 作品集项目,用于展示详细的项目文档
|
||||
type PortfolioItem struct {
|
||||
ID uint `json:"id"` // 作品集项目唯一标识
|
||||
UserID string `json:"user_id"` // 关联的用户ID
|
||||
Name string `json:"name"` // 项目名称
|
||||
Description string `json:"description"` // 项目描述
|
||||
TechStack []string `json:"tech_stack"` // 技术栈列表
|
||||
URL string `json:"url"` // 项目链接
|
||||
StartDate string `json:"start_date"` // 开始日期(格式:YYYY-MM)
|
||||
EndDate string `json:"end_date"` // 结束日期(格式:YYYY-MM)
|
||||
Doc string `json:"doc"` // 项目文档(Markdown格式)
|
||||
ShowInResume bool `json:"show_in_resume"` // 是否在简历中显示
|
||||
ResumeID string `json:"resume_id"` // 关联的简历ID
|
||||
ProjectID uint `json:"project_id"` // 关联的简历项目ID
|
||||
Password string `json:"password"` // 访问密码
|
||||
Hidden bool `json:"hidden"` // 是否隐藏
|
||||
}
|
||||
|
||||
// ResumeUpdate 简历更新请求模型,用于部分更新简历内容
|
||||
type ResumeUpdate struct {
|
||||
BasicInfo *BasicInfo `json:"basic_info"` // 基本信息(可选)
|
||||
Experience *[]Experience `json:"experience"` // 工作经历列表(可选)
|
||||
Education *[]Education `json:"education"` // 教育背景列表(可选)
|
||||
Skills *[]Skill `json:"skills"` // 技能列表(可选)
|
||||
Projects *[]Project `json:"projects"` // 项目经验列表(可选)
|
||||
Template *string `json:"template"` // 模板名称(可选)
|
||||
ShowInHome *bool `json:"show_in_home"` // 是否在首页展示(可选)
|
||||
Route *string `json:"route"` // 访问路由(可选)
|
||||
Password *string `json:"password"` // 简历密码(可选)
|
||||
}
|
||||
|
||||
// QuizQuestion 面试题题目模型
|
||||
type QuizQuestion struct {
|
||||
Type string `json:"type"` // 题目类型:mcq(选择题)、fill(填空题)、sa(简答题)、algo(算法设计题)
|
||||
Text string `json:"text"` // 题目内容
|
||||
Options []string `json:"options"` // 选项(选择题)
|
||||
Answer string `json:"answer"` // 参考答案
|
||||
Analysis string `json:"analysis"` // 答案解析(详细拓展)
|
||||
Score int `json:"score"` // 分值
|
||||
Keywords []string `json:"keywords"` // 关联关键词
|
||||
Difficulty string `json:"difficulty"` // 难度级别:入门、初级、中级、进阶、高级
|
||||
Category string `json:"category"` // 题目分类
|
||||
}
|
||||
|
||||
// QuizRecord 面试题历史记录模型
|
||||
type QuizRecord struct {
|
||||
ID string `json:"id"` // 记录唯一标识
|
||||
UserID string `json:"user_id"` // 关联的用户ID
|
||||
ResumeID string `json:"resume_id"` // 关联的简历ID
|
||||
ResumeRoute string `json:"resume_route"` // 关联的简历路由
|
||||
Title string `json:"title"` // 答题记录标题
|
||||
Questions []QuizQuestion `json:"questions"` // 题目列表
|
||||
UserAnswers map[string]string `json:"user_answers"` // 用户答案
|
||||
Score float64 `json:"score"` // 得分
|
||||
CorrectCount int `json:"correct_count"` // 正确题数
|
||||
TotalCount int `json:"total_count"` // 总题数
|
||||
CreatedAt string `json:"created_at"` // 创建时间
|
||||
}
|
||||
|
||||
// FavoriteQuestion 收藏/错题本模型
|
||||
type FavoriteQuestion struct {
|
||||
ID string `json:"id"` // 记录唯一标识
|
||||
UserID string `json:"user_id"` // 关联的用户ID
|
||||
ResumeID string `json:"resume_id"` // 关联的简历ID
|
||||
ResumeRoute string `json:"resume_route"` // 关联的简历路由
|
||||
Question QuizQuestion `json:"question"` // 题目内容
|
||||
UserAnswer string `json:"user_answer"` // 用户答案
|
||||
IsCorrect bool `json:"is_correct"` // 是否正确
|
||||
IsFavorite bool `json:"is_favorite"` // 是否收藏
|
||||
CreatedAt string `json:"created_at"` // 添加时间
|
||||
}
|
||||
Reference in New Issue
Block a user