package shop.alien.entity.store.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 用户预约 VO（详情/列表）
 *
 * @author system
 */
@Data
@ApiModel(value = "UserReservationVo", description = "用户预约VO")
public class UserReservationVo {

    @ApiModelProperty(value = "预约ID")
    private Integer id;

    @ApiModelProperty(value = "预约号（券码）")
    private String reservationNo;

    @ApiModelProperty(value = "用户ID")
    private Integer userId;

    @ApiModelProperty(value = "门店ID")
    private Integer storeId;

    @ApiModelProperty(value = "预约日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date reservationDate;

    @ApiModelProperty(value = "预约开始时间 HH:mm")
    private String startTime;

    @ApiModelProperty(value = "预约结束时间 HH:mm")
    private String endTime;

    @ApiModelProperty(value = "预约人数")
    private Integer guestCount;

    @ApiModelProperty(value = "偏好区域/分类ID")
    private Integer categoryId;

    @ApiModelProperty(value = "预约状态 0:待确认 1:已确认 2:已到店 3:已取消 4:未到店超时")
    private Integer status;

    @ApiModelProperty(value = "实际到店时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date actualArrivalTime;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "预约人姓名")
    private String reservationUserName;

    @ApiModelProperty(value = "预约人性别:0:男,1:女")
    private String reservationUserGender;

    @ApiModelProperty(value = "预约人电话")
    private String reservationUserPhone;

    @ApiModelProperty(value = "关联的桌号ID列表")
    private List<Integer> tableIds;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdTime;

    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updatedTime;
}
