package com.storlead.centre.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import com.storlead.framework.mybatis.entity.SysBaseField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * OA系统签到/签退记录表
 * </p>
 *
 * @author chenkq
 * @since 2025-12-25
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("attendance_sign_record")
@ApiModel(value="AttendanceSignRecordEntity对象", description="OA系统签到/签退记录表")
public class AttendanceSignRecordEntity extends SysBaseField {

    private static final long serialVersionUID = 1L;

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

    @ApiModelProperty(value = "员工ID")
    @TableField("user_id")
    private Long userId;

    @ApiModelProperty(value = "员工姓名（冗余）")
    @TableField("user_name")
    private String userName;

    @ApiModelProperty(value = "部门ID")
    @TableField("dept_id")
    private Long deptId;

    @ApiModelProperty(value = "部门名称（冗余）")
    @TableField("dept_name")
    private String deptName;

    @ApiModelProperty(value = "签到日期")
    @TableField("sign_date")
    private LocalDate signDate;

    @ApiModelProperty(value = "签到/签退时间")
    @TableField("sign_time")
    private LocalDateTime signTime;

    @ApiModelProperty(value = "类型：1签到 2签退")
    @TableField("sign_type")
    private Integer signType;

    @ApiModelProperty(value = "是否同步OA")
    @TableField("sync_oa")
    private Integer syncOa;

    @ApiModelProperty(value = "来源：1OA 2APP 3H5")
    @TableField("sign_source")
    private Integer signSource;

    @ApiModelProperty(value = "设备类型：PC / Android / iOS")
    @TableField("device_type")
    private String deviceType;

    @ApiModelProperty(value = "设备标识")
    @TableField("device_id")
    private String deviceId;

    @ApiModelProperty(value = "签到地址")
    @TableField("sign_address")
    private String signAddress;

    @ApiModelProperty(value = "经度")
    @TableField("longitude")
    private BigDecimal longitude;

    @ApiModelProperty(value = "纬度")
    @TableField("latitude")
    private BigDecimal latitude;

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


}
