package entity import ( "time" "github.com/google/uuid" ) type Articles struct { ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` Title string `json:"title" gorm:"type:varchar"` Slug string `json:"slug" gorm:"type:varchar"` Description string `json:"description" gorm:"type:varchar"` CategoryId int `json:"category_id" gorm:"type:int4"` HtmlDescription string `json:"html_description" gorm:"type:varchar"` TypeId int `json:"type_id" gorm:"type:int4"` Tags string `json:"tags" gorm:"type:varchar"` ThumbnailName *string `json:"thumbnail_name" gorm:"type:varchar"` ThumbnailPath *string `json:"thumbnail_path" gorm:"type:varchar"` PageUrl *string `json:"page_url" gorm:"type:varchar"` CreatedById *uint `json:"created_by_id" gorm:"type:int4"` AiArticleId *int `json:"ai_article_id" gorm:"type:int4"` CommentCount *int `json:"comment_count" gorm:"type:int4;default:0"` ShareCount *int `json:"share_count" gorm:"type:int4;default:0"` ViewCount *int `json:"view_count" gorm:"type:int4;default:0"` StatusId *int `json:"status_id" gorm:"type:int4"` OldId *uint `json:"old_id" gorm:"type:int4"` NeedApprovalFrom *int `json:"need_approval_from" gorm:"type:int4"` HasApprovedBy *string `json:"has_approved_by" gorm:"type:varchar"` WorkflowId *uint `json:"workflow_id" gorm:"type:int4"` CurrentApprovalStep *int `json:"current_approval_step" gorm:"type:int4;default:0"` // 0=not submitted, 1+=approval step // New fields for no-approval support BypassApproval *bool `json:"bypass_approval" gorm:"type:bool;default:false"` // true = skip approval process ApprovalExempt *bool `json:"approval_exempt" gorm:"type:bool;default:false"` // true = permanently exempt from approval IsPublish *bool `json:"is_publish" gorm:"type:bool;default:false"` IsBanner *bool `json:"is_banner" gorm:"type:bool;default:false"` PublishedAt *time.Time `json:"published_at" gorm:"type:timestamp"` IsDraft *bool `json:"is_draft" gorm:"type:bool;default:false"` DraftedAt *time.Time `json:"drafted_at" gorm:"type:timestamp"` PublishSchedule *string `json:"publish_schedule" gorm:"type:varchar"` Source *string `json:"source" gorm:"type:varchar"` CustomCreatorName *string `json:"custom_creator_name" gorm:"type:varchar"` ClientId *uuid.UUID `json:"client_id" gorm:"type:UUID"` IsActive *bool `json:"is_active" gorm:"type:bool;default:true"` CreatedAt time.Time `json:"created_at" gorm:"default:now()"` UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` }