package com.ema.admin.modules.system.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import com.ema.common.domain.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;

/**
 * 文件记录表 实体类。
 *
 * @author LIJIAN
 * @since 2026-04-16
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel("文件记录表")
@Table("sys_file")
public class SysFile extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 文件id
     */
    @Id(keyType = KeyType.Generator, value = "snowFlakeId")
    @ApiModelProperty("文件id")
    private String id;

    /**
     * 文件访问地址
     */
    @ApiModelProperty("文件访问地址")
    private String url;

    /**
     * 文件大小，单位字节
     */
    @ApiModelProperty("文件大小，单位字节")
    private Long size;

    /**
     * 文件名称
     */
    @ApiModelProperty("文件名称")
    private String filename;

    /**
     * 原始文件名
     */
    @ApiModelProperty("原始文件名")
    private String originalFilename;

    /**
     * 基础存储路径
     */
    @ApiModelProperty("基础存储路径")
    private String basePath;

    /**
     * 存储路径
     */
    @ApiModelProperty("存储路径")
    private String path;

    /**
     * 文件扩展名
     */
    @ApiModelProperty("文件扩展名")
    private String ext;

    /**
     * MIME类型
     */
    @ApiModelProperty("MIME类型")
    private String contentType;

    /**
     * 存储平台
     */
    @ApiModelProperty("存储平台")
    private String platform;

}
