package com.lqkj.link.module.zone.controller;
import com.lqkj.link.message.MessageBean;
import com.lqkj.link.module.base.service.BaseService;
import com.lqkj.link.module.zone.domain.GeomInfo;
import com.lqkj.link.module.zone.domain.OneZoneGeomInfos;
import com.lqkj.link.module.zone.domain.TmpGeomInfo;
import com.lqkj.link.module.zone.domain.TmpOneZoneGeomInfos;
import com.lqkj.link.module.zone.service.GeomInfoService;
import com.lqkj.link.module.zone.service.TmpGeomService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/tmpGeom")
@Tag(name = "临时场景元素信息", description = "临时场景元素信息")
public class TmpGeomInfoController {
    private final BaseService baseService;

    @Autowired
    private TmpGeomService tmpGeomService;


    public TmpGeomInfoController(GeomInfoService geomInfoService, BaseService baseService) {
        this.baseService = baseService;
    }

    @Operation(
            summary = "5.1.2.8 下载临时场景信息接口",
            description = "5.1.2.8 下载临时场景信息接口",
            parameters = {
                    @Parameter(name = "zoneId", required = true, description = "作品/区域ID"),
                    @Parameter(name = "userId", required = true, description = "用户ID"),
                    @Parameter(name = "status", required = true, description = "状态:1:未处理,2:已处理"),

            }
    )
    @PostMapping("/findAll")
    public List<TmpGeomInfo> findByZone(@RequestParam Integer zoneId,
                                        @RequestParam(required = false, defaultValue = "0") Integer userId,
                                        @RequestParam Integer status) {
        return tmpGeomService.findAll(zoneId, userId, status);
    }

    @Operation(
            summary = "5.1.2.23 保存临时场景信息",
            description = "5.1.2.23 保存临时场景信息",
            requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(
                    description = "场景临时元素信息",
                    required = true,
                    content = @Content(
                            mediaType = "application/json",
                            schema = @Schema(implementation = TmpOneZoneGeomInfos.class)
                    )
            )
    )
    @PostMapping("/saveTmpGeom")
    public MessageBean saveGeom(@RequestBody TmpOneZoneGeomInfos geomInfos) {
        try {
            tmpGeomService.saveTmpGeom(geomInfos);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return MessageBean.ok(null,"保存临时场景信息");
    }
}