Clean slate initialization of Goondex - a fast, local-first media indexer. Features: - SQLite database with WAL mode and foreign keys - Full schema for performers, studios, scenes, and tags - Many-to-many relationships via junction tables - CRUD stores for all entities with search capabilities - CLI with performer/studio/scene search commands - Pluggable scraper architecture with registry - TPDB client stub (ready for implementation) - Configuration system via YAML files - Comprehensive .gitignore and documentation Architecture: - cmd/goondex: CLI application with Cobra - cmd/goondexd: Daemon placeholder for v0.2.0 - internal/db: Database layer with stores - internal/model: Clean data models - internal/scraper: Scraper interface and TPDB client - config/: YAML configuration templates Database schema includes indexes on common query fields and uses RFC3339 timestamps for consistency. Built and tested successfully with Go 1.25.4. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
21 lines
890 B
Go
21 lines
890 B
Go
package model
|
|
|
|
import "time"
|
|
|
|
// Performer represents a performer/actor in the database
|
|
type Performer struct {
|
|
ID int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
Aliases string `json:"aliases,omitempty"` // comma-separated for v0.1
|
|
Nationality string `json:"nationality,omitempty"` // ISO country code
|
|
Country string `json:"country,omitempty"` // full country name
|
|
Gender string `json:"gender,omitempty"` // male/female/trans/other
|
|
ImagePath string `json:"image_path,omitempty"`
|
|
ImageURL string `json:"image_url,omitempty"`
|
|
Bio string `json:"bio,omitempty"`
|
|
Source string `json:"source,omitempty"` // tpdb, ae, etc.
|
|
SourceID string `json:"source_id,omitempty"` // remote ID at source
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|