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


public class AuditRecordView : AuditRecordAddOrEdit
{
    public Guid CreateUserId { get; set; }
    public DateTime CreateTime { get; set; }
    public Guid UpdateUserId { get; set; }
    public DateTime UpdateTime { get; set; }


    public new List<Guid> IdnetityUserIdList => IdentityUserList.Select(t => t.Id).ToList();
    public List<AuditIdentiUserInfo> IdentityUserList { get; set; }
}

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

    public string UserName { get; set; }

    public string FullName { get; set; }
}

public class AuditRecordAddOrEdit
{
    public Guid? Id { get; set; }
    public string CompanyName { get; set; }

    public string AuditContent { get; set; }

    public DateOnly AuditTime { get; set; }


    public DateTime? BeginTime { get; set; }

    public DateTime? EndTime { get; set; }

    public AuditState AuditState { get; set; }

    public AuditType AuditType { get; set; }

    public bool IsViewTrainingRecord { get; set; }

    //public List<Guid> IdnetityUserIdList { get; set; }
}

public class AddOrDeleteAuditUserCommand
{
    public Guid AuditRecordId { get; set; }

    public List<Guid> IdentityUserIdList { get; set; }

    public bool IsAdd { get; set; }
}

public class AuditRecordQuery : PageInput
{
    public string? CompanyName { get; set; }

    public string? AuditContent { get; set; }

    public DateOnly? BeginAuditTime { get; set; }
    public DateOnly? EndAuditTime { get; set; }


    public DateTime? BeginTime { get; set; }

    public DateTime? EndTime { get; set; }

    public AuditState? AuditState { get; set; }

    public AuditType? AuditType { get; set; }


    public DateTime? BeginCreateTime { get; set; }

    public DateTime? EndCreateTime { get; set; }

    public string? IdentityUserName { get; set; }

    public bool? IsViewTrainingRecord { get; set; }
}

public class SetAuditRecordPermissionCommand
{

    public List<Guid> AuditDocumentIdList { get; set; }

    public Guid AuditRecordId { get; set; }

    public bool IsAuthorization { get; set; }
}


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

    public AuditDocumentType AuditDocumentTypeEnum { get; set; }
    public Guid? ParentId { get; set; }

    public Guid? MainFileId { get; set; }
}

public class DeleteAuditDocumentInDto
{
    public List<Guid> Ids { get; set; }
}

public class GetAuditDocumentDataInDto : PageInput
{
    public Guid? Id { get; set; }

    public Guid? SelfId { get; set; }


    public bool? IsAuthorization { get; set; }

    public bool? IsCurrentAuditRecordAuthorization { get; set; }

    public string Name { get; set; } = string.Empty;

    //当前稽查记录Id
    public Guid? AuditRecordId { get; set; }
}

public class GetAuditDocumentDataOutDto
{
    public List<AuditDocumentData> Data { get; set; } = new List<AuditDocumentData> { };
}

public class AuditDocumentData : AuditDocumentUpdateDto
{
    public DateTime CreateTime { get; set; }

    public DateTime UpdateTime { get; set; }

    public Guid? MainFileId { get; set; }


    public int? Version { get; set; }

    public int HistoricalVersionsCount { get; set; }
    public List<AuditDocumentData> Children { get; set; } = new List<AuditDocumentData>() { };


    public bool? IsCurrentAuditRecordAuthorization { get; set; }

}

public class AuditDocumentView : AuditDocumentAddOrEdit
{

    public DateTime CreateTime { get; set; }

    public DateTime UpdateTime { get; set; }

}

public class SetIsAuthorizationInDto
{
    public List<Guid> Ids { get; set; }

    public bool IsAuthorization { get; set; }
}

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

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

public class GetHistoricalVersionOutDto
{
    public AuditDocumentData CurrentData { get; set; }
    public List<AuditDocumentData> HistoricalVersionList { get; set; } = new List<AuditDocumentData> { };
}

public class MovieFileOrFolderInDto
{
    public List<Guid> Ids { get; set; }

    public Guid? ParentId { get; set; }
}

public class HistoricalVersionDto : AuditDocumentUpdateDto
{
    public bool IsCurrentVersion { get; set; } = false;

    public int? Version { get; set; }

    public DateTime CreateTime { get; set; }

    public DateTime UpdateTime { get; set; }
}

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

    public AuditDocumentType AuditDocumentTypeEnum { get; set; }

    public string? FileFormat { get; set; }

    public string? FilePath { get; set; }

    public decimal? FileSize { get; set; }

    public bool IsAuthorization { get; set; }

    // public Guid? MainFileId { get; set; }

    public string Name { get; set; }

    public Guid? ParentId { get; set; }
}

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

public class AuditDocumentAddOrEdit : AuditDocumentUpdateDto
{


    public List<AuditDocumentAddOrEdit> Children { get; set; } = new List<AuditDocumentAddOrEdit>() { };

    public bool IsUpdate { get; set; } = true;
}

public class AuditDocumentQuery : PageInput
{
    public AuditDocumentType? AuditDocumentTypeEnum { get; set; }

    public string? FileFormat { get; set; }

    public string? FilePath { get; set; }

    public decimal? FileSize { get; set; }

    public bool? IsAuthorization { get; set; }

    public Guid? MainFileId { get; set; }

    public string? Name { get; set; }

    public Guid? ParentId { get; set; }

}




