package net.northking.cctp.common.s3;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 文件、附件
 */
public interface NKFile
{
  /**
   * 唯一标识
   *
   * @return 唯一标识
   */
  String getId();

  /**
   * 唯一标识
   *
   * @param id 唯一标识
   */
  void setId(String id);

  /**
   * 租户ID
   *
   * @return 租户ID
   */
  String getTenantId();

  /**
   * 租户ID
   *
   * @param tenantId 租户ID
   */
  void setTenantId(String tenantId);

  /**
   * 文件名
   *
   * @return 文件名
   */
  String getFileName();

  /**
   * 文件名
   *
   * @param fileName 文件名
   */
  void setFileName(String fileName);

  /**
   * 文件类型
   *
   * @return 文件类型
   */
  String getContentType();

  /**
   * 文件类型
   *
   * @param contentType 文件类型
   */
  void setContentType(String contentType);

  /**
   * 文件大小（单位：字节）
   *
   * @return 文件大小（单位：字节）
   */
  Long getLength();

  /**
   * 文件大小（单位：字节）
   *
   * @param length 文件大小（单位：字节）
   */
  void setLength(long length);

  /**
   * 创建时间
   *
   * @return 创建时间
   */
  Date getCreatedTime();

  /**
   * 创建时间
   *
   * @param createdTime 创建时间
   */
  void setCreatedTime(Date createdTime);

  /**
   * 创建人
   *
   * @return 创建人
   */
  String getCreatedBy();

  /**
   * 创建人
   *
   * @param createdBy 创建人
   */
  void setCreatedBy(String createdBy);

  /**
   * 根据日期创建目录
   *
   * @return 根据日期创建目录
   */
  default String createDatePath()
  {
    SimpleDateFormat format = new SimpleDateFormat("/yyyy/MM/dd/");
    return format.format(new Date());
  }

  void setDeleted(boolean deleted);
}
