Files
Backend-Api/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs

126 lines
4.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application;
using _0_Framework.Application.Enums;
using CompanyManagment.App.Contracts.InstitutionContract;
using CompanyManagment.App.Contracts.InstitutionPlan;
using Microsoft.AspNetCore.Mvc;
namespace CompanyManagment.App.Contracts.TemporaryClientRegistration;
public interface ITemporaryClientRegistrationApplication
{
/// <summary>
/// احراز هویت
/// </summary>
/// <param name="nationalCode"></param>
/// <param name="dateOfBirth"></param>
/// <param name="mobile"></param>
/// <returns></returns>
Task<OperationResult<ContractingPartyTempViewModel>> CreateContractingPartyTemp(string nationalCode, string dateOfBirth, string mobile);
/// <summary>
/// تکمیل اطلاعات
/// </summary>
/// <param name="id"></param>
/// <param name="state"></param>
/// <param name="city"></param>
/// <param name="address"></param>
/// <returns></returns>
Task<OperationResult> UpdateAddress(long id, string state, string city, string address);
/// <summary>
/// دریافت کارگاه های ذخیره شده
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <returns></returns>
Task<List<WorkshopTempViewModel>> GetWorkshopTemp(long contractingPartyTempId);
/// <summary>
/// ایجاد یا ویرایش کارگاه و سرویس های آن
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> CreateOrUpdateWorkshopTemp(List<WorkshopTempViewModel> command, long contractingPartyTempId);
/// <summary>
/// دریافت جمع کل خدمات برای یک کارگاه
/// </summary>
/// <param name="workshop"></param>
/// <returns></returns>
InstitutionPlanViewModel GetInstitutionPlanForWorkshop(WorkshopTempViewModel workshop);
/// <summary>
/// دریافت مبالغ بررسی و پرداخت
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <param name="duration"></param>
/// <param name="paymentModel"></param>
/// <returns></returns>
Task<ReviewAndPaymentViewModel> GetTotalPaymentAndWorkshopList(long contractingPartyTempId,
InstitutionContractDuration duration = InstitutionContractDuration.TwelveMonths, string paymentModel = "OneTime", string contractStartType = "currentMonth");
/// <summary>
/// دریافت مبالغ بررسی و پرداخت با لیست کارگاه ها
/// این متد برای زمانی است که کارگاه ها در مرحله ثبت نام موقت هستند
/// و هنوز در دیتابیس ثبت نشده اند
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <param name="workshopList"></param>
/// <param name="duration"></param>
/// <param name="paymentModel"></param>
/// <param name="contractStartType"></param>
/// <returns></returns>
Task<ReviewAndPaymentViewModel> GetTotalPaymentAndWorkshopList(long contractingPartyTempId,
List<WorkshopTempViewModel> workshopList,
InstitutionContractDuration duration = InstitutionContractDuration.TwelveMonths, string contractStartType = "currentMonth");
/// <summary>
/// ایجاد یا ویرایش قرارداد موقت
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <returns></returns>
Task<OperationResult> CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart);
/// <summary>
/// دریافت کد برای کلاینت
/// از طرف سرور
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <returns></returns>
Task<OperationResult> ReceivedCodeFromServer(long contractingPartyTempId);
/// <summary>
/// ورود کد از طرف کلاینت
/// برا چک کردن
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <param name="verifyCode"></param>
/// <returns></returns>
Task<OperationResult> CheckVerifyCodeIsTrue(long contractingPartyTempId, string verifyCode);
/// <summary>
/// تکمیل پرداخت
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <param name="verifyCode"></param>
/// <returns></returns>
Task<OperationResult> PayOffCompleted(long contractingPartyTempId);
/// <summary>
/// ارسال لینک تایید قوانین و مقررات به طرف حساب
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <returns></returns>
Task<OperationResult> SendAgreementLink(long contractingPartyTempId);
}