92 lines
3.1 KiB
Go
92 lines
3.1 KiB
Go
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"`
|
|
}
|