package models import "gorm.io/gorm" type Deliveries struct { Deliveryid int `json:"deliveryid" gorm:"Primary_Key"` Orderheaderid int `json:"orderheaderid"` Applocationid int `json:"applocationid"` Configid int `json:"configid"` Partnerid int `json:"partnerid"` Tenantid int `json:"tenantid"` Moduleid int `json:"moduleid"` Locationid int `json:"locationid"` Categoryid int `json:"categoryid"` Userid int `json:"userid"` Subcategoryid int `json:"subcategoryid"` Orderid string `json:"orderid"` Deliverydate string `json:"deliverydate"` Orderstatus string `json:"orderstatus"` Assigntime string `json:"assigntime"` Starttime string `json:"starttime"` Arrivaltime string `json:"arrivaltime"` Pickuptime string `json:"pickuptime"` Acceptedtime string `json:"acceptedtime"` Canceltime string `json:"canceltime"` Itemcount int `json:"itemcount"` Orderamount float64 `json:"orderamount" gorm:"type:numeric"` Customerid int `json:"customerid"` Pickupcustomer string `json:"pickupcustomer"` Pickupcontactno string `json:"pickupcontactno"` Pickuplocationid int `json:"pickuplocationid"` Pickupaddress string `json:"Pickupaddress"` Pickuplocation string `json:"pickuplocation"` Pickuplat string `json:"pickuplat"` Pickuplon string `json:"pickuplon"` Deliverycustomerid int `json:"deliverycustomerid"` Deliverylocationid int `json:"deliverylocationid"` Deliverycustomer string `json:"deliverycustomer"` Deliverycontactno string `json:"deliverycontactno"` Deliveryaddress string `json:"deliveryaddress"` Deliverylocation string `json:"deliverylocation"` Droplat string `json:"droplat"` Droplon string `json:"droplon"` Deliverylat string `json:"deliverylat"` Deliverylong string `json:"deliverylong"` Deliverycharges float64 `json:"deliverycharges" gorm:"type:numeric"` Deliveryamt float64 `json:"deliveryamt" gorm:"type:numeric"` Deliverytype string `json:"deliverytype"` Notes string `json:"notes"` Ordernotes string `json:"ordernotes"` Riderslat string `json:"riderslat"` Riderslon string `json:"riderslon"` Firstmilekm float64 `json:"firstmilekm" gorm:"type:numeric"` Firstmilecharges float64 `json:"firstmilecharges" gorm:"type:numeric"` Lastmilecharges float64 `json:"lastmilecharges" gorm:"type:numeric"` Ridercharges float64 `json:"ridercharges" gorm:"type:numeric"` Kms string `json:"kms"` Actualkms string `json:"actualkms"` Smsdelivery int `json:"smsdelivery"` Paymenttype int `json:"paymenttype" gorm:"default:0"` Previouskms int `json:"previouskms" gorm:"default:0"` Cumulativekms int `json:"cumulativekms" gorm:"default:0"` Step int `json:"step" gorm:"default:0"` Eta string `json:"eta" gorm:"type:varchar(100);default:''"` Quantity int `josn:"quantity"` Collectionamt float64 `json:"collectionamt" gorm:"type:numeric"` Collectedamt float64 `json:"collectedamt" gorm:"type:numeric"` Collectionstatus float64 `json:"collectionstatus" gorm:"type:numeric"` Ridertime int `json:"ridertime"` // GPS tracking fields (nullable — old app versions may not send these) RawLatitude *string `json:"raw_latitude" gorm:"column:raw_latitude"` RawLongitude *string `json:"raw_longitude" gorm:"column:raw_longitude"` VelocityLat *string `json:"velocity_lat" gorm:"column:velocity_lat"` VelocityLng *string `json:"velocity_lng" gorm:"column:velocity_lng"` Speed *string `json:"speed" gorm:"column:speed"` Heading *string `json:"heading" gorm:"column:heading"` Expecteddeliverytime string `json:"expecteddeliverytime"` Profit float64 `json:"profit"` Transitminutes float64 `json:"transitminutes" gorm:"type:numeric"` Calculationdistancekm float64 `json:"calculationdistancekm" gorm:"type:numeric"` } type UpdateDeliveryStatus struct { Deliveryid int `json:"deliveryid"` Deliverytype string `json:"deliverytype"` Pickuplocationid int `json:"pickuplocationid"` Deliverylocationid int `json:"deliverylocationid"` Orderheaderid int `json:"orderheaderid"` Userid int `json:"userid"` Orderstatus string `json:"orderstatus"` Assigntime string `json:"assigntime"` Starttime string `json:"starttime"` Arrivaltime string `json:"arrivaltime"` Pickuptime string `json:"pickuptime"` Acceptedtime string `json:"acceptedtime"` Deliverytime string `json:"deliverytime"` Canceltime string `json:"canceltime"` Pickuplat string `json:"pickuplat"` Pickuplon string `json:"picklon"` Pickupimage string `json:"pickupimage"` Riderslat string `json:"riderslat"` Riderslon string `json:"riderslon"` Deliverylat string `json:"deliverylat"` Deliverylong string `json:"deliverylong"` Dropimage string `json:"dropimage"` Address string `json:"address" gorm:"<-:false"` Suburb string `json:"suburb" gorm:"<-:false"` City string `json:"city" gorm:"<-:false"` State string `json:"state" gorm:"<-:false"` Postcode string `json:"postcode" gorm:"<-:false"` Deliveryamt float64 `json:"deliveryamt" gorm:"type:numeric"` Kms string `json:"kms"` // Actualkms string `json:"actualkms"` Riderkms string `json:"riderkms"` Ridercharges float64 `json:"ridercharges" gorm:"type:numeric"` Kmcal string `json:"kmcal"` Notes string `json:"notes"` Feedback string `json:"feedback"` Smsdelivery int `json:"smsdelivery"` Previouskms int `json:"previouskms" gorm:"default:0"` Cumulativekms int `json:"cumulativekms" gorm:"default:0"` Step int `json:"step" gorm:"default:0"` Eta string `json:"eta"` Quantity int `josn:"quantity"` Collectionamt float64 `json:"collectionamt" gorm:"type:numeric"` Collectedamt float64 `json:"collectedamt" gorm:"type:numeric"` Collectionstatus int `json:"collectionstatus" gorm:"default:0"` Ridertime int `json:"ridertime" gorm:"default:0"` Bonuspts int `json:"bonuspts"` Skippedtime string `json:"skippedtime"` Activelat string `json:"activelat"` Activelon string `json:"activelon"` // GPS tracking fields (nullable — old app versions may not send these) RawLatitude *string `json:"raw_latitude" gorm:"column:raw_latitude"` RawLongitude *string `json:"raw_longitude" gorm:"column:raw_longitude"` VelocityLat *string `json:"velocity_lat" gorm:"column:velocity_lat"` VelocityLng *string `json:"velocity_lng" gorm:"column:velocity_lng"` Speed *string `json:"speed" gorm:"column:speed"` Heading *string `json:"heading" gorm:"column:heading"` Expecteddeliverytime string `json:"expecteddeliverytime"` Profit float64 `json:"profit"` Transitminutes float64 `json:"transitminutes" gorm:"type:numeric"` Calculationdistancekm float64 `json:"calculationdistancekm" gorm:"type:numeric"` } type Deliveryinfo struct { Deliveryid int `json:"deliveryid"` Orderheaderid int `json:"orderheaderid"` Applocationid int `json:"applocationid"` Applocation string `json:"applocation"` Configid int `json:"configid"` Partnerid int `json:"partnerid"` Tenantid int `json:"tenantid"` Moduleid int `json:"moduleid"` Locationid int `json:"locationid"` Categoryid int `json:"categoryid"` Userid int `json:"userid"` Subcategoryid int `json:"subcategoryid"` Orderid string `json:"orderid"` Deliverydate string `json:"deliverydate"` Orderstatus string `json:"orderstatus"` Assigntime string `json:"assigntime"` Starttime string `json:"starttime"` Arrivaltime string `json:"arrivaltime"` Pickuptime string `json:"pickuptime"` Acceptedtime string `json:"acceptedtime"` Deliverytime string `json:"deliverytime"` Canceltime string `json:"canceltime"` Itemcount int `json:"itemcount"` Orderamount float64 `json:"orderamount" gorm:"type:numeric"` Customerid int `json:"customerid"` Pickupcustomer string `json:"pickupcustomer"` Pickupcontactno string `json:"pickupcontactno"` Pickuplocationid int `json:"pickuplocationid"` Pickupaddress string `json:"Pickupaddress"` Pickuplocation string `json:"pickuplocation"` Pickuplat string `json:"pickuplat"` Pickuplon string `json:"pickuplon"` Deliverycustomerid int `json:"deliverycustomerid"` Deliverylocationid int `json:"deliverylocationid"` Deliverycustomer string `json:"deliverycustomer"` Deliverycontactno string `json:"deliverycontactno"` Deliveryaddress string `json:"deliveryaddress"` Deliverylocation string `json:"deliverylocation"` Droplat string `json:"droplat"` Droplon string `json:"droplon"` Deliverylat string `json:"deliverylat"` Deliverylong string `json:"deliverylong"` Deliverycharges float64 `json:"deliverycharges" gorm:"type:numeric"` Deliveryamt float64 `json:"deliveryamt" gorm:"type:numeric"` Deliverytype string `json:"deliverytype"` Notes string `json:"notes"` Ordernotes string `json:"ordernotes"` Riderslat string `json:"riderslat"` Riderslon string `json:"riderslon"` Firstmilekm float64 `json:"firstmilekm" gorm:"type:numeric"` Firstmilecharges float64 `json:"firstmilecharges" gorm:"type:numeric"` Lastmilecharges float64 `json:"lastmilecharges" gorm:"type:numeric"` Ridercharges float64 `json:"ridercharges" gorm:"type:numeric"` Kms string `json:"kms"` Actualkms string `json:"actualkms"` Riderkms string `json:"riderkms"` Paymenttype int `json:"paymenttype"` Tenantname string `json:"tenantname"` Tenantcontactno string `json:"tenantcontactno"` Tenanttoken string `json:"tenanttoken"` Tenantsuburb string `json:"tenantsuburb"` Tenantcity string `json:"tenantcity"` Tenantaddress string `json:"tenantaddress"` Locationname string `json:"locationname"` Locationcontactno string `json:"locationcontactno"` Locationsuburb string `json:"locationsuburb"` Locationaddress string `json:"locationaddress"` Ridername string `json:"ridername"` Userfcmtoken string `json:"userfcmtoken"` Queueid int `json:"queueid"` Smsdelivery int `json:"smsdelivery"` Customertoken string `json:"customertoken"` Ridercontact string `json:"ridercontact"` Previouskms int `json:"previouskms" ` Cumulativekms int `json:"cumulativekms" ` Step int `json:"step" gorm:"default:0"` Eta string `json:"eta" gorm:"type:varchar(100);default:''"` Quantity int `josn:"quantity"` Collectionamt float64 `json:"collectionamt" gorm:"type:numeric"` Collectedamt float64 `json:"collectedamt" gorm:"type:numeric"` Collectionstatus float64 `json:"collectionstatus" gorm:"type:numeric"` Ridertime int `json:"ridertime"` Slab string `json:"slab"` Pricingdate string `json:"pricingdate"` Baseprice float64 `json:"baseprice" gorm:"type:numeric"` Minkm int `json:"minkm"` Priceperkm float64 `json:"priceperkm" gorm:"type:numeric"` Maxkm int `json:"maxkm"` Orders int `json:"orders"` Othercharges float64 `json:"othercharges" gorm:"type:numeric"` Surgecharges float64 `json:"surgecharges" gorm:"type:numeric"` Expecteddeliverytime string `json:"expecteddeliverytime"` Profit float64 `json:"profit"` Transitminutes float64 `json:"transitminutes" gorm:"type:numeric"` Calculationdistancekm float64 `json:"calculationdistancekm" gorm:"type:numeric"` } type Deliveryqueues struct { Queueid int `json:"queueid" gorm:"Primary_Key"` Tenantid int `json:"tenantid"` Locationid int `json:"locationid"` Orderheaderid int `json:"orderheaderid"` Deliveryid int `json:"deliveryid"` Userid int `json:"userid"` Partnerid int `json:"partnerid"` Orderid string `json:"orderid"` Latitude string `json:"latitude"` Longitude string `json:"longitude"` Accept int `json:"accept"` Decline int `json:"decline"` Queuestatus int `json:"queuestatus"` } type Deliverylogs struct { Logid int `json:"logid" gorm:"Primary_Key"` Logdate string `json:"logdate"` Tenantid int `json:"tenantid"` Locationid int `json:"locationid"` Orderheaderid int `json:"orderheaderid"` Deliveryid int `json:"deliveryid"` Userid int `json:"userid"` Partnerid int `json:"partnerid"` Orderid string `json:"orderid"` Orderstatus string `json:"orderstatus"` Latitude string `json:"latitude"` Longitude string `json:"longitude"` Logstatus *int `json:"logstatus" gorm:"default:0"` Firstname string `json:"firstname"` Lastname string `json:"lastname"` // GPS tracking fields (nullable — old app versions may not send these) RawLatitude *string `json:"raw_latitude" gorm:"column:raw_latitude"` RawLongitude *string `json:"raw_longitude" gorm:"column:raw_longitude"` VelocityLat *string `json:"velocity_lat" gorm:"column:velocity_lat"` VelocityLng *string `json:"velocity_lng" gorm:"column:velocity_lng"` Speed *string `json:"speed" gorm:"column:speed"` Heading *string `json:"heading" gorm:"column:heading"` } type Deliverydet struct { Deliveries int `json:"deliveries"` Delivered int `json:"Delivered"` Cancelled int `json:"cancelled"` Kms float64 `json:"kms" gorm:"type:numeric"` Amount float64 `json:"amount" gorm:"type:numeric"` } type DeliverySummary struct { Total int `json:"total"` Created int `json:"created"` Pending int `json:"pending"` Accepted int `json:"accepted"` Arrived int `json:"arrived"` Picked int `json:"picked"` Active int `json:"active"` Delivered int `json:"delivered"` Cancelled int `json:"cancelled"` Skipped int `json:"skipped"` } type DeliveryDetailsCount struct { Assigned int `json:"assigned"` Accepted int `json:"accepted"` Arrived int `json:"Arrived"` Picked int `json:"picked"` Active int `json:"active"` Delivered int `json:"delivered"` Cancelled int `json:"cancelled"` } type ReportSummary struct { Tenantid int `json:"tenantid"` Tenantname string `json:"tenantname"` Locationid int `json:"locationid"` Locationname string `json:"locationname"` Totalorders int `json:"totalorders"` Orderscreated int `json:"orderscreated"` Orderspending int `json:"Orderspending"` Orderscompleted int `json:"orderscompleted"` Orderscancelled int `json:"orderscancelled"` Deliveriespending int `json:"deliveriespending"` Deliveriescompleted int `json:"deliveriescompleted"` Deliveriescancelled int `json:"deliveriescancelled"` Paylater float64 `json:"paylater" gorm:"type:numeric"` Payondelivery float64 `json:"payondelivery" gorm:"type:numeric"` Kms float64 `json:"kms" gorm:"type:numeric"` Actualkms float64 `json:"actualkms" gorm:"type:numeric"` Charges float64 `json:"charges" gorm:"type:numeric"` Previouskms int `json:"previouskms"` Cumulativekms int `json:"cumulativekms"` Deliveryamt float64 `json:"deliveryamt" gorm:"type:numeric"` Riderkms float64 `json:"riderkms" gorm:"type:numeric"` Quantity int `josn:"quantity"` Collectionamt float64 `json:"collectionamt" gorm:"type:numeric"` Collectedamt float64 `json:"collectedamt" gorm:"type:numeric"` Collectionstatus float64 `json:"collectionstatus" gorm:"type:numeric"` } type UserReportSummary struct { // 🔹 User (Rider) details Userid int `json:"userid"` Firstname string `json:"firstname"` Lastname string `json:"lastname"` Ridercontact string `json:"ridercontact"` // 🔹 Tenant details Tenantid int `json:"tenantid"` Tenantname string `json:"tenantname"` // 🔹 Location details Locationid int `json:"locationid"` Locationname string `json:"locationname"` // 🔹 Order summary Totalorders int `json:"totalorders"` Orderscreated int `json:"orderscreated"` Orderspending int `json:"orderspending"` Orderscompleted int `json:"orderscompleted"` Orderscancelled int `json:"orderscancelled"` // 🔹 Delivery summary Deliveriespending int `json:"deliveriespending"` Deliveriescompleted int `json:"deliveriescompleted"` Deliveriescancelled int `json:"deliveriescancelled"` // 🔹 Payment summary Paylater float64 `json:"paylater"` Payondelivery float64 `json:"payondelivery"` // 🔹 Distance summary Kms float64 `json:"kms"` Actualkms float64 `json:"actualkms"` Previouskms float64 `json:"previouskms"` Cumulativekms float64 `json:"cumulativekms"` Riderkms float64 `json:"riderkms"` // 🔹 Amount summary Charges float64 `json:"charges"` Deliveryamt float64 `json:"deliveryamt"` // 🔹 Collection summary Quantity int `json:"quantity"` Collectionamt float64 `json:"collectionamt"` Collectedamt float64 `json:"collectedamt"` Collectionstatus int `json:"collectionstatus"` } type Ridersummary struct { Userid int `json:"userid"` Firstname string `json:"firstname"` Lastname string `json:"lastname"` Ridercontact string `json:"ridercontact"` Tenantid int `json:"tenantid"` Tenantname string `json:"tenantname"` Locationid int `json:"locationid"` Locationname string `json:"locationname"` Totalorders int `json:"totalorders"` Pending int `json:"pending"` Assigned int `json:"assigned"` Accepted int `json:"accepted"` Picked int `json:"picked"` Arrived int `json:"arrived"` Active int `json:"active"` Skipped int `json:"skipped"` Delivered int `json:"delivered"` Cancelled int `json:"cancelled"` Kms float64 `json:"kms" gorm:"type:numeric"` Actualkms float64 `json:"actualkms" gorm:"type:numeric"` Previouskms int `json:"previouskms"` Cumulativekms int `json:"cumulativekms"` Payondelivery float64 `json:"payondelivery" gorm:"type:numeric"` Paylater float64 `json:"Paylater" gorm:"type:numeric"` Deliveryamt float64 `json:"deliveryamt" gorm:"type:numeric"` Status string `json:"status"` Quantity int `josn:"quantity"` Collectionamt float64 `json:"collectionamt" gorm:"type:numeric"` Collectedamt float64 `json:"collectedamt" gorm:"type:numeric"` Collectionstatus float64 `json:"collectionstatus" gorm:"type:numeric"` } type DeliveryQuery struct { Tenantid int Partnerid int UserID int Appuserid int Applocationid int Locationid int Configid int Fromdate string ToDate string Status string Pageno int Pagesize int Conn *gorm.DB Keyword string `json:"keyword"` }