Files
osdb-1-claude-opusplan/backend/internal/domain/publication.go
T
juliaandClaude Sonnet 4.6 fce4d67cbe feat: publication management with cover images, PDFs, and fruit images (story #04)
Full CRUD for publications; link fruits to publications; upload per-fruit
PDF descriptions and fruit images stored as BYTEA; fruit detail page shows
publication descriptions and images. ImageOverlayDrawer for cover thumbnail
full-size view.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 10:48:08 +02:00

48 lines
1.5 KiB
Go

package domain
import "time"
type Publication struct {
ID int `json:"id"`
Title string `json:"title"`
Author *string `json:"author"`
OSDBPubID string `json:"osdb_pub_id"`
ImageURL *string `json:"image_url,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type PublicationWriteDTO struct {
Title string `json:"title"`
Author *string `json:"author"`
OSDBPubID string `json:"osdb_pub_id"`
}
type PublicationFruit struct {
FruitID int `json:"fruit_id"`
Name string `json:"name"`
OSDBNumber string `json:"osdb_number"`
}
type PublicationDescription struct {
ID int `json:"id"`
PublicationID int `json:"publication_id"`
FruitID int `json:"fruit_id"`
FruitName string `json:"fruit_name"`
PublicationTitle string `json:"publication_title"`
URL string `json:"url"`
CreatedAt time.Time `json:"created_at"`
}
type PublicationFruitImage struct {
ID int `json:"id"`
PublicationID int `json:"publication_id"`
PublicationTitle string `json:"publication_title"`
PublicationAuthor *string `json:"publication_author"`
FruitID int `json:"fruit_id"`
Filename *string `json:"filename"`
ImageType string `json:"image_type"`
URL string `json:"url"`
CreatedAt time.Time `json:"created_at"`
}