package com.qaup.collision.area.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.locationtech.jts.geom.Polygon;
import java.time.ZonedDateTime;
import java.util.List;

/**
 * 区域信息数据传输对象
 * 用于YAML配置解析和数据转换
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AreaInfo {
    private String id;                    // 区域唯一标识
    private String name;                  // 区域名称
    private AreaType type;               // 区域类型（跑道、机坪等）
    private Double speedLimitKph;        // 限速（公里/小时）
    private String description;          // 区域用途描述
    private Boolean restricted;          // 是否限制进入
    private List<String> allowedVehicleTypes; // 允许的车辆类型
    private List<String> allowedAircraftTypes; // 允许的航空器类型
    private Double maxHeight;            // 最大高度限制（米）
    private Double maxWeight;            // 最大重量限制（吨）
    private Polygon boundary;            // JTS 多边形边界
    private ZonedDateTime activeTime;    // 生效时间（用于临时区域）
    private ZonedDateTime expiryTime;    // 失效时间（用于临时区域）
} 