package com.itsol.quantrivanphong.manager.project.projectgroup.controller;

import com.itsol.quantrivanphong.manager.project.projectgroup.bussiness.ProjectGroupBussiness;
import com.itsol.quantrivanphong.manager.project.projectgroup.dto.ProjectGroupDTO;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
public class ProjectGroupController {

    @Autowired
    private ProjectGroupBussiness projectGroupBussiness;

    //    thông tin của 1 nhóm dư án theo id của dự án
//    Team lead,Hr
    @GetMapping(value = "/thong-tin-du-an/{id}")
    public ResponseEntity getOneProjectGroup(@PathVariable("id") Integer projectId) {
        return ResponseEntity.ok(projectGroupBussiness.getGroupByProjectId(projectId));
    }


    @GetMapping(value = "/chi-tiet-thanh-vien-du-an/{id}")
    public ResponseEntity getOneEmployeeProject(@PathVariable("id") Integer employeeProjectId) {
        return ResponseEntity.ok(projectGroupBussiness.findEmployeeProjectById(employeeProjectId));
    }

    //    thêm thành viên vào dự án
//    hr,manager, teamlead thêm thành viên
    @PostMapping(value = "/them-thanh-vien")
    public ResponseEntity addMemberProject(@RequestBody ProjectGroupDTO projectGroupDTO) {
        WrapperResult wrapperResult = projectGroupBussiness.saveEmployeeProject(projectGroupDTO);
        return ResponseEntity.ok(wrapperResult);
    }

    //    cập nhật thông tin thành viên
//    manager cập nhật chức vụ cho nhân viên vào xét duyệt vào dự án
    @PutMapping(value = "/cap-nhat-chuc-vu-thanh-vien")
    public ResponseEntity updatePositionProject(@RequestBody ProjectGroupDTO projectGroupDTO) {
        WrapperResult wrapperResult = projectGroupBussiness.updateEmployeeProject(projectGroupDTO);
        return ResponseEntity.ok(wrapperResult);
    }
    @PutMapping(value = "/thanh-vien-out-nhom")
    public ResponseEntity updateMemberOutProject(@RequestBody ProjectGroupDTO projectGroupDTO) {
        WrapperResult wrapperResult = projectGroupBussiness.updateEmployeeOutGroup(projectGroupDTO);
        return ResponseEntity.ok(wrapperResult);
    }
    @DeleteMapping(value = "/xoa-thanh-vien-du-an")
    public ResponseEntity deleteMemberProject(@RequestBody ProjectGroupDTO projectGroupDTO){
        WrapperResult wrapperResult = projectGroupBussiness.deleteEmployeeProject(projectGroupDTO.getId());
        return ResponseEntity.ok(wrapperResult);
    }
}
