package com.agileboot.reader.controller;

import com.agileboot.common.core.core.R;
import com.agileboot.reader.service.ITextFileService;
import com.agileboot.reader.vo.TextFileContentVO;
import com.agileboot.reader.vo.TextFileVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 文本阅读器Controller（用户端）
 * 注意：公开接口在 PublicUrlsConfig 中统一配置，无需 @SaIgnore 注解
 */
@Slf4j
@RestController
@RequestMapping("/reader/public")
@RequiredArgsConstructor
@Api(tags = "文本阅读器（用户端）")
public class TextReaderController {

    private final ITextFileService textFileService;

    @GetMapping("/files")
    @ApiOperation("获取所有可用文本文件列表")
    public R<List<TextFileVO>> getAllFiles() {
        List<TextFileVO> files = textFileService.getAllFiles();
        return R.ok(files);
    }

    @GetMapping("/file/{fileId}")
    @ApiOperation("获取文件详情")
    public R<TextFileVO> getFileDetail(@PathVariable Long fileId) {
        TextFileVO file = textFileService.getFileDetail(fileId);
        return R.ok(file);
    }

    @GetMapping("/read/{fileId}")
    @ApiOperation("读取文件内容")
    public R<TextFileContentVO> readFile(@PathVariable Long fileId) {
        TextFileContentVO content = textFileService.readFileContent(fileId);
        return R.ok(content);
    }
}

