package cn.iocoder.yudao.module.system.dal.dataobject.evaluation;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 膳食满意度调查 DO
 */
@TableName("food_satisfaction_survey")
@KeySequence("food_satisfaction_survey_seq")
@Data
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FoodSatisfactionSurveyDO {

    @TableId(type = IdType.AUTO)
    private Long id;

    /** 角色 */
    private String role;

    /** 记录日期 */
    private LocalDate recordDate;

    /** 菜品新鲜度 */
    private BigDecimal fresh;

    /** 菜品口味（咸淡、口感等） */
    private BigDecimal taste;

    /** 菜品种类丰富度 */
    private BigDecimal variety;

    /** 主食多样性（米饭、面食等） */
    private BigDecimal staple;

    /** 汤品 / 饮品口感与温度 */
    private BigDecimal soup;

    /** 菜品营养搭配合理性 */
    @TableField("nutrtion")
    private BigDecimal nutrition;

    /** 餐具清洁程度 */
    private BigDecimal tableware;

    /** 用餐环境卫生（桌椅、地面等） */
    private BigDecimal environment;

    /** 工作人员服务态度 */
    private BigDecimal attitude;

    /** 菜品供应及时性（未出现长时间断供） */
    private BigDecimal timely;

    /** 菜品分量充足度 */
    private BigDecimal portion;

    /** 是否满足软食需求 */
    private String softFood;

    /** 是否满足素食需求 */
    private String vegetarian;

    /** 对有过敏食材的人群，是否能提供明确的食材标注 */
    private String allergyLabel;

    /** 最需要改进的方面 */
    private String improve;

    /** 希望新增哪些菜品或服务 */
    private String newDishes;

    /** 其他想反馈的内容 */
    private String other;

    /** 膳食质量评价总分 */
    private BigDecimal qualityTotal;

    /** 膳食服务评价总分 */
    private BigDecimal serviceTotal;

    /** 提交人 */
    private String submitter;

    /** 机构id */
    private Long tenantId;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
