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

	// Physical attributes
	Gender              string `json:"gender,omitempty"`           // male/female/trans/other
	Birthday            string `json:"birthday,omitempty"`         // YYYY-MM-DD
	Astrology           string `json:"astrology,omitempty"`        // zodiac sign
	Birthplace          string `json:"birthplace,omitempty"`
	Ethnicity           string `json:"ethnicity,omitempty"`
	Nationality         string `json:"nationality,omitempty"`      // ISO country code
	Country             string `json:"country,omitempty"`          // full country name
	EyeColor            string `json:"eye_color,omitempty"`
	HairColor           string `json:"hair_color,omitempty"`
	Height              int    `json:"height,omitempty"`           // cm
	Weight              int    `json:"weight,omitempty"`           // kg
	Measurements        string `json:"measurements,omitempty"`     // e.g., "32A-24-34"
	CupSize             string `json:"cup_size,omitempty"`         // e.g., "32A"
	TattooDescription   string `json:"tattoo_description,omitempty"`
	PiercingDescription string `json:"piercing_description,omitempty"`
	BoobJob             string `json:"boob_job,omitempty"`         // True/False as string

	// Career information
	Career         string `json:"career,omitempty"`          // e.g., "2010–2020"
	CareerStartYear int   `json:"career_start_year,omitempty"`
	CareerEndYear   int   `json:"career_end_year,omitempty"`
	DateOfDeath     string `json:"date_of_death,omitempty"`   // YYYY-MM-DD
	Active          bool   `json:"active"`

	// Media
	ImagePath   string `json:"image_path,omitempty"`
	ImageURL    string `json:"image_url,omitempty"`
	PosterURL   string `json:"poster_url,omitempty"`
	Bio         string `json:"bio,omitempty"`

	// Source tracking
	Source      string    `json:"source,omitempty"`       // tpdb, ae, etc.
	SourceID    string    `json:"source_id,omitempty"`    // remote UUID
	SourceNumericID int   `json:"source_numeric_id,omitempty"` // TPDB numeric ID

	CreatedAt   time.Time `json:"created_at"`
	UpdatedAt   time.Time `json:"updated_at"`
}
