package com.ruoyi.bst.store.domain;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.validate.ValidGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 店铺对象 bst_store
 *
 * @author ruoyi
 * @date 2025-04-18
 */
@Data
public class Store extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private Long storeId;

    @Excel(name = "用户ID")
    @ApiModelProperty("用户ID")
    private Long userId;

    @Excel(name = "店铺名称")
    @ApiModelProperty("店铺名称")
    @NotBlank(message = "店铺名称不能为空",groups = {ValidGroup.Create.class})
    private String storeName;

    @Excel(name = "联系人")
    @ApiModelProperty("联系人")
    @NotBlank(message = "联系人不能为空",groups = {ValidGroup.Create.class})
    private String userName;

    @Excel(name = "联系电话")
    @ApiModelProperty("联系电话")
    @NotBlank(message = "联系电话不能为空",groups = {ValidGroup.Create.class})
    private String phone;

    @JsonFormat(pattern = "HH:mm")
    @Excel(name = "营业开始时间", width = 30, dateFormat = "HH:mm")
    @ApiModelProperty("营业开始时间")
    @NotNull(message = "营业开始时间不能为空",groups = {ValidGroup.Create.class})
    private LocalTime startTime;

    @JsonFormat(pattern = "HH:mm")
    @Excel(name = "营业结束时间", width = 30, dateFormat = "HH:mm")
    @ApiModelProperty("营业结束时间")
    @NotNull(message = "营业结束时间不能为空",groups = {ValidGroup.Create.class})
    private LocalTime endTime;

    @Excel(name = "经度")
    @ApiModelProperty("经度")
    private BigDecimal longitude;

    @Excel(name = "纬度")
    @ApiModelProperty("纬度")
    private BigDecimal latitude;

    @Excel(name = "详细地址")
    @ApiModelProperty("详细地址")
    @NotBlank(message = "详细地址不能为空",groups = {ValidGroup.Create.class})
    private String address;

    @Excel(name = "省")
    @ApiModelProperty("省")
    private String province;

    @Excel(name = "市")
    @ApiModelProperty("市")
    private String city;

    @Excel(name = "区、县")
    @ApiModelProperty("区、县")
    private String county;

    @Excel(name = "门店照片")
    @ApiModelProperty("门店照片")
    private String picture;

}
