package dto

type CreateClientRequest struct {
	// Core identity — form sends first_name (snake), rest is camelCase
	FirstName string `json:"first_name"`
	LastName  string `json:"last_name"`
	Email     string `json:"email"`
	Password  string `json:"password"`
	Phone     string `json:"phone"`

	// Location
	Address       string `json:"address"`
	City          string `json:"city"`
	State         string `json:"businessState"`
	Neighbourhood string `json:"neighbourhood"`
	Pincode       string `json:"pincode"`

	// GPS survey data — form sends snake_case for lat/long
	SurveyLat     float64 `json:"survey_lat"`
	SurveyLong    float64 `json:"survey_long"`
	SurveyAddress string  `json:"surveyAddress"`
	SurveyZone    string  `json:"surveyZone"`
	SurveyPincode string  `json:"surveyPincode"`

	// Business profile — form sends camelCase
	BusinessType      string `json:"businessType"`
	Status            string `json:"status"`
	ShippingFrequency string `json:"frequency"`
	LogisticsSegment  string `json:"logisticsSegment"`
	TransitFrom       string `json:"transitFrom"`
	TransitTo         string `json:"transitTo"`

	// Full-consent-only fields
	ParcelVolume       float64 `json:"parcelVolume"`
	ActiveContracts    int     `json:"activeContracts"`
	LogisticsProvider  string  `json:"provider"`
	ProviderEfficiency string  `json:"efficiency"`
	Notes              string  `json:"notes"`

	// Consent & registration tracking
	DataConsent        string `json:"dataConsent"`
	RegistrationSource string `json:"registration_source"`
	RegisteredByID     uint64 `json:"registered_by_id"`
}

type ClientResponse struct {
	ID          uint64 `json:"id"`
	CreatedAt   string `json:"created_at"`
	LastUpdated string `json:"lastUpdated"`

	// Core identity
	FirstName string `json:"first_name"`
	LastName  string `json:"last_name"`
	Email     string `json:"email"`
	Phone     string `json:"phone"`

	// Location
	Address       string `json:"address"`
	City          string `json:"city"`
	State         string `json:"businessState"`
	Neighbourhood string `json:"neighbourhood"`
	Pincode       string `json:"pincode"`

	// GPS survey data
	SurveyLat     float64 `json:"survey_lat"`
	SurveyLong    float64 `json:"survey_long"`
	SurveyAddress string  `json:"surveyAddress"`
	SurveyZone    string  `json:"surveyZone"`
	SurveyPincode string  `json:"surveyPincode"`

	// Business profile
	BusinessType      string `json:"businessType"`
	Status            string `json:"status"`
	ShippingFrequency string `json:"frequency"`
	LogisticsSegment  string `json:"logisticsSegment"`
	TransitFrom       string `json:"transitFrom"`
	TransitTo         string `json:"transitTo"`

	// Full-consent-only fields
	ParcelVolume       float64 `json:"parcelVolume"`
	ActiveContracts    int     `json:"activeContracts"`
	LogisticsProvider  string  `json:"provider"`
	ProviderEfficiency string  `json:"efficiency"`
	Notes              string  `json:"notes"`

	// Consent & registration tracking
	DataConsent        string `json:"dataConsent"`
	RegistrationSource string `json:"registration_source"`
	RegisteredByID     uint64 `json:"registered_by_id"`
	Role               string `json:"role"`
}
