package album

// Built-in shot template sets. Teams use these on day one, replace with domain-specific
// templates immediately. Three sets cover the main use cases out of the box.

// PortraitSession is a 6-shot set for photographing people.
// Covers headshots through editorial — everything a brand headshot session needs.
var PortraitSession = []ShotTemplate{
	{
		Label:     "Headshot",
		Direction: "close-up portrait, direct eye contact, neutral expression, clean studio lighting",
	},
	{
		Label:     "Casual",
		Direction: "relaxed smile, slight angle, soft natural window light, approachable mood",
	},
	{
		Label:     "Professional",
		Direction: "confident posture, formal attire, neutral gradient background, polished look",
	},
	{
		Label:     "Candid",
		Direction: "mid-shot, laughing naturally, environmental context, spontaneous feel",
	},
	{
		Label:     "Outdoor",
		Direction: "golden hour light, three-quarter angle, natural outdoor setting, warm tones",
	},
	{
		Label:     "Editorial",
		Direction: "dramatic side lighting, strong shadow, high contrast, artistic mood, magazine style",
	},
}

// ProductShoot is a 4-shot set for photographing physical products.
// Covers hero through packaging — standard e-commerce photography.
var ProductShoot = []ShotTemplate{
	{
		Label:     "Hero",
		Direction: "centered, white seamless background, clean even studio lighting, product fills 80% of frame",
	},
	{
		Label:     "Lifestyle",
		Direction: "product in use, aspirational natural setting, shallow depth of field, subject sharp, background blurred",
	},
	{
		Label:     "Detail",
		Direction: "macro close-up, texture and material quality visible, extreme shallow depth of field, pristine clarity",
	},
	{
		Label:     "Packaging",
		Direction: "box or packaging visible alongside product, minimal flat lay composition, brand colors present",
	},
}

// CharacterSheet is a 4-shot set for illustrated or animated characters.
// Covers neutral through action — standard character design reference set.
var CharacterSheet = []ShotTemplate{
	{
		Label:     "Neutral",
		Direction: "front-facing, neutral expression, white background, full character visible head to toe, reference sheet style",
	},
	{
		Label:     "Expression",
		Direction: "close-up on face, exaggerated emotion characteristic to the character, personality forward",
	},
	{
		Label:     "Action",
		Direction: "mid-shot, dynamic pose, characteristic action or gesture, energy and movement",
	},
	{
		Label:     "Idle",
		Direction: "relaxed casual pose, slight 3/4 angle, natural resting state, character at ease",
	},
}

// ShotTemplateSets maps set names to their shot template slices.
// Used by HTTP handlers to populate albums from named template sets.
var ShotTemplateSets = map[string][]ShotTemplate{
	"portrait":  PortraitSession,
	"product":   ProductShoot,
	"character": CharacterSheet,
}
