fix: add parameters publishedFor in articles

This commit is contained in:
Sabda Yagra 2026-02-12 17:32:11 +07:00
parent 575c271d27
commit f43d96c621
5 changed files with 55 additions and 34 deletions

View File

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

View File

@ -42,6 +42,7 @@ type ArticlesCreateRequest struct {
IsPublish *bool `json:"isPublish"` IsPublish *bool `json:"isPublish"`
IsDraft *bool `json:"isDraft"` IsDraft *bool `json:"isDraft"`
OldId *uint `json:"oldId"` OldId *uint `json:"oldId"`
PublishedFor *string `json:"publishedFor"`
} }
func (req ArticlesCreateRequest) ToEntity() *entity.Articles { func (req ArticlesCreateRequest) ToEntity() *entity.Articles {
@ -56,6 +57,7 @@ func (req ArticlesCreateRequest) ToEntity() *entity.Articles {
IsPublish: req.IsPublish, IsPublish: req.IsPublish,
IsDraft: req.IsDraft, IsDraft: req.IsDraft,
OldId: req.OldId, OldId: req.OldId,
PublishedFor: req.PublishedFor,
} }
} }
@ -73,6 +75,7 @@ type ArticlesUpdateRequest struct {
IsPublish *bool `json:"isPublish"` IsPublish *bool `json:"isPublish"`
IsDraft *bool `json:"isDraft"` IsDraft *bool `json:"isDraft"`
StatusId *int `json:"statusId"` StatusId *int `json:"statusId"`
PublishedFor *string `json:"publishedFor"`
} }
func (req ArticlesUpdateRequest) ToEntity() *entity.Articles { func (req ArticlesUpdateRequest) ToEntity() *entity.Articles {
@ -89,6 +92,7 @@ func (req ArticlesUpdateRequest) ToEntity() *entity.Articles {
IsPublish: req.IsPublish, IsPublish: req.IsPublish,
IsDraft: req.IsDraft, IsDraft: req.IsDraft,
UpdatedAt: time.Now(), UpdatedAt: time.Now(),
PublishedFor: req.PublishedFor,
} }
} else { } else {
return &entity.Articles{ return &entity.Articles{

View File

@ -20189,6 +20189,9 @@ const docTemplate = `{
"oldId": { "oldId": {
"type": "integer" "type": "integer"
}, },
"publishedFor": {
"type": "string"
},
"slug": { "slug": {
"type": "string" "type": "string"
}, },
@ -20239,6 +20242,9 @@ const docTemplate = `{
"isPublish": { "isPublish": {
"type": "boolean" "type": "boolean"
}, },
"publishedFor": {
"type": "string"
},
"slug": { "slug": {
"type": "string" "type": "string"
}, },

View File

@ -20178,6 +20178,9 @@
"oldId": { "oldId": {
"type": "integer" "type": "integer"
}, },
"publishedFor": {
"type": "string"
},
"slug": { "slug": {
"type": "string" "type": "string"
}, },
@ -20228,6 +20231,9 @@
"isPublish": { "isPublish": {
"type": "boolean" "type": "boolean"
}, },
"publishedFor": {
"type": "string"
},
"slug": { "slug": {
"type": "string" "type": "string"
}, },

View File

@ -554,6 +554,8 @@ definitions:
type: boolean type: boolean
oldId: oldId:
type: integer type: integer
publishedFor:
type: string
slug: slug:
type: string type: string
tags: tags:
@ -589,6 +591,8 @@ definitions:
type: boolean type: boolean
isPublish: isPublish:
type: boolean type: boolean
publishedFor:
type: string
slug: slug:
type: string type: string
statusId: statusId: