package dto_astrologer

type UploadDocumentRequest struct {
	MasterType     string `form:"master_type" binding:"required"`
	DocumentType   string `form:"document_type" binding:"required"`
	DocumentName   string `json:"document_name"`
	DocumentNumber string `form:"document_number"`
	FilePath       string `json:"file_path"`
}

type UploadDocumentResponse struct {
	DocumentID         uint   `json:"document_id"`
	MasterType         string `json:"master_type"`
	DocumentType       string `json:"document_type"`
	DocumentNumber     string `json:"document_number"`
	DocumentName       string `json:"document_name"`
	DocumentPath       string `json:"document_path"`
	DocumentURL        string `json:"document_url"`
	FileSize           int64  `json:"file_size"`
	MimeType           string `json:"mime_type"`
	VerificationStatus string `json:"verification_status"`

	CurrentStep          int    `json:"current_step"`
	CompletionPercentage int    `json:"completion_percentage"`
	NextStep             int    `json:"next_step"`
	NextScreen           string `json:"next_screen"`

	// KYC completeness for step 9. The upload itself always succeeds; these
	// report whether the mandatory financial set — Aadhaar, PAN and a cheque
	// or passbook — has reached astrologer_documents and, for the bank
	// documents, astrologer_bank_accounts. NextStep stays on 9 until it has.
	//
	// PendingDocuments carries the same labels kyc_message names, for a client
	// that would rather render the list itself than parse the sentence.
	IsKYCDocUpdated  bool     `json:"is_kyc_doc_updated"`
	KYCMessage       string   `json:"kyc_message"`
	PendingDocuments []string `json:"pending_documents"`

	// IsUploadedDocuments is the mirror of PendingDocuments — the labels of the
	// document groups already on file, read from astrologer_documents plus the
	// cancelled_cheque/passbook columns of astrologer_bank_accounts. It is not
	// limited to the mandatory KYC set: an Education or Experience document
	// shows up here too. Always an array, empty when nothing is uploaded.
	IsUploadedDocuments []string `json:"is_uploaded_documents"`
}
