package shop.alien.entity.store.dto;

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;

/**
 * 用户预约 DTO（新增/修改）
 *
 * @author system
 */
@Data
@ApiModel(value = "UserReservationDTO", description = "用户预约DTO")
public class UserReservationDTO {

    @ApiModelProperty(value = "预约ID（修改时必填）")
    private Integer id;

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

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

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

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

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

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

    @ApiModelProperty(value = "偏好区域/分类ID（如大厅/包间）")
    private Integer categoryId;

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

    @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列表（store_booking_table.id）")
    private List<Integer> tableIds;
}
