package models import ( "time" ) type PartnerInfo struct { Partnerid int `json:"partnerid" gorm:"primaryKey;column:partnerid"` Partnername string `json:"partnername" gorm:"column:partnername;not null"` Partnertypeid int `json:"partnertypeid" gorm:"column:partnertypeid"` Contactno string `json:"contactno" gorm:"column:contactno"` Status string `json:"status" gorm:"column:status;default:Active"` Createdat time.Time `json:"createdat" gorm:"column:createdat;default:CURRENT_TIMESTAMP"` Updatedat time.Time `json:"updatedat" gorm:"column:updatedat;default:CURRENT_TIMESTAMP"` } func (PartnerInfo) TableName() string { return "partnerinfo" } type Hub struct { Hubid int `json:"hubid" gorm:"primaryKey;column:hubid"` Hubname string `json:"hubname" gorm:"column:hubname;not null"` Hubtype string `json:"hubtype" gorm:"column:hubtype;not null"` // sorting_center, delivery_hub Applocationid int `json:"applocationid" gorm:"column:applocationid"` Contactno string `json:"contactno" gorm:"column:contactno"` Address string `json:"address" gorm:"column:address"` Latitude float64 `json:"latitude" gorm:"column:latitude"` Longitude float64 `json:"longitude" gorm:"column:longitude"` Pincode string `json:"pincode" gorm:"column:pincode"` Status string `json:"status" gorm:"column:status;default:Active"` // Active, InActive Createdat time.Time `json:"createdat" gorm:"column:createdat;default:CURRENT_TIMESTAMP"` Updatedat time.Time `json:"updatedat" gorm:"column:updatedat;default:CURRENT_TIMESTAMP"` Createdby int `json:"createdby" gorm:"column:createdby"` Updatedby int `json:"updatedby" gorm:"column:updatedby"` Deletedat *time.Time `json:"deletedat,omitempty" gorm:"column:deletedat"` } func (Hub) TableName() string { return "hubs" } type Vehicle struct { Vehicleid int `json:"vehicleid" gorm:"primaryKey;column:vehicleid"` Vehicleno string `json:"vehicleno" gorm:"primaryKey;column:vehicleno;unique;not null"` Vehicletype string `json:"vehicletype" gorm:"column:vehicletype;not null"` Maxweight float64 `json:"maxweight" gorm:"column:maxweight;not null"` Maxvolume float64 `json:"maxvolume" gorm:"column:maxvolume;not null"` Partnerid *int `json:"partnerid" gorm:"column:partnerid"` Batterypercentage int `json:"batterypercentage" gorm:"column:batterypercentage"` Status string `json:"status" gorm:"column:status;default:Available"` // Available, In_Transit, Maintenance, InActive Createdat time.Time `json:"createdat" gorm:"column:createdat;default:CURRENT_TIMESTAMP"` Updatedat time.Time `json:"updatedat" gorm:"column:updatedat;default:CURRENT_TIMESTAMP"` Createdby int `json:"createdby" gorm:"column:createdby"` Updatedby int `json:"updatedby" gorm:"column:updatedby"` Deletedat *time.Time `json:"deletedat,omitempty" gorm:"column:deletedat"` } func (Vehicle) TableName() string { return "vehicles" } type AppUser struct { Userid int `json:"userid" gorm:"primaryKey;column:userid"` Authname string `json:"authname" gorm:"column:authname;not null"` Email string `json:"email" gorm:"column:email;unique;not null"` Contactno string `json:"contactno" gorm:"column:contactno;not null"` Password string `json:"-" gorm:"column:password;not null"` Roleid int `json:"roleid" gorm:"column:roleid;not null"` Hubid *int `json:"hubid" gorm:"column:hubid"` Applocationid int `json:"applocationid" gorm:"column:applocationid"` Partnerid *int `json:"partnerid" gorm:"column:partnerid"` Tenantid int `json:"tenantid" gorm:"column:tenantid"` Configid int `json:"configid" gorm:"column:configid;default:1"` Onduty int `json:"onduty" gorm:"column:onduty;default:0"` Status string `json:"status" gorm:"column:status;default:Active"` Createdat time.Time `json:"createdat" gorm:"column:createdat;default:CURRENT_TIMESTAMP"` Updatedat time.Time `json:"updatedat" gorm:"column:updatedat;default:CURRENT_TIMESTAMP"` } func (AppUser) TableName() string { return "appusers" } type MilerProfile struct { Milerprofileid int `json:"milerprofileid" gorm:"primaryKey;column:milerprofileid"` Userid int `json:"userid" gorm:"column:userid;unique;not null"` Applocationid int `json:"applocationid" gorm:"column:applocationid;default:1"` Displayname string `json:"displayname" gorm:"column:displayname;not null"` Phone string `json:"phone" gorm:"column:phone;not null"` Profilephotourl string `json:"profilephotourl" gorm:"column:profilephotourl"` Vehicleid *int `json:"vehicleid" gorm:"column:vehicleid"` Defaultvehicletype string `json:"defaultvehicletype" gorm:"column:defaultvehicletype"` Currentlatitude float64 `json:"currentlatitude" gorm:"column:currentlatitude"` Currentlongitude float64 `json:"currentlongitude" gorm:"column:currentlongitude"` Currentpincode string `json:"currentpincode" gorm:"column:currentpincode"` Availabilitystatus string `json:"availabilitystatus" gorm:"column:availabilitystatus;default:Offline"` // Offline, Available, Assigned, On_Pickup, At_Customer, Picked_Up, On_Delivery, Break, Blocked Rating float64 `json:"rating" gorm:"column:rating;default:5.00"` Totalcompletedpickups int `json:"totalcompletedpickups" gorm:"column:totalcompletedpickups;default:0"` Totalcancelledpickups int `json:"totalcancelledpickups" gorm:"column:totalcancelledpickups;default:0"` Lastlocationupdatedat *time.Time `json:"lastlocationupdatedat" gorm:"column:lastlocationupdatedat"` Createdat time.Time `json:"createdat" gorm:"column:createdat;default:CURRENT_TIMESTAMP"` Updatedat time.Time `json:"updatedat" gorm:"column:updatedat;default:CURRENT_TIMESTAMP"` } func (MilerProfile) TableName() string { return "milerprofiles" } type AppCustomer struct { Appcustomerid int `json:"appcustomerid" gorm:"primaryKey;column:appcustomerid"` Firstname string `json:"firstname" gorm:"column:firstname;not null"` Lastname string `json:"lastname" gorm:"column:lastname"` Phone string `json:"phone" gorm:"column:phone;unique;not null"` Email string `json:"email" gorm:"column:email"` Loginpinhash string `json:"-" gorm:"column:loginpinhash"` Defaultlatitude float64 `json:"defaultlatitude" gorm:"column:defaultlatitude"` Defaultlongitude float64 `json:"defaultlongitude" gorm:"column:defaultlongitude"` Defaultpincode string `json:"defaultpincode" gorm:"column:defaultpincode"` Status string `json:"status" gorm:"column:status;default:Active"` // Active, Blocked, Deleted Configid int `json:"configid" gorm:"column:configid;default:1"` Lastloginat *time.Time `json:"lastloginat" gorm:"column:lastloginat"` Createdat time.Time `json:"createdat" gorm:"column:createdat;default:CURRENT_TIMESTAMP"` Updatedat time.Time `json:"updatedat" gorm:"column:updatedat;default:CURRENT_TIMESTAMP"` } func (AppCustomer) TableName() string { return "appcustomers" } type AppCustomerLocation struct { Appcustomerlocationid int `json:"appcustomerlocationid" gorm:"primaryKey;column:appcustomerlocationid"` Appcustomerid int `json:"appcustomerid" gorm:"column:appcustomerid"` Label string `json:"label" gorm:"column:label;default:Home"` Receivername string `json:"receivername" gorm:"column:receivername"` Receiverphone string `json:"receiverphone" gorm:"column:receiverphone"` Address string `json:"address" gorm:"column:address;not null"` Landmark string `json:"landmark" gorm:"column:landmark"` City string `json:"city" gorm:"column:city"` State string `json:"state" gorm:"column:state"` Pincode string `json:"pincode" gorm:"column:pincode;not null"` Latitude float64 `json:"latitude" gorm:"column:latitude;not null"` Longitude float64 `json:"longitude" gorm:"column:longitude;not null"` Isdefault bool `json:"isdefault" gorm:"column:isdefault;default:false"` Status string `json:"status" gorm:"column:status;default:Active"` Createdat time.Time `json:"createdat" gorm:"column:createdat;default:CURRENT_TIMESTAMP"` Updatedat time.Time `json:"updatedat" gorm:"column:updatedat;default:CURRENT_TIMESTAMP"` } func (AppCustomerLocation) TableName() string { return "appcustomerlocations" } type TenantLocation struct { Tenantlocationid int `json:"tenantlocationid" gorm:"primaryKey;column:tenantlocationid"` Tenantid int `json:"tenantid" gorm:"column:tenantid;not null"` Address string `json:"address" gorm:"column:address;not null"` City string `json:"city" gorm:"column:city;not null"` State string `json:"state" gorm:"column:state;not null"` Pincode string `json:"pincode" gorm:"column:pincode;not null"` Latitude float64 `json:"latitude" gorm:"column:latitude;not null"` Longitude float64 `json:"longitude" gorm:"column:longitude;not null"` Isprimary bool `json:"isprimary" gorm:"column:isprimary;default:false"` Status string `json:"status" gorm:"column:status;default:Active"` Createdat time.Time `json:"createdat" gorm:"column:createdat;default:CURRENT_TIMESTAMP"` Updatedat time.Time `json:"updatedat" gorm:"column:updatedat;default:CURRENT_TIMESTAMP"` } func (TenantLocation) TableName() string { return "tenantlocations" }