package models

import "time"

type Tenantinfo struct {
	Tenantid        int    `json:"tenantid" gorm:"Primary_Key"`
	Locationid      int    `json:"locationid"`
	Tenantname      string `json:"tenantname"`
	Locationname    string `json:"locationname"`
	Tenanttype      string `json:"tenanttype"`
	Registrationno  string `json:"registrationno"`
	Tenanttoken     string `json:"tenanttoken"`
	Companyname     string `json:"companyname"`
	Primaryemail    string `json:"primaryemail"`
	Primarycontact  string `json:"primarycontact"`
	Locationcatact  string `json:"locationcontact"`
	Categoryid      int    `json:"categoryid"`
	Subcategoryid   int    `json:"subcategoryid"`
	Address         string `json:"address"`
	Suburb          string `json:"suburb"`
	City            string `json:"city"`
	State           string `json:"state"`
	Postcode        string `json:"postcode"`
	Latitude        string `json:"latitude"`
	Longitude       string `json:"longitude"`
	Tenantimage     string `json:"tenantimage"`
	Tenantinfo      string `json:"tenantinfo"`
	Paymenttype     int    `json:"paymenttype"`
	Paymode1        int    `json:"paymode1"`
	Paymode2        int    `json:"paymode2"`
	Promotion       int    `json:"promotion"`
	Partnerid       int    `json:"partnerid"`
	Minorder        int    `json:"minorder"`
	Applocationid   int    `json:"applolcationid"`
	Applocation     string `json:"applocation"`
	Approved        int    `json:"approved"`
	Moduleid        int    `json:"moduleid"`
	Subcategoryname string `json:"subcategoryname"`
	Firstname       string `json:"firstname"`
	Lastname        string `json:"lastname"`
	Accountname     string `json:"Accountname"`
	Status          string `json:"status"`
	Allocationid    int    `json:"allocationid"`
	Allocationtype  string `json:"allocationtype"`
	Allocationmode  int    `json:"allocationmode"`
}

type Tenantlocations struct {
	Locationid     int    `json:"locationid" gorm:"Primary_Key"`
	Tenantid       int    `json:"tenantid"`
	Applocationid  int    `json:"applocationid"`
	Moduleid       int    `json:"moduleid"`
	Roleid         int    `json:"roleid" gorm:"-"`
	Locationname   string `json:"locationname"`
	Email          string `json:"email"`
	Contactno      string `json:"contactno"`
	Latitude       string `json:"latitude"`
	Longitude      string `json:"longitude"`
	Address        string `json:"address"`
	Suburb         string `json:"suburb"`
	City           string `json:"city"`
	State          string `json:"state"`
	Postcode       string `json:"postcode"`
	Opentime       string `json:"opentime"`
	Closetime      string `json:"closetime"`
	Partnerid      int    `json:"partnerid"`
	Deliveryradius int    `json:"deliveryradius"`
	Deliverymins   int    `json:"deliverymins"`
	Cancelsecs     int    `json:"cancelsecs"`
	Status         string `json:"status" gorm:"default:Active"`
}

type Tenantslot struct {
	Slot1 string `json:"slot1"`
	Slot2 string `json:"slot2"`
	Slot3 string `json:"slot3"`
}

type CreateTenantCustomerRequest struct {
	ModuleID           int `json:"moduleid"`
	TenantID           int `json:"tenantid"`
	LocationID         int `json:"locationid"`
	CustomerID         int `json:"customerid"`
	CustomerLocationID int `json:"customerlocationid"`
	Status             int `json:"status"`
}

type Tenantcustomer struct {
	TenantCustomerID   int       `json:"tenantcustomerid" gorm:"primaryKey;column:tenantcustomerid"`
	ModuleID           int       `json:"moduleid" gorm:"column:moduleid"`
	TenantID           int       `json:"tenantid" gorm:"column:tenantid"`
	LocationID         int       `json:"locationid" gorm:"column:locationid"`
	CustomerID         int       `json:"customerid" gorm:"column:customerid"`
	CustomerLocationID int       `json:"customerlocationid" gorm:"column:customerlocationid"`
	Status             int       `json:"status" gorm:"column:status"`
	Created            time.Time `json:"created" gorm:"column:created;autoCreateTime"`
	Updated            time.Time `json:"updated" gorm:"column:updated;autoUpdateTime"`
}

type CustomerTenantResponse struct {
	// Customer Customers    `json:"customer"`
	Details []TenantInfo `json:"details"`
}

type Tenantpricing struct {
	Tenantpricingid int     `json:"tenantpricingid" gorm:"Primary_Key"`
	Pricingid       int     `json:"pricingid"`
	Tenantid        int     `json:"tenantid"`
	Applocationid   int     `json:"applocationid"`
	Pricingtypeid   int     `json:"pricingtypeid"`
	Slab            string  `json:"slab"`
	Configid        int     `json:"configid"`
	Pricingdate     string  `json:"pricingdate"`
	Baseprice       float32 `json:"baseprice"`
	Priceperkm      float32 `json:"priceperkm"`
	Minkm           int     `json:"minkm"`
	Maxkm           int     `json:"maxkm"`
	Orders          int     `json:"orders"`
	Othercharges    float32 `json:"othercharges"`
}

type StaffInfo struct {
	Userid        int    `json:"userid"`
	Authname      string `json:"authname"`
	Configid      int    `json:"configid"`
	Authmode      int    `json:"authmode"`
	Roleid        int    `json:"roleid"`
	Firstname     string `json:"firstname"`
	Lastname      string `json:"lastname"`
	Fullname      string `json:"fullname"`
	Password      string `json:"password"`
	Email         string `json:"email"`
	Contactno     string `json:"contactno"`
	Address       string `json:"address"`
	Suburb        string `json:"suburb"`
	City          string `json:"city"`
	State         string `json:"state"`
	Postcode      string `json:"postcode"`
	Userfcmtoken  string `json:"userfcmtoken"`
	Pin           int    `json:"pin"`
	Applocationid int    `json:"applocationid"`
	Partnerid     int    `json:"partnerid"`
	Tenantid      int    `json:"tenantid"`
	Locationid    int    `json:"locationid"`
	Locationname  string `json:"locationname"`
}

type Tenantuser struct {
	Userid        int    `json:"userid" gorm:"Primary_Key"`
	Authname      string `json:"authname"`
	Firstname     string `json:"firstname"`
	Lastname      string `json:"lastname"`
	Password      string `json:"password"`
	Email         string `json:"email"`
	Dialcode      string `json:"dialcode"`
	Contactno     string `json:"contactno"`
	Configid      int    `json:"configid"`
	Authmode      int    `json:"authmode"`
	Roleid        int    `json:"roleid"`
	Pin           int    `json:"pin"`
	Deviceid      string `json:"deviceid"`
	Devicetype    string `json:"devicetype"`
	Userfcmtoken  string `json:"userfcmtoken"`
	Address       string `json:"address"`
	Suburb        string `json:"suburb"`
	City          string `json:"city"`
	State         string `json:"state"`
	Postcode      string `json:"postcode"`
	Partnerid     int    `json:"partnerid"`
	Tenantid      int    `json:"tenantid"`
	Locationid    int    `json:"locationid"`
	Applocationid int    `json:"applocationid"`
	Status        string `json:"status"`
}

type Tenants struct {
	Tenantid        int             `json:"tenantid" gorm:"Primary_Key"`
	Tenantname      string          `json:"tenantname"`
	Configid        int             `json:"configid"`
	Partnerid       int             `json:"partnerid"`
	Moduleid        int             `json:"moduleid"`
	Tenanttype      string          `json:"tenanttype"`
	Registrationno  string          `json:"registrationno"`
	Tenanttoken     string          `json:"tenanttoken"`
	Companyname     string          `json:"companyname"`
	Devicetype      string          `json:"devicetype"`
	Deviceid        string          `json:"deviceid"`
	Firstname       string          `json:"firstname"`
	Primaryemail    string          `json:"primaryemail"`
	Primarycontact  string          `json:"primarycontact"`
	Categoryid      int             `json:"categoryid"`
	Subcategoryid   int             `json:"subcategoryid"`
	Address         string          `json:"address"`
	Suburb          string          `json:"suburb"`
	City            string          `json:"city"`
	State           string          `json:"state"`
	Postcode        string          `json:"postcode"`
	Latitude        string          `json:"latitude"`
	Longitude       string          `json:"longitude"`
	Tenantimage     string          `json:"tenantimage"`
	Tenantinfo      string          `json:"tenantinfo"`
	Paymode1        int             `json:"paymode1"`
	Paymode2        int             `json:"paymode2"`
	Promotion       int             `json:"promotion"`
	Minorder        int             `json:"minorder"`
	Applocationid   int             `json:"applocationid"`
	Approved        *int            `json:"approved" gorm:"default:0"`
	Status          string          `json:"status" gorm:"default:Active"`
	Partneruserid   int             `json:"partneruserid"`
	Tenantlocations Tenantlocations `json:"tenantlocations" gorm:"ForeignKey:tenantid"`
	// Tenantsubscriptions Tenantsubscriptions `json:"tenantsubscriptions" gorm:"ForeignKey:tenantid"`
}

type TenantSearch struct {
	Tenantname  string `json:"tenantname"`
	Productname string `json:"productname"`
	Subcatname  string `json:"subcatname"`
}
