package dto

type AddKundaliRequest struct {
	Kundali []KundaliInput `json:"kundali" binding:"required"`

	// Amount is accepted for backwards compatibility and ignored. Kundali
	// generation is free, and a price sent by the client was never
	// authoritative — see the service comment on AddKundali.
	Amount float64 `json:"amount"`

	IsMatch bool `json:"is_match"`

	// Sections optionally narrows the response to certain groups, and with it
	// the number of upstream calls made. Empty means the complete kundali.
	// Valid values are the top-level keys of the response itself:
	//
	//	basic        request echo, panchang, ashtakvarga, manglik dosh
	//	chart        chart images, planet details, personal characteristics
	//	kp           KP houses and planets
	//	ashtakvarga  ashtakvarga table and its chart image
	//	dasha        vimshottari and yogini dashas
	//	reports      general, remedies and dosha reports
	//	others       extended details, divisional charts, aspects, 12 month prediction
	//
	// A complete kundali is around forty metered upstream calls, so a screen
	// that renders one tab should name its group.
	Sections []string `json:"sections"`

	// Detailed is accepted and ignored. The per-planet reports and
	// binnashtakvarga it used to gate are part of the default response now.
	Detailed bool `json:"detailed"`

	// SkipPDF skips building the report PDF. Use it for the in-app kundali
	// screens, which render from the JSON and only need the PDF when the user
	// taps Download.
	SkipPDF bool `json:"skip_pdf"`

	// VendorPDF additionally asks VedicAstroAPI for its own report PDF and
	// returns it as vedic_pdf_url. Opt-in: that endpoint is not on every plan
	// and currently answers with an internal error on this one.
	VendorPDF bool `json:"vendor_pdf"`
}

type KundaliInput struct {
	ID         uint    `json:"id,omitempty"`
	Lang       string  `json:"lang"`
	Name       string  `json:"name"`
	Gender     string  `json:"gender"`
	BirthDate  string  `json:"birthDate"`
	BirthTime  string  `json:"birthTime"`
	BirthPlace string  `json:"birthPlace"`
	Latitude   float64 `json:"latitude"`
	Longitude  float64 `json:"longitude"`
	Timezone   float64 `json:"timezone"`
	PdfType    string  `json:"pdf_type"`
	MatchType  string  `json:"match_type"`
	ForMatch   bool    `json:"forMatch"`
}
