using _0_Framework.Application;
using _0_Framework.Application.Enums;
using CompanyManagment.App.Contracts.Employer;
using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers;
namespace ServiceHost.Areas.Admin.Controllers;
public class EmployerController : AdminBaseController
{
private readonly IEmployerApplication _employerApplication;
public EmployerController(IEmployerApplication employerApplication)
{
_employerApplication = employerApplication;
}
///
/// لیست کارفرما
///
///
///
[HttpGet]
public async Task>> GetList(GetEmployerSearchModel searchModel)
{
return await _employerApplication.GetEmployerList(searchModel);
}
///
/// جزئیات کارفرمای حقوقی
///
///
///
[HttpGet("legal/{id}")]
public async Task> GetLegalEmployer(long id)
{
var employerDetail = await _employerApplication.GetLegalEmployerDetail(id);
return employerDetail;
}
///
/// جزئیات کارفرمای حقیقی
///
///
///
[HttpGet("real/{id}")]
public async Task> GetRealEmployer(long id)
{
var employerDetail = await _employerApplication.GetRealEmployerDetail(id);
return employerDetail;
}
///
/// ایجاد کارفرمای حقیقی
///
///
///
[HttpPost("real")]
public async Task> CreateRealEmployer([FromBody] CreateRealEmployer command)
{
var result = await _employerApplication.CreateReal(command);
return result;
}
///
/// ایجاد کارفرما حقوقی
///
///
///
[HttpPost("legal")]
public async Task> CreateLegalEmployer([FromBody] CreateLegalEmployer command)
{
var result = await _employerApplication.CreateLegal(command);
return result;
}
///
/// ویرایش کارفرما حقیقی
///
///
///
[HttpPut("real")]
public async Task> EditRealEmployer([FromBody] EditRealEmployer command)
{
var result = await _employerApplication.EditReal(command);
return result;
}
///
/// ویرایش کارفرما حقوقی
///
///
///
[HttpPut("legal")]
public async Task> EditLegalEmployer([FromBody] EditLegalEmployer command)
{
var result = await _employerApplication.EditLegal(command);
return result;
}
///
/// حذف کارفرما - درصورت داشتن کارگاه، کارفرما غیرفعال میشود
///
///
///
[HttpDelete("{id}")]
public async Task>> Remove(long id)
{
var result = await _employerApplication.Remove(id);
return result;
}
///
/// سلکت لیست کارفرما برای جستجو
///
///
[HttpGet("select_list")]
public async Task> GetSelectList(string search, long id,LegalType? legalType=null)
{
return await _employerApplication.GetSelectList(search, id,legalType);
}
}