using Butter.Dtos;
using Butter.Dtos.Person;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Infrastructure;

namespace Lactose.Controllers;

[ApiController]
[Authorize]
[Route("api/[controller]")]
public class PersonController : ControllerBase {
    [HttpGet("{id}")]
    public ActionResult<PersonDetailedDto> Get([FromRoute] Guid id, [FromRoute] uint? assets=100, [FromRoute] uint? albums=100) => throw new NotImplementedException();
    
    [HttpGet]
    public ActionResult<List<PersonPreviewDto>> GetAll(PagedSearchParametersDto pagedSearch) => throw new NotImplementedException();
    
    [HttpPost("{id}")]
    [Authorize(Roles = "Admin, Curator")]
    public IStatusCodeActionResult Update([FromRoute] Guid id, [FromBody] PersonUpdateDto dto) =>throw new NotImplementedException();
    [HttpPost]
    [Authorize(Roles = "Admin, Curator")]
    public IStatusCodeActionResult BulkUpdate([FromBody]BulkDto<PersonUpdateDto> personBulkDto)=>throw new NotImplementedException();
    [HttpDelete("{id}")]
    [Authorize(Roles = "Admin, Curator")]
    public IStatusCodeActionResult Delete([FromRoute] Guid id)=>throw new NotImplementedException();
    
    [HttpDelete]
    [Authorize(Roles = "Admin, Curator")]
    public IStatusCodeActionResult BulkDelete([FromBody] List<Guid> ids)=>throw new NotImplementedException();
    
    [HttpPut]
    [Authorize(Roles = "Admin, Curator")]
    public ActionResult<Guid> Create([FromBody] PersonCreateDto dto)=>throw new NotImplementedException();
}