{ "$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"] } ] } } ] }