package models

import "time"

type Applocations struct {
	Applocationid     int                 `json:"applocationid" gorm:"Primary_Key"`
	Locationname      string              `json:"locationname"`
	Image             string              `json:"image"`
	City              string              `json:"city"`
	State             string              `json:"state"`
	Postcode          string              `json:"postcode"`
	Latitude          string              `json:"latitude"`
	Longitude         string              `json:"longitude"`
	Opentime          string              `json:"opentime"`
	Closetime         string              `json:"closetime"`
	Radius            int                 `json:"radius"`
	Applocationadmins []Applocationadmins `json:"applocationadmins" gorm:"ForeignKey:applocationid"`
}

type Applocationadmins struct {
	Applocationconfigid int    `json:"applocationconfigid" gorm:"Primary_Key"`
	Applocationid       int    `json:"applocationid"`
	Userid              int    `json:"userid"`
	Userfcmtoken        string `json:"userfcmtokem"`
	Notify              string `json:"notify"`
}

type ApplocationsResult struct {
	Code    int            `json:"code"`
	Status  bool           `json:"status"`
	Message string         `json:"message"`
	Details []Applocations `json:"details"`
}

type Apppricing struct {
	Pricingid     int     `json:"pricingid"`
	Pricingdate   string  `json:"pricingdate"`
	Pricingtypeid int     `json:"pricingtypeid"`
	Applocationid int     `json:"applocationid"`
	Configid      int     `json:"configid"`
	Slab          string  `json:"slab"`
	Baseprice     float32 `json:"baseprice"`
	Minkm         int     `json:"minkm"`
	Priceperkm    float32 `json:"priceperkm"`
	Maxkm         int     `json:"maxkm"`
	Minorder      int     `json:"minorder"`
	Status        int     `json:"status" gorm:"default:0"`
	Applocation   string  `json:"applocation" gorm:"<-:false"`
	Appname       string  `json:"appname" gorm:"<-:false"`
}

type Appconfig struct {
	Configid          int    `json:"configid"`
	Appname           string `json:"appname"`
	Paymentdevkey     string `json:"paymentdevkey"`
	Paymentlivekey    string `json:"paymentlivekey"`
	Fcmkey            string `json:"fcmkey"`
	Googleapikey      string `json:"googleapikey"`
	Applocationradius int    `json:"applocationradius"`
	Smsproviderid     int    `json:"smsproviderid"`
	Providerapi       string `json:"providerapi"`
	Providerkey       string `json:"providerkey"`
	Sender            string `json:"sender"`
	Templateid        string `json:"templateid"`
	Defaultprovider   int    `json:"defaultprovider"`
}

type Apptypes struct {
	Apptypeid int    `json:"apptypeid"`
	Typename  string `json:"typename"`
	Mapid     int    `json:"mapid"`
	Tag       string `json:"tag"`
	Status    string `json:"status"`
}

type Appsubcategories struct {
	Subcategoryid   int    `json:"subcategoryid"`
	Categoryid      int    `json:"categoryid"`
	Subcategoryname string `json:"subcategoryname"`
	Categoryname    string `json:"catgeoryname"`
	Moduleid        int    `json:"moduleid"`
	Status          string `json:"status"`
}

type AppCategory struct {
	Categoryid   int    `json:"categoryid"`
	Categoryname string `json:"categoryname"`
	Categorytype string `json:"categorytype"`
	Moduleid     int    `json:"moduleid"`
	Sortorder    int    `json:"sortorder"`
	Imageurl     string `json:"imageurl"`
	Iconurl      string `json:"iconurl"`
	Profileurl   string `json:"profileurl"`
	Crossaxis    int    `json:"crossaxis"`
	Mainaxis     int    `json:"mainaxis"`
	Status       string `json:"status"`
}

type AppModule struct {
	Moduleid       int     `json:"moduleid"`
	Modulename     string  `json:"modulename"`
	Categoryid     int     `json:"categoryid"`
	Baseprice      float32 `json:"baseprice"`
	Taxpercent     float32 `json:"taxpercent"`
	Taxamount      float32 `json:"taxamount"`
	Amount         float32 `json:"amount"`
	Commisiontype  string  `json:"commisiontype"`
	Commisionvalue float32 `json:"commisionvalue"`
	Content        string  `json:"content"`
	Logourl        string  `json:"logourl"`
	Iconurl        string  `json:"iconurl"`
	Sortorder      int     `json:"sortorder"`
	Status         string  `json:"status"`
	Createdby      int     `json:"createdby"`
}

type TenantNotification struct {
	Notificationid   int       `json:"notificationid"`
	Title            string    `json:"title"`
	Message          string    `json:"message"`
	Tenantid         int       `json:"tenantid"`
	Moduleid         int       `json:"moduleid"`
	Locationid       int       `json:"locationid"`
	Customerid       int       `json:"customerid"`
	Notificationdate time.Time `json:"notificationdate"`
	Successcode      int       `json:"successcode"`
}

type UserRoles struct {
	Roleid   int    `json:"roleid"`
	Rolename string `json:"rolename"`
	Configid int    `json:"configid"`
}

type RiderLog struct {
	UserID          int    `json:"userid"`
	Username        string `json:"username"`
	LogDate         string `json:"logdate"`
	Latitude        string `json:"latitude"`
	Longitude       string `json:"longitude"`
	Speed           string `json:"speed"`
	Heading         string `json:"heading"`
	Accuracy        string `json:"accuracy"`
	Status          string `json:"status"`
	OrderID         string `json:"orderid"`
	Battery         string `json:"battery"`
	IsCharging      bool   `json:"is_charging"`
	Connection      string `json:"connection"`
	LocationService string `json:"location_service"`
	IsBackground    bool   `json:"is_background"`
}

type RiderStatus struct {
	UserID int    `json:"userid"`
	Status string `json:"status"`
}
