create entity for the better halo

pull/137/head
ruibaby 2019-03-12 22:24:59 +08:00
parent d7b5bf2e49
commit 0ca662dea6
9 changed files with 569 additions and 0 deletions

View File

@ -0,0 +1,91 @@
package cc.ryanc.halo.model.entity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
/**
* Attachment entity
*
* @author : RYAN0UP
* @date : 2019-03-12
*/
@Data
@Entity
@Table(name = "attachments")
public class Attachment {
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
/**
*
*/
@Column(name = "name",columnDefinition = "varchar(255) not null")
private String name;
/**
*
*/
@Column(name = "path",columnDefinition = "varchar(1023) default ''")
private String path;
/**
*
*/
@Column(name = "thumb_path",columnDefinition = "varchar(1023) default ''")
private String thumbPath;
/**
*
*/
@Column(name = "media_type",columnDefinition = "varchar(50) default ''")
private String mediaType;
/**
*
*/
@Column(name = "suffix",columnDefinition = "varchar(50) default ''")
private String suffix;
/**
*
*/
@Column(name = "dimension",columnDefinition = "varchar(50) default ''")
private String dimension;
/**
*
*/
@Column(name = "size",columnDefinition = "varchar(50) default ''")
private String size;
/**
*
*/
@Column(name = "type",columnDefinition = "int default 0")
private Integer type;
/**
*
*/
@Column(name = "create_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
/**
*
*/
@Column(name = "update_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime;
/**
*
*/
@Column(name = "deleted", columnDefinition = "TINYINT default 0")
private Boolean deleted;
}

View File

@ -0,0 +1,80 @@
package cc.ryanc.halo.model.entity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
/**
* Gallery entity
*
* @author : RYAN0UP
* @date : 2019-03-12
*/
@Data
@Entity
@Table(name = "galleries")
public class Gallery {
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
/**
*
*/
@Column(name = "name",columnDefinition = "varchar(255) not null")
private String name;
/**
*
*/
@Column(name = "description",columnDefinition = "varchar(255) default ''")
private String description;
/**
* /
*/
@Column(name = "take_time",columnDefinition = "timestamp not null")
@Temporal(TemporalType.TIMESTAMP)
private Date takeTime;
/**
*
*/
@Column(name = "location",columnDefinition = "varchar(255) default ''")
private String location;
/**
*
*/
@Column(name = "thumbnail",columnDefinition = "varchar(1023) default ''")
private String thumbnail;
/**
*
*/
@Column(name = "url",columnDefinition = "varchar(1023) not null")
private String url;
/**
*
*/
@Column(name = "create_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
/**
*
*/
@Column(name = "update_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime;
/**
*
*/
@Column(name = "deleted", columnDefinition = "TINYINT default 0")
private Boolean deleted;
}

View File

@ -0,0 +1,73 @@
package cc.ryanc.halo.model.entity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
/**
* Link entity
*
* @author : RYAN0UP
* @date : 2019-03-12
*/
@Data
@Entity
@Table(name = "links")
public class Link {
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
/**
*
*/
@Column(name = "name",columnDefinition = "varchar(255) not null")
private String name;
/**
*
*/
@Column(name = "url",columnDefinition = "varchar(255) not null")
private String url;
/**
* Logo
*/
@Column(name = "logo",columnDefinition = "varchar(255) default ''")
private String logo;
/**
*
*/
@Column(name = "description",columnDefinition = "varchar(255) default ''")
private String description;
/**
*
*/
@Column(name = "group",columnDefinition = "varchar(255) default ''")
private String group;
/**
*
*/
@Column(name = "create_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
/**
*
*/
@Column(name = "update_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime;
/**
*
*/
@Column(name = "deleted", columnDefinition = "TINYINT default 0")
private Boolean deleted;
}

View File

@ -0,0 +1,73 @@
package cc.ryanc.halo.model.entity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
/**
* Menu entity
*
* @author : RYAN0UP
* @date : 2019-03-12
*/
@Data
@Entity
@Table(name = "menus")
public class Menu {
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
/**
*
*/
@Column(name = "name",columnDefinition = "varchar(255) not null")
private String name;
/**
*
*/
@Column(name = "url",columnDefinition = "varchar(255) not null")
private String url;
/**
*
*/
@Column(name = "sort",columnDefinition = "int default 0")
private Integer sort;
/**
*
*/
@Column(name = "target",columnDefinition = "varchar(20) default '_self'")
private String target;
/**
*
*/
@Column(name = "icon",columnDefinition = "varchar(50) default ''")
private String icon;
/**
*
*/
@Column(name = "create_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
/**
*
*/
@Column(name = "update_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime;
/**
*
*/
@Column(name = "deleted", columnDefinition = "TINYINT default 0")
private Boolean deleted;
}

View File

@ -0,0 +1,57 @@
package cc.ryanc.halo.model.entity;
import lombok.Data;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import java.util.Date;
/**
* @author : RYAN0UP
* @date : 2019-03-12
*/
@Data
@Entity
@Table(name = "post_tags")
@SQLDelete(sql = "update post_tags set deleted = true where id = ?")
@Where(clause = "deleted = false")
public class PostTag {
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
/**
*
*/
@Column(name = "post_id", columnDefinition = "int not null")
private Integer postId;
/**
*
*/
@Column(name = "tag_id", columnDefinition = "int not null")
private Integer tagId;
/**
*
*/
@Column(name = "create_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
/**
*
*/
@Column(name = "update_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime;
/**
*
*/
@Column(name = "deleted", columnDefinition = "TINYINT default 0")
private Boolean deleted;
}

View File

@ -0,0 +1,55 @@
package cc.ryanc.halo.model.entity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
/**
* Tag entity
*
* @author : RYAN0UP
* @date : 2019-03-12
*/
@Data
@Entity
@Table(name = "menus")
public class Tag {
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
/**
*
*/
@Column(name = "name",columnDefinition = "varchar(255) not null")
private String name;
/**
*
*/
@Column(name = "snake_name",columnDefinition = "varchar(255) not null")
private String snakeName;
/**
*
*/
@Column(name = "create_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
/**
*
*/
@Column(name = "update_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime;
/**
*
*/
@Column(name = "deleted", columnDefinition = "TINYINT default 0")
private Boolean deleted;
}

View File

@ -0,0 +1,79 @@
package cc.ryanc.halo.model.entity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
/**
* User entity
*
* @author : RYAN0UP
* @date : 2019-03-12
*/
@Data
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
/**
*
*/
@Column(name = "username",columnDefinition = "varchar(50) not null")
private String username;
/**
*
*/
@Column(name = "nickname",columnDefinition = "varchar(255) not null")
private String nickname;
/**
*
*/
@Column(name = "password",columnDefinition = "varchar(255) not null")
private String password;
/**
*
*/
@Column(name = "email",columnDefinition = "varchar(127) default ''")
private String email;
/**
*
*/
@Column(name = "avatar",columnDefinition = "varchar(1023) default ''")
private String avatar;
/**
*
*/
@Column(name = "description",columnDefinition = "varchar(1023) default ''")
private String description;
/**
*
*/
@Column(name = "create_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
/**
*
*/
@Column(name = "update_time", columnDefinition = "timestamp default CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime;
/**
*
*/
@Column(name = "deleted", columnDefinition = "TINYINT default 0")
private Boolean deleted;
}

View File

@ -0,0 +1,20 @@
package cc.ryanc.halo.model.entity.enums;
/**
* @author : RYAN0UP
* @date : 2019-03-12
*/
public enum AttachOrigin implements ValueEnum<Integer> {;
private Integer value;
/**
* Get enum value.
*
* @return enum value
*/
@Override
public Integer getValue() {
return null;
}
}

View File

@ -0,0 +1,41 @@
package cc.ryanc.halo.model.entity.enums;
import org.springframework.util.Assert;
import java.util.stream.Stream;
/**
* Interface for value enum.
*
* @param <T> value type
* @author johnniang
*/
public interface ValueEnum<T> {
/**
* Convert value to corresponding enum.
*
* @param enumType enum type
* @param value database value
* @param <V> value generic
* @param <E> enum generic
* @return corresponding enum
*/
static <V, E extends ValueEnum<V>> E valueToEnum(Class<E> enumType, V value) {
Assert.notNull(enumType, "enum type must not be null");
Assert.notNull(value, "value must not be null");
Assert.isTrue(enumType.isEnum(), "type must be an enum type");
return Stream.of(enumType.getEnumConstants())
.filter(item -> item.getValue().equals(value))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("unknown database value: " + value));
}
/**
* Get enum value.
*
* @return enum value
*/
T getValue();
}