feat: add release date field to resource models and parameters

This commit is contained in:
2025-12-07 18:39:59 +08:00
parent ddd856529b
commit 78f6130b23
3 changed files with 23 additions and 12 deletions

View File

@@ -44,6 +44,7 @@ export interface CreateResourceParams {
title: string;
alternative_titles: string[];
links: RLink[];
release_date?: string;
tags: number[];
article: string;
images: number[];
@@ -77,6 +78,7 @@ export interface Resource {
id: number;
title: string;
created_at: string;
release_date?: string;
tags: Tag[];
image?: Image;
author: User;
@@ -89,6 +91,7 @@ export interface ResourceDetails {
links: RLink[];
article: string;
createdAt: string;
releaseDate?: string;
tags: Tag[];
images: Image[];
files: RFile[];

View File

@@ -11,6 +11,7 @@ type Resource struct {
Title string
AlternativeTitles []string `gorm:"serializer:json"`
Links []Link `gorm:"serializer:json"`
ReleaseDate *time.Time
Article string
Images []Image `gorm:"many2many:resource_images;"`
Tags []Tag `gorm:"many2many:resource_tags;"`
@@ -32,12 +33,13 @@ type Link struct {
}
type ResourceView struct {
ID uint `json:"id"`
Title string `json:"title"`
CreatedAt time.Time `json:"created_at"`
Tags []TagView `json:"tags"`
Image *ImageView `json:"image"`
Author UserView `json:"author"`
ID uint `json:"id"`
Title string `json:"title"`
CreatedAt time.Time `json:"created_at"`
ReleaseDate *time.Time `json:"release_date,omitempty"`
Tags []TagView `json:"tags"`
Image *ImageView `json:"image"`
Author UserView `json:"author"`
}
type ResourceDetailView struct {
@@ -47,6 +49,7 @@ type ResourceDetailView struct {
Links []Link `json:"links"`
Article string `json:"article"`
CreatedAt time.Time `json:"createdAt"`
ReleaseDate *time.Time `json:"releaseDate,omitempty"`
Tags []TagView `json:"tags"`
Images []ImageView `json:"images"`
Files []FileView `json:"files"`
@@ -81,12 +84,13 @@ func (r *Resource) ToView() ResourceView {
}
return ResourceView{
ID: r.ID,
Title: r.Title,
CreatedAt: r.CreatedAt,
Tags: tags,
Image: image,
Author: r.User.ToView(),
ID: r.ID,
Title: r.Title,
CreatedAt: r.CreatedAt,
ReleaseDate: r.ReleaseDate,
Tags: tags,
Image: image,
Author: r.User.ToView(),
}
}
@@ -115,6 +119,7 @@ func (r *Resource) ToDetailView() ResourceDetailView {
Links: r.Links,
Article: r.Article,
CreatedAt: r.CreatedAt,
ReleaseDate: r.ReleaseDate,
Tags: tags,
Images: images,
Files: files,

View File

@@ -30,6 +30,7 @@ type ResourceParams struct {
Title string `json:"title" binding:"required"`
AlternativeTitles []string `json:"alternative_titles"`
Links []model.Link `json:"links"`
ReleaseDate *time.Time `json:"release_date"`
Tags []uint `json:"tags"`
Article string `json:"article"`
Images []uint `json:"images"`
@@ -106,6 +107,7 @@ func CreateResource(uid uint, params *ResourceParams) (uint, error) {
AlternativeTitles: params.AlternativeTitles,
Article: params.Article,
Links: params.Links,
ReleaseDate: params.ReleaseDate,
Images: images,
Tags: tags,
UserID: uid,
@@ -533,6 +535,7 @@ func UpdateResource(uid, rid uint, params *ResourceParams) error {
r.AlternativeTitles = params.AlternativeTitles
r.Article = params.Article
r.Links = params.Links
r.ReleaseDate = params.ReleaseDate
r.Gallery = gallery
r.GalleryNsfw = nsfw
r.Characters = characters