package com.ylx.massage.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 城市管理表(CityOperationApplication)表实体类
 *
 * @author makejava
 * @since 2026-06-04 14:27:32
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "city_operation_application", autoResultMap = true)
public class CityOperationApplication implements Serializable {

    /**
     * 主键ID。
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 省级行政区编码，如：110000。
     */
    @TableField("province_code")
    private String provinceCode;

    /**
     * 省级行政区名称，如：北京市。
     */
    @TableField("province_name")
    private String provinceName;

    /**
     * 地级市编码，如：110100。
     */
    @TableField("city_code")
    private String cityCode;

    /**
     * 地级市名称，如：北京市。
     */
    @TableField("city_name")
    private String cityName;

    /**
     * 运营中心ID。
     */
    @TableField("operation_center_id")
    private Integer operationCenterId;

    /**
     * 运营中心名称。
     */
    @TableField("operation_center_name")
    private String operationCenterName;

    /**
     * 申请原因。
     */
    @TableField("apply_reason")
    private String applyReason;

    /**
     * 实际审批通过时间。
     */
    @TableField("actual_approval_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Date actualApprovalTime;

    /**
     * 状态：0-待审核，1-已通过，2-已驳回。
     */
    @TableField("status")
    private Integer status;

    /**
     * 商户ID。
     */
    @TableField("merchant_id")
    private Integer merchantId;

    /**
     * 创建人。
     */
    @TableField(value = "create_by")
    private String createBy;

    /**
     * 创建时间。
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private LocalDateTime createTime;

    /**
     * 更新时间。
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private LocalDateTime updateTime;

    /**
     * 更新人。
     */
    @TableField(value = "update_by")
    private String updateBy;

    /**
     * 逻辑删除标记：1-已删除，0-未删除。
     */
    @TableField("is_delete")
    private Integer isDelete;
}

