using _0_Framework.Application;
using _0_Framework.Application.Enums;
using _0_Framework.Application.Sms;
using CompanyManagment.App.Contracts.InstitutionContract;
using CompanyManagment.App.Contracts.SmsResult;
using CompanyManagment.App.Contracts.SmsResult.Dto;
using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers;
namespace ServiceHost.Areas.Admin.Controllers;
public class SmsReportController : AdminBaseController
{
private readonly ISmsResultApplication _smsResultApplication;
private readonly ISmsSettingApplication _smsSettingApplication;
private readonly ISmsService _smsService;
public SmsReportController(ISmsResultApplication smsResultApplication, ISmsService smsService, ISmsSettingApplication smsSettingApplication)
{
_smsResultApplication = smsResultApplication;
_smsService = smsService;
_smsSettingApplication = smsSettingApplication;
}
///
/// دریافت لیست پیامک ها
///
///
///
[HttpGet]
public async Task> GetSmsReportList(SmsReportSearchModel searchModel)
{
var result =await _smsResultApplication.GetSmsReportList(searchModel);
return result;
}
///
/// دریافت اطلاعات هر تاریخ برای اکسپند
///
///
///
///
///
[HttpGet("GetExpandedList")]
public async Task> GetSmsReportExpandList(SmsReportSearchModel searchModel, string date, string typeOfSmsSetting)
{
var result =await _smsResultApplication.GetSmsReportExpandList(searchModel, date, typeOfSmsSetting);
return result;
}
///
/// گزارش ای پی آی
///
///
///
///
[HttpGet("GetApiReport")]
public async Task> GetApiReport(string startDate, string endDate)
{
var result =await _smsService.GetApiReport(startDate, endDate);
return result;
}
//تنظیمات پیامک خودکار
#region SmsSettings
///
/// لیست تنظیمات پیامک - یادآور
///
///
[HttpGet("ReminderSmsSettingList")]
public async Task> ReminderSmsSettingList()
{
var result = await _smsSettingApplication.GetSmsSettingList(TypeOfSmsSetting.InstitutionContractDebtReminder);
return result;
}
///
/// لیست تنظیمات پیامک - مسدودی
///
///
[HttpGet("BlockSmsSettingList")]
public async Task> BlockSmsSettingList()
{
var result = await _smsSettingApplication.GetSmsSettingList(TypeOfSmsSetting.BlockContractingParty);
return result;
}
///
/// لیست تنظیمات پیامک - هشدار قضایی
///
///
[HttpGet("WarningSmsSettingList")]
public async Task> WarningSmsSettingList()
{
var result = await _smsSettingApplication.GetSmsSettingList(TypeOfSmsSetting.Warning);
return result;
}
///
/// لیست تنظیمات پیامک - اقدام قضایی
///
///
[HttpGet("LegalActionSmsSettingList")]
public async Task> LegalActionSmsSettingList()
{
var result = await _smsSettingApplication.GetSmsSettingList(TypeOfSmsSetting.LegalAction);
return result;
}
///
/// لیست تنظیمات پیامک - تایید قراداد مالی
///
///
[HttpGet("ContractConfirmSmsSettingList")]
public async Task> ContractConfirmSmsSettingList()
{
var result = await _smsSettingApplication.GetSmsSettingList(TypeOfSmsSetting.InstitutionContractConfirm);
return result;
}
//=====================Create=========================
///
/// ایجاد پیامک یادآور
///
///
///
///
///
[HttpPost("CreateReminderSmsSetting")]
public async Task> CreateReminderSmsSetting([FromBody] int dayOfMonth, string timeOfDay)
{
var result = await _smsSettingApplication.CreateSmsSetting(dayOfMonth, timeOfDay, TypeOfSmsSetting.InstitutionContractDebtReminder);
return result;
}
///
/// ایجاد پیامک مسدودی
///
///
///
///
[HttpPost("CreateBlockSmsSetting")]
public async Task> CreateBlockSmsSetting([FromBody] int dayOfMonth, string timeOfDay)
{
var result = await _smsSettingApplication.CreateSmsSetting(dayOfMonth, timeOfDay, TypeOfSmsSetting.BlockContractingParty);
return result;
}
///
/// ایجاد پیامک هشدار قضایی
///
///
///
///
[HttpPost("CreateWarningSmsSetting")]
public async Task> CreateWarningSmsSetting([FromBody] int dayOfMonth, string timeOfDay)
{
var result = await _smsSettingApplication.CreateSmsSetting(dayOfMonth, timeOfDay, TypeOfSmsSetting.Warning);
return result;
}
///
/// ایجاد پیامک اقدام قضایی
///
///
///
///
[HttpPost("CreateLegalActionSmsSetting")]
public async Task> CreateLegalActionSmsSetting([FromBody] int dayOfMonth, string timeOfDay)
{
var result = await _smsSettingApplication.CreateSmsSetting(dayOfMonth, timeOfDay, TypeOfSmsSetting.LegalAction);
return result;
}
///
/// ایجاد پیامک تایید قرارداد مالی
///
///
///
///
[HttpPost("CreateContractConfirmSmsSetting")]
public async Task> CreateContractConfirmSmsSetting([FromBody] int dayOfMonth, string timeOfDay)
{
var result = await _smsSettingApplication.CreateSmsSetting(dayOfMonth, timeOfDay, TypeOfSmsSetting.InstitutionContractConfirm);
return result;
}
//=====================Edit=========================
///
/// دریافت اطلاعات ویرایش تنظیمات پیامک
///
///
///
[HttpGet("GetEditData")]
public async Task GetEditData(long id)
{
return await _smsSettingApplication.GetSmsSettingDataToEdit(id);
}
///
/// ویرایش تنظیمات پیامک
///
///
///
[HttpPut("EditSmsSetting")]
public async Task> EditSmsSetting([FromBody] SmsSettingDto command)
{
var result =await _smsSettingApplication.EditSmsSetting(command);
return result;
}
//=====================Remove=========================
///
/// حذف تنظیمات پیامک
///
///
///
[HttpDelete]
public async Task RemoveSmsSetting(long id)
{
await _smsSettingApplication.RemoveSetting(id);
}
///
/// دریافت لیست ارسال آنی یادآور
///
///
[HttpGet("GetInstantReminderSmsListData")]
public async Task> GetInstantReminderSmsListData()
{
var result =await _smsSettingApplication.GetInstantReminderSmsListData(TypeOfSmsSetting.InstitutionContractDebtReminder);
return result;
}
///
/// دریافت لیست ارسال آنی مسدودی
///
///
[HttpGet("GetInstantBlockSmsListData")]
public async Task> GetInstantBlockSmsListData()
{
var result = await _smsSettingApplication.GetInstantReminderSmsListData(TypeOfSmsSetting.BlockContractingParty);
return result;
}
///
/// ارسال پیامک آنی یادآور
///
///
///
[HttpPost("InstantReminderSmsSend")]
public async Task> InstantReminderSmsSend([FromBody ]List phoneNumbers)
{
var result = await _smsSettingApplication.InstantSmsSendApi(TypeOfSmsSetting.InstitutionContractDebtReminder, phoneNumbers);
return result;
}
///
/// ارسال پیامک آنی مسدودی
///
///
///
[HttpPost("InstantBlockSmsSend")]
public async Task> InstantBlockSmsSend([FromBody] List phoneNumbers)
{
var result = await _smsSettingApplication.InstantSmsSendApi(TypeOfSmsSetting.BlockContractingParty, phoneNumbers);
return result;
}
#endregion
}