package request import ( "go-humas-be/app/database/entity" "go-humas-be/utils/paginator" "time" ) type ArticleFilesGeneric interface { ToEntity() } type ArticleFilesQueryRequest struct { ArticleId int `json:"article_id" validate:"required"` FilePath string `json:"file_path" validate:"required"` FileUrl string `json:"file_url" validate:"required"` FileName string `json:"file_name" validate:"required"` FileThumbnail string `json:"file_thumbnail" validate:"required"` FileAlt string `json:"file_alt" validate:"required"` WidthPixel string `json:"width_pixel" validate:"required"` HeightPixel string `json:"height_pixel" validate:"required"` Size string `json:"size" validate:"required"` DownloadCount int `json:"download_count" validate:"required"` CreatedById int `json:"created_by_id" validate:"required"` StatusId int `json:"status_id" validate:"required"` IsPublish bool `json:"is_publish" validate:"required"` PublishedAt time.Time `json:"published_at" validate:"required"` IsActive bool `json:"is_active" validate:"required"` Pagination *paginator.Pagination `json:"pagination"` } type ArticleFilesCreateRequest struct { ArticleId int `json:"article_id" validate:"required"` FilePath string `json:"file_path" validate:"required"` FileUrl string `json:"file_url" validate:"required"` FileName string `json:"file_name" validate:"required"` FileThumbnail string `json:"file_thumbnail" validate:"required"` FileAlt string `json:"file_alt" validate:"required"` WidthPixel string `json:"width_pixel" validate:"required"` HeightPixel string `json:"height_pixel" validate:"required"` Size string `json:"size" validate:"required"` DownloadCount int `json:"download_count" validate:"required"` CreatedById int `json:"created_by_id" validate:"required"` StatusId int `json:"status_id" validate:"required"` IsPublish bool `json:"is_publish" validate:"required"` PublishedAt time.Time `json:"published_at" validate:"required"` IsActive bool `json:"is_active" validate:"required"` } func (req ArticleFilesCreateRequest) ToEntity() *entity.ArticleFiles { return &entity.ArticleFiles{ ArticleId: req.ArticleId, FilePath: req.FilePath, FileUrl: req.FileUrl, FileName: req.FileName, FileThumbnail: req.FileThumbnail, FileAlt: req.FileAlt, WidthPixel: req.WidthPixel, HeightPixel: req.HeightPixel, Size: req.Size, DownloadCount: req.DownloadCount, CreatedById: req.CreatedById, StatusId: req.StatusId, IsPublish: req.IsPublish, PublishedAt: req.PublishedAt, IsActive: req.IsActive, } } type ArticleFilesUpdateRequest struct { ID uint `json:"id" validate:"required"` ArticleId int `json:"article_id" validate:"required"` FilePath string `json:"file_path" validate:"required"` FileUrl string `json:"file_url" validate:"required"` FileName string `json:"file_name" validate:"required"` FileThumbnail string `json:"file_thumbnail" validate:"required"` FileAlt string `json:"file_alt" validate:"required"` WidthPixel string `json:"width_pixel" validate:"required"` HeightPixel string `json:"height_pixel" validate:"required"` Size string `json:"size" validate:"required"` DownloadCount int `json:"download_count" validate:"required"` CreatedById int `json:"created_by_id" validate:"required"` StatusId int `json:"status_id" validate:"required"` IsPublish bool `json:"is_publish" validate:"required"` PublishedAt time.Time `json:"published_at" validate:"required"` IsActive bool `json:"is_active" validate:"required"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } func (req ArticleFilesUpdateRequest) ToEntity() *entity.ArticleFiles { return &entity.ArticleFiles{ ID: req.ID, ArticleId: req.ArticleId, FilePath: req.FilePath, FileUrl: req.FileUrl, FileName: req.FileName, FileThumbnail: req.FileThumbnail, FileAlt: req.FileAlt, WidthPixel: req.WidthPixel, HeightPixel: req.HeightPixel, Size: req.Size, DownloadCount: req.DownloadCount, CreatedById: req.CreatedById, StatusId: req.StatusId, IsPublish: req.IsPublish, PublishedAt: req.PublishedAt, IsActive: req.IsActive, CreatedAt: req.CreatedAt, UpdatedAt: req.UpdatedAt, } }