using _0_Framework.Application; using CompanyManagment.App.Contracts.Law; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; namespace ServiceHost.Areas.Admin.Controllers; public class LawController : AdminBaseController { private readonly ILawApplication _lawApplication; public LawController(ILawApplication lawApplication) { _lawApplication = lawApplication; } /// /// لیست قوانین بر اساس انواع تعریف شده در enum /// /// [HttpGet] public async Task>> GetList(LawSearchModel searchModel) { return await _lawApplication.GetList(searchModel); } /// /// جزئیات قانون بر اساس نوع /// /// نوع قانون /// [HttpGet("by-type/{type}")] [AllowAnonymous] public async Task> GetLawByType(LawType type) { return await _lawApplication.GetLawByType(type); } /// /// ایجاد یا ویرایش قانون بر اساس نوع /// /// /// [HttpPut("upsert")] public ActionResult UpsertLaw([FromBody] EditLaw command) { var result = _lawApplication.UpsertLaw(command); return result; } /// /// فعال‌سازی قانون /// /// نوع قانون /// [HttpPatch("{type}/activate")] public ActionResult Activate(LawType type) { var result = _lawApplication.ActivateByType(type); return result; } /// /// غیرفعال‌سازی قانون /// /// نوع قانون /// [HttpPatch("{type}/deactivate")] public ActionResult Deactivate(LawType type) { var result = _lawApplication.DeactivateByType(type); return result; } }