package cn.iocoder.yudao.module.infra.dal.dataobject.file;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.time.LocalDateTime;

/**
 * 分片上传会话表
 * 用于记录分片上传的会话信息
 *
 * @author AI Assistant
 */
@TableName("multipart_upload_session")
@KeySequence("multipart_upload_session_seq")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MultipartUploadSessionDO extends BaseDO {

    /**
     * 编号，数据库自增
     */
    private Long id;

    /**
     * 上传会话ID
     */
    private String uploadId;

    /**
     * 对象名称
     */
    private String objectName;

    /**
     * 文件大小
     */
    private Long fileSize;

    /**
     * 分片大小
     */
    private Integer chunkSize;

    /**
     * 总分片数
     */
    private Integer totalChunks;

    /**
     * 文件名
     */
    private String fileName;

    /**
     * 文件类型
     */
    private String fileType;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 过期时间
     */
    private LocalDateTime expiresAt;

    /**
     * 状态：0-进行中，1-已完成，2-已取消
     */
    private Integer status;

} 