package com.jeesharp.business.modules.mall.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeesharp.framework.mybatis.core.dataobject.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * 运费模板地区配置：按收货地址省/市/区编码匹配一行规则，命中后其首费/续费覆盖模板主表同名字段；未命中则回退到 sort 较大的「*」全国行。
 *
 * @author jeesharp
 * @since 2026-05-07
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("mall_freight_template_region")
public class MallFreightTemplateRegion extends BaseEntity<MallFreightTemplateRegion> {

    /**
     * 运费模板主键（mall_freight_template.id）
     */
    private String templateId;

    /**
     * 行政区划编码，多个用英文逗号分隔，与收货地址省/市/区任一编码匹配即可命中（如 440000,440300,440305）；全国兜底填 *。
     */
    private String regionCodes;

    /**
     * 区域展示名，与 region_codes 对应便于运营辨认（如 广东省,深圳市,南山区）；全国兜底可填「全国」。
     */
    private String regionNames;

    /**
     * 本区域首费（元）：按重量模板表示首重段运费，按件模板表示首件运费；非空时覆盖模板主表 first_fee，空则沿用模板。
     */
    private BigDecimal firstFee;

    /**
     * 本区域续费（元）：按重量为续重段单价，按件为每件续费；非空时覆盖模板主表 continue_fee，空则沿用模板。
     */
    private BigDecimal continueFee;

    /**
     * 匹配优先级，升序；建议具体省市区小号在前，全国 * 行大号在后，保证先匹配明细再兜底。
     */
    private Integer sortOrder;

    /**
     * 模板名称（列表联查，不落库）
     */
    @TableField(exist = false)
    private String templateName;
}