import { Column , JoinColumn , CreateDateColumn , Entity , ManyToOne , PrimaryGeneratedColumn , OneToMany } from 'typeorm' ; import * as moment from 'moment' ; import { Classify } from './classify.entity' ; @ Entity ( 'article' ) export class Article { @ PrimaryGeneratedColumn ( ) id : number ; @ Column ( { nullable : true , length : 120 , } ) username : string ; @ Column ( { nullable : true } ) owner : number ; @ Column ( { nullable : true , length : 120 , } ) title : string ; @ Column ( { nullable : true } ) keywords : string ; @ Column ( { default : 0 } ) like : number ; @ Column ( { default : 0 } ) views : number ; @ Column ( { nullable : true , length : 500 , } ) cover : string ; @ Column ( { nullable : true , length : 500 , } ) abstract : string ; @ Column ( { nullable : true , type : 'text' , } ) content : string ; @ Column ( { default : 0 } ) top : number ; @ Column ( { nullable : true , length : 120 , } ) source : string ; @ Column ( { default : 0 } ) status : number ; @ Column ( { type : 'text' , nullable : true } ) refuseReason : string ; @ Column ( { nullable : true , length : 200 , } ) sourceUrl : string ; @ Column ( { nullable : true , default : false } ) recycling : boolean ; @ Column ( { default : false } ) hidden : boolean ; @ Column ( { nullable : true } ) structure : string ; @ Column ( { nullable : true , transformer : { from : ( date ) => { return moment ( date ) . format ( 'YYYY-MM-DD HH:mm:ss' ) ; } , to : ( date ) => { date = date ? date : new Date ( ) ; return moment ( date ) . format ( 'YYYY-MM-DD HH:mm:ss' ) ; } } } ) createdAt : string ; @ Column ( { nullable : true , transformer : { from : ( date ) => { return moment ( date ) . format ( 'YYYY-MM-DD HH:mm:ss' ) ; } , to : ( date ) => { date = date ? date : new Date ( ) ; return moment ( date ) . format ( 'YYYY-MM-DD HH:mm:ss' ) ; } } } ) modifyAt : string ; @ Column ( { nullable : true , type : 'varchar' , transformer : { from : ( data ) => { if ( data ) { return JSON . parse ( data ) ; } else { return null ; } } , to : ( data ) => { data = data ? JSON . stringify ( data ) : undefined ; return data ; } } } ) artInfos : JSON ; @ ManyToOne ( type => Classify , classify => classify . articles , { onDelete : 'CASCADE' , cascade : true } ) @ JoinColumn ( { name : 'classifyId' , referencedColumnName : 'id' } ) classify : Classify ; }