using SqlSugar;
using System.ComponentModel.DataAnnotations;
using System.Net;
using System.Text.Json;
using UserCenter.Model.Enum;
using UserCenter.Model.Interface;
using VideoAnalysisCore.AICore.GPT.Dto;
using VideoAnalysisCore.AICore.SherpaOnnx;
using VideoAnalysisCore.Model.Enum;
using VideoAnalysisCore.Model.Interface;
using Whisper.net;
namespace VideoAnalysisCore.Model
{
///
/// 视频任务模型
///
[SugarTable("videotask")]
public class VideoTask: IDB,IDFilter
{
///
/// 任务id
/// 视频音频文件地址都使用taskID能获取
///
[SugarColumn(IsPrimaryKey = true)]
public long Id { get; set; }
///
/// 媒体路径
///
public string MediaUrl { get; set; } = string.Empty;
///
/// 下载后本地媒体目录
///
public string LocalMediaPath { get; set; } = string.Empty;
///
/// 上一次执行的枚举
///
public RedisChannelEnum LastEnum { get; set; }
///
/// ApiKey
///
public string ApiToken { get; set; } = string.Empty;
///
/// 请求来自哪个ip地址
///
public string ComeFrom { get; set; } = string.Empty;
///
/// 视频学科, null视为无学科
///
[SugarColumn( IsNullable = true)]
public SubjectEnum? Subject { get; set; }
///
/// 学科网的课程id
///
public long CourseId { get; set; }
///
/// 教育阶段
///
public EducationStageEnum EducationStage { get; set; }
///
/// 视频类型
/// 常规,教研,PPT...
///
[SugarColumn(IsNullable = true)]
public AttachmentsInfoType? VideoType { get; set; }
///
/// 自定义值 任务完成后附带通知
///
[SugarColumn(Length = 500, IsNullable = true)]
public string? Tag { get; set; }
///
/// 自定义值Id
///
[SugarColumn(Length = 50, ColumnDataType = "varchar", IsNullable =true)]
public string? TagId { get; set; }
///
/// 授课视频对应PPT视频ID
///
[SugarColumn(Length = 255, ColumnDataType = "varchar", IsNullable = true)]
public string? PPTVideoCode { get; set; }
///
/// 授课视频对应PPT视频ID
///
[SugarColumn(Length = 255, ColumnDataType = "varchar", IsNullable = true)]
public string? PPTVideoUrl { get; set; }
///
/// 授课视频对应PPT视频关键帧
///
[SugarColumn(ColumnDataType = "longtext",IsNullable = true)]
public string? PPTKeyFrame { get; set; }
///
/// 字幕缓存
///
[SugarColumn(ColumnName = "Captions", ColumnDataType = "longtext", IsNullable = true)]
public string Captions { get; set; } = "[]";
///
/// 字幕缓存[AI优化]
///
[SugarColumn(ColumnName = "CaptionsAI", ColumnDataType = "longtext", IsNullable = true)]
public string? CaptionsAI { get; set; }
///
/// 说话人日志解析缓存
///
[SugarColumn(ColumnName = "Speaker", ColumnDataType = "longtext", IsNullable = true)]
public string Speaker { get; set; } = "[]";
///
/// Chat模型分析缓存
///
[SugarColumn(ColumnName = "ChatAnalysis", ColumnDataType = "longtext", IsNullable = true)]
public string ChatAnalysis { get; set; } = "{}";
///
/// AI模型评分
///
[SugarColumn(IsNullable =true)]
public decimal? ChatAnalysisScore { get; set; }
///
/// 消耗token
///
public int TotalTokens { get; set; }
///
/// 错误信息
///
[SugarColumn(ColumnDataType = "text", IsNullable = true)]
public string? ErrorMessage { get; set; }
///
/// 创建时间
///
public DateTime CreateTime { get; set; } = DateTime.Now;
///
/// 任务结束时间
///
[SugarColumn( IsNullable = true)]
public DateTime? EndTime { get; set; }
///
/// 授课章节
///
[SugarColumn(IsNullable = true)]
public string? Sections { get; set; }
///
/// 视频所属云校ID
/// 用户中心的云校id
///
[SugarColumn(IsNullable = true)]
public long? CloudSchoolId { get; set; }
///
/// 教材层次
///
[SugarColumn(IsNullable = true)]
public CourselevelTypeEnum? CourseLevel { get; set; }
///
/// 年级
///
[SugarColumn(IsNullable = true)]
public GradeEnum? GradeId { get; set; }
///
/// 年级册(上册/下册)
///
[SugarColumn(IsNullable = true)]
public GradeSemesterEnum? GradeSemester { get; set; }
///
/// 学科网的教材版本Id
///
public long TextBookVersionId { get; set; }
}
}