using _0_Framework.Application;
using System.Collections.Generic;
using System.Threading.Tasks;
using AccountManagement.Application.Contracts.ProgramManager;
namespace AccountManagement.Application.Contracts.Account;
public interface IAccountApplication
{
AccountViewModel GetAccountBy(long id);
///
/// ایجاد کاربر گزارشگیر و پروگرام منیجر
///
///
///
Task Create(CreateAccount command);
OperationResult RegisterClient(RegisterAccount command);
Task Edit(EditAccount command);
OperationResult EditClient(EditClientAccount command);
OperationResult ChangePassword(ChangePassword command);
OperationResult Login(Login command);
OperationResult LoginWithMobile(long id);
EditAccount GetDetails(long id);
List Search(AccountSearchModel searchModel);
void Logout();
List GetAccounts();
List GetClientsAccount();
Task SetVerifyCode(string phone, long id);
Task SendVerifyCodeToChangingPass(string phone, long id);
EditAccount GetByVerifyCode(string code, string phone);
EditAccount GetByUserNameAndId(long id, string username);
OperationResult Active(long id);
OperationResult DeActive(long id);
OperationResult DirectLogin(long id);
AccountLeftWorkViewModel WorkshopList(long accountId);
OperationResult SaveWorkshopAccount(
List workshopAccountList,
string startDate,
string leftDate,
long accountId);
OperationResult CreateNewWorkshopAccount(long currentAccountId, long newAccountId);
#region Mahan
List AccountsForAssign(long taskId);
List GetAccountsByPositionId(long positionId);
List GetAccountEqualToLowerPositionValue();
Task> GetAdminSelectList();
OperationResult ReLogin();
#endregion
#region Pooya
//UserClaimsResponseDTO GetClaimsForSignIn(Login command);
OperationResult ChangePasswordAndPhoneNumber(AccountChangePasswordAndPhoneNumber command);
OperationResult IsPhoneNumberAndPasswordValid(long accountId, string phoneNumber, string password, string rePassword);
#endregion
OperationResult DirectCameraLogin(long cameraAccountId);
///
/// چک میکند که آیا اکانتی با این نام کاربری وجود دارد یا نه
///
///
///
public bool CheckExistClientAccount(string userName);
List GetAdminAccountsNew();
void CameraLogin(CameraLoginRequest request);
///
/// دریافت کاربر پروگرام منیجر با اکانت آی دی
///
///
///
Task GetPmUserByAccountId(long accountId);
}
public class CameraLoginRequest
{
public string UserName { get; set; }
public string Password { get; set; }
}