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 }