Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
223 lines
6.2 KiB
JSON
223 lines
6.2 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://schemas.edu-industry.cn/school-internship/2.1.0/schema.json",
|
|
"title": "SCHOOL-INTERNSHIP V2.1 校内实习数据",
|
|
"description": "职业院校学生实习数据契约,要求租户隔离,将身份字段限制在业务必需的最少范围,并引用评价记录。",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"tenant_id",
|
|
"record_id",
|
|
"internship_id",
|
|
"student_token",
|
|
"program_code",
|
|
"job_title",
|
|
"start_date",
|
|
"status",
|
|
"source_system",
|
|
"source_record_id",
|
|
"created_at",
|
|
"updated_at",
|
|
"data_version",
|
|
"content_hash"
|
|
],
|
|
"properties": {
|
|
"tenant_id": {
|
|
"type": "string",
|
|
"pattern": "^TENANT-[A-Z0-9-]{4,64}$",
|
|
"description": "学校租户标识,所有存储、任务和查询必须同时校验。"
|
|
},
|
|
"record_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"description": "平台全局唯一记录标识。"
|
|
},
|
|
"internship_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 128,
|
|
"description": "学校租户内的实习业务编号。"
|
|
},
|
|
"student_token": {
|
|
"type": "string",
|
|
"pattern": "^STU_[A-Za-z0-9_-]{32,128}$",
|
|
"description": "学校侧生成的学生不可逆令牌,禁止传输姓名、身份证和明文学号。"
|
|
},
|
|
"cohort": {
|
|
"type": ["integer", "null"],
|
|
"minimum": 2000,
|
|
"maximum": 2100,
|
|
"description": "学生届次。"
|
|
},
|
|
"college_code": {
|
|
"type": ["string", "null"],
|
|
"maxLength": 64,
|
|
"description": "学校内部学院代码。"
|
|
},
|
|
"program_code": {
|
|
"type": "string",
|
|
"pattern": "^[0-9A-Z]{4,12}$",
|
|
"description": "教育部职业教育专业目录代码。"
|
|
},
|
|
"enterprise_token": {
|
|
"type": ["string", "null"],
|
|
"pattern": "^ENT_[A-Za-z0-9_-]{24,128}$",
|
|
"description": "学校侧或平台企业主数据生成的企业令牌。"
|
|
},
|
|
"enterprise_name": {
|
|
"type": ["string", "null"],
|
|
"maxLength": 300,
|
|
"description": "用于业务核验的企业名称;导出时按数据范围策略处理。"
|
|
},
|
|
"enterprise_industry_code": {
|
|
"type": ["string", "null"],
|
|
"maxLength": 32,
|
|
"description": "企业行业代码。"
|
|
},
|
|
"region_code": {
|
|
"type": ["string", "null"],
|
|
"pattern": "^[0-9]{6}$",
|
|
"description": "实习地区 GB/T 2260 六位代码。"
|
|
},
|
|
"workplace": {
|
|
"type": ["string", "null"],
|
|
"maxLength": 500,
|
|
"description": "实习地点业务文本。"
|
|
},
|
|
"job_title": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 200,
|
|
"description": "实习岗位名称。"
|
|
},
|
|
"job_code": {
|
|
"type": ["string", "null"],
|
|
"maxLength": 32,
|
|
"description": "映射到统一岗位词典后的岗位代码。"
|
|
},
|
|
"job_tasks": {
|
|
"type": "array",
|
|
"maxItems": 100,
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"type": "string",
|
|
"maxLength": 500
|
|
},
|
|
"description": "经学校确认的实习岗位任务。"
|
|
},
|
|
"start_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "实习开始日期。"
|
|
},
|
|
"end_date": {
|
|
"type": ["string", "null"],
|
|
"format": "date",
|
|
"description": "计划或实际结束日期。"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["planned", "active", "completed", "terminated", "cancelled"],
|
|
"description": "实习业务状态。"
|
|
},
|
|
"salary_monthly": {
|
|
"type": ["number", "null"],
|
|
"minimum": 0,
|
|
"maximum": 10000000,
|
|
"description": "确认后的税前月实习工资,单位元。"
|
|
},
|
|
"enterprise_mentor_evaluation": {
|
|
"type": ["string", "null"],
|
|
"maxLength": 4000,
|
|
"description": "企业导师业务评价,禁止包含学生敏感身份信息。"
|
|
},
|
|
"school_evaluation": {
|
|
"type": ["string", "null"],
|
|
"maxLength": 4000,
|
|
"description": "学校指导教师或管理部门评价。"
|
|
},
|
|
"evidence_reference": {
|
|
"type": ["string", "null"],
|
|
"maxLength": 256,
|
|
"description": "学校系统内的证据引用编号,不传输敏感附件。"
|
|
},
|
|
"source_system": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 128,
|
|
"description": "学校来源系统代码。"
|
|
},
|
|
"source_record_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 256,
|
|
"description": "校内来源系统记录标识。"
|
|
},
|
|
"source_updated_at": {
|
|
"type": ["string", "null"],
|
|
"format": "date-time",
|
|
"description": "校内来源系统业务更新时间,建议作为增量水位。"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "平台记录创建时间。"
|
|
},
|
|
"updated_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "平台记录更新时间。"
|
|
},
|
|
"data_version": {
|
|
"type": "string",
|
|
"pattern": "^SCH-INT-[0-9]{8}(?:-[0-9]{2})?$",
|
|
"description": "校内实习数据版本。"
|
|
},
|
|
"is_deleted": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "版本化软删除标识。"
|
|
},
|
|
"content_hash": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{64}$",
|
|
"description": "去除非业务差异后的记录内容 SHA-256。"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"if": {
|
|
"properties": {
|
|
"status": {
|
|
"enum": ["active", "completed"]
|
|
}
|
|
},
|
|
"required": ["status"]
|
|
},
|
|
"then": {
|
|
"anyOf": [
|
|
{
|
|
"properties": {
|
|
"enterprise_token": {
|
|
"type": "string",
|
|
"pattern": "^ENT_[A-Za-z0-9_-]{24,128}$"
|
|
}
|
|
},
|
|
"required": ["enterprise_token"]
|
|
},
|
|
{
|
|
"properties": {
|
|
"enterprise_name": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 300
|
|
}
|
|
},
|
|
"required": ["enterprise_name"]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|