using AgriculturalPlatform.Api.Data;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
namespace AgriculturalPlatform.Api.Controllers;
///
/// 行政区划接口:
/// 省、市、县、乡镇来自 AreaCity 全国公开行政区划数据(Regions 表,深 0~3);
/// 村、组来自农户档案表(Famers 表已录入数据,去重后作为下拉选项)。
///
[ApiController]
[Route("api/regions")]
[Authorize]
public class RegionsController(AppDbContext db) : ControllerBase
{
/// 省(自治区/直辖市)列表,热门省份(热度值高)优先
[HttpGet("provinces")]
public async Task> Provinces()
{
var items = await db.Regions
.Where(r => r.Deep == 0)
.OrderByDescending(r => r.Hot)
.ThenBy(r => r.Id)
.Select(r => r.ExtName)
.ToListAsync();
return Ok(items);
}
///
/// 按省获取县(区/县级市)列表,附带所属地级市(city)用于前端分组,
/// used=true 表示数据库农户表中已录入过该区县(前端优先展示)。
///
[HttpGet("counties")]
public async Task Counties(string? province)
{
if (string.IsNullOrWhiteSpace(province)) return BadRequest(new { message = "请先选择省份" });
var prov = await db.Regions.FirstOrDefaultAsync(r => r.Deep == 0 && r.ExtName == province);
if (prov == null) return Ok(Array.Empty