feat: project setup
This commit is contained in:
8
models/book/functions.go
Normal file
8
models/book/functions.go
Normal file
@@ -0,0 +1,8 @@
|
||||
package book
|
||||
|
||||
import "fmt"
|
||||
|
||||
// String helper method to convert dialogue struct into a string
|
||||
func (d *Dialogue) String() string {
|
||||
return fmt.Sprintf("%s", d.Content)
|
||||
}
|
||||
43
models/book/model.go
Normal file
43
models/book/model.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package book
|
||||
|
||||
// Book is a model for storing chapters, author, title, and total pages
|
||||
type Book struct {
|
||||
Title string `json:"title"`
|
||||
Chapters []Chapter `json:"chapters"`
|
||||
TotalPages int `json:"total_pages"`
|
||||
}
|
||||
|
||||
// Chapter is a model that holds chaper number and pages within that chapter
|
||||
type Chapter struct {
|
||||
Index int `json:"index"` // Chapter number
|
||||
Pages []Page `json:"pages"`
|
||||
}
|
||||
|
||||
// Page is model that stores page number and paragraphs
|
||||
type Page struct {
|
||||
Index int `json:"index"`
|
||||
Paragraphs []Paragraph `json:"paragraphs"`
|
||||
}
|
||||
|
||||
// Paragraph is a model that stores paragraph number and lines
|
||||
type Paragraph struct {
|
||||
Index int `json:"index"`
|
||||
Lines []Line `json:"lines"`
|
||||
}
|
||||
|
||||
// Line is an interface for storing the content of a line
|
||||
type Line struct {
|
||||
Index int `json:"index"`
|
||||
Content any `json:"content"`
|
||||
}
|
||||
|
||||
// Dialogue is a model that stores the speaker, and text
|
||||
type Dialogue struct {
|
||||
Speaker *string `json:"speaker,omitempty"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
// Narration is a model that stores text that isnt dialogue
|
||||
type Narration struct {
|
||||
Content string `json:"content"`
|
||||
|
||||
Reference in New Issue
Block a user