using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using _0_Framework.Application;
using CompanyManagment.App.Contracts.Employee;
namespace WorkFlow.Application.Contracts.AdminWorkFlow;
public interface IAdminWorkFlowApplication
{
///
/// نمایش کارگاه های دارای مدارک بررسی نشده
///
List GetWorkshopDocumentsAwaitingReviewForChecker(List workshops);
List GetWorkshopsWithDocumentsAwaitingUploadForAdmin(
List workshops);
#region شروع به کار پرسنل افزوده شده
///
/// لیست کارگاه هایی که از کلاینت، پرسنلی را شروع به کار زدند
///
///
///
Task> GetWorkshopsForEmployeeStartWork(long accountId);
///
/// تعداد کارگاه هایی که از کلاینت پرسنلی را شروع به کار زدند
///
///
///
Task GetWorkshopsForEmployeeStartWorkCount(long accountId);
///
/// لیست پرسنل هایی که از سمت کلاینت شروع به کار خوردند
///
///
///
Task> GetClientEmployeesStartWork(long workshopId);
///
/// اطلاعات پرسنل برای ویرایش در مودال ادمین آپلود مدارک در هنگام رد شدن مدرک توسط ناظر
///
///
///
///
Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId,
long workshopId);
Task EditEmployeeInEmployeeDocumentWorkFlow(EditEmployeeInEmployeeDocument command);
#endregion
Task GetEmployeeDocumentWorkFlowCountsForAdmin(List workshopIds);
Task GetWorkFlowCountsForAdmin(List workshopIds, long accountId);
Task GetWorkFlowCountForChecker();
#region ترک کار موقت
///
/// لیست کارگاه هایی که از کلاینت، پرسنلی را ترک کار زدند
///
///
///
Task> GetWorkshopsForLeftWorkTemp(long accountId);
///
/// لیست پرسنل هایی که از سمت کلاینت ترک کار موقت خوردند
///
///
///
Task> GetEmployeesForLeftWorkTemp(long workshopId);
Task GetWorkshopsForLeftWorkTempCount(long accountId);
#endregion
}
///
/// پرسنل هایی که دارای ترک کار موقت هستند در کارپوشه ادمین
///
public class ClientLeftWorkEmployeesWorkFlowViewModel
{
///
/// آیدی پرسنل
///
public long EmployeeId { get; set; }
///
/// آیدی کارگاه
///
public long WorkshopId { get; set; }
///
/// نام پرسنل
///
public string EmployeeName { get; set; } = string.Empty;
///
/// تاریخ ترک کار
///
public string LeftWorkDate { get; set; } = string.Empty;
}
///
/// کارگاه هایی که پرسنل دارای ترک کار موقت دارند در کارپوشه ادمین
///
public class WorkshopWithLeftWorkWorkFlowViewModel
{
///
/// آیدی کارگاه
///
public long WorkshopId { get; set; }
///
/// نام کارگاه
///
public string WorkshopName { get; set; } = string.Empty;
///
/// نام کارفرما
///
public string EmployerName { get; set; } = string.Empty;
///
/// تعداد پرسنل ترک کار کرده
///
public int LeftWorkEmployeesCount { get; set; }
}