
//--------------------------------------------------------------------
//     此代码由liquid模板自动生成  byzhouhang 20240909
//	   生成时间 2026-03-10 06:15:31Z 
//     对此文件的更改可能会导致不正确的行为，并且如果重新生成代码，这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
namespace IRaCIS.Core.Application.ViewModel;

public class SubjectFileUploadRecordView
{
    public string? SubjectCode { get; set; }

    public string? VisitName { get; set; }

    public string StudyCode { get; set; }

    public Guid? SubjectId { get; set; }

    public Guid? SubjectVisitId { get; set; }

    public int FileCount { get; set; }


    public string? UploadRegion { get; set; }
    public string? TargetRegion { get; set; }


    public DateTime CreateTime { get; set; }
    public DateTime? SyncFinishedTime { get; set; }

    public bool IsSync { get; set; }
}

public class FileUploadRecordView : FileUploadRecordAddOrEdit
{

    public DateTime CreateTime { get; set; }

    public DateTime UpdateTime { get; set; }



    [Comment("同步结束时间-最后一个任务的时间")]
    public DateTime? SyncFinishedTime { get; set; }


    public string? SubjectCode { get; set; }

    public string? VisitName { get; set; }

}


public class FileUploadRecordAddOrEdit
{
    public Guid? Id { get; set; }


    public string FileName { get; set; }

    public long FileSize { get; set; }

    public string FileType { get; set; }

    public string Path { get; set; }


    public string UploadBatchId { get; set; }
    public BatchDataType BatchDataType { get; set; }

    public string StudyCode { get; set; }

    public Guid? TrialId { get; set; }

    public Guid? SubjectId { get; set; }

    public Guid? SubjectVisitId { get; set; }

    public Guid? DicomStudyId { get; set; }

    public Guid? NoneDicomStudyId { get; set; }



    public string FileMarkId { get; set; }

    public int? Priority { get; set; }
    public string IP { get; set; }
    public bool? IsNeedSync { get; set; }
    public string UploadRegion { get; set; }
    public string TargetRegion { get; set; }

    public bool? IsSync { get; set; }
}

public class CommonUploadRecordDto: CommonUploadRecordAddOrEdit
{

}

public class CommonUploadRecordAddOrEdit
{
    public Guid? Id { get; set; }
    public string FileType { get; set; }

    public string FileName { get; set; }

    public long FileSize { get; set; }

    public string Path { get; set; }
}
public class SubjectFileUploadRecordQuery : PageInput
{
    public Guid TrialId { get; set; }

    public string? SubjectCode { get; set; }

    public string? VisitName { get; set; }

    public string? StudyCode { get; set; }

    public string? UploadRegion { get; set; }
    public string? TargetRegion { get; set; }

    public bool? IsSync { get; set; }


}

public class FileUploadRecordQuery : PageInput
{

    public BatchDataType? BatchDataType { get; set; }

    public Guid? TrialId { get; set; }

    public int? DataFileType { get; set; }

    public string StudyCode { get; set; }

    public string? SubjectCode { get; set; }

    public string? VisitName { get; set; }


    public Guid? SubjectId { get; set; }

    public Guid? SubjectVisitId { get; set; }



    public string? FileMarkId { get; set; }

    public string? FileName { get; set; }


    public string? FileType { get; set; }

    public string? IP { get; set; }

    public bool? IsNeedSync { get; set; }

    public bool? IsSync { get; set; }


    public string? Path { get; set; }

    public int? Priority { get; set; }

    public string? TargetRegion { get; set; }


    public string? UploadBatchId { get; set; }

    public string? UploadRegion { get; set; }


    public DateTime? SyncFinishedStartTime { get; set; }

    public DateTime? SyncFinishedEndTime { get; set; }

    public DateTime? UploadStartTime { get; set; }

    public DateTime? UploadEndTime { get; set; }
}



public class UploadFileSyncRecordView
{
    public Guid Id { get; set; }


    public DateTime? StartTime { get; set; }

    public DateTime? EndTime { get; set; }

    public jobState JobState { get; set; }


    public string Msg { get; set; }

    public DateTime CreateTime { get; set; }

    public DateTime UpdateTime { get; set; }


    public Guid? FileUploadRecordId { get; set; }
    public string? FileName { get; set; }

    public string? FileType { get; set; }

    public string? Path { get; set; }


    public string StudyCode { get; set; }

    public string? SubjectCode { get; set; }

    public string? VisitName { get; set; }



}

public class UploadFileSyncRecordQuery : PageInput
{

    public Guid? FileUploadRecordId { get; set; }


    public jobState? JobState { get; set; }

    public string? SubjectCode { get; set; }

    public string? VisitName { get; set; }

    public string? StudyCode { get; set; }
}

public class BatchAddSyncFileCommand
{
    public List<Guid> FileUploadRecordIdList { get; set; }

    public int? Priority { get; set; }
}
