package entity

import "mime/multipart"

type UpdateSrqCostInput struct {
	Srq_Id             int     `json:"srq_id" db:"Srq_Id" binding:"required"`
	SrqServiceCost     float64 `json:"srq_service_cost" db:"Srq_Service_Cost"`
	SrqMaterialCost    float64 `json:"srq_material_cost" db:"Srq_Material_Cost"`
	SrqLabourCost      float64 `json:"srq_labour_cost" db:"Srq_Labour_Cost"`
	Srq_Tax_Percentage float64 `json:"srq_tax_percentage" db:"Srq_Tax_Percentage"`
	SrqOtherCost       float64 `json:"srq_other_cost" db:"Srq_Other_Cost"`
	QuoteServiceCost   float64 `json:"quote_service_cost" db:"Quote_Service_Cost"`
	QuoteLabourCost    float64 `json:"quote_labour_cost" db:"Quote_Labour_Cost"`
	QuoteMaterialCost  float64 `json:"quote_material_cost" db:"Quote_Material_Cost"`
	QuoteTax           float64 `json:"quote_tax" db:"Quote_Tax"`
	QuoteOtherCost     float64 `json:"quote_other_cost" db:"Quote_Other_Cost"`
	Language_Code      int     `json:"language_code" default:"1"`
	Promo_Id           int     `json:"promoid" db:"Promo_Id"`
	Emp_Id             int     `json:"empid" db:"Emp_Id" binding:"required"`
	Quote_Status       int     `json:"quote_status" db:"Quote_Status"`
	PaymentMode        string  `json:"payment_mode" db:"Srq_Payment_Mode"`
	SrqSpecialDiscount float64 `json:"srq_special_discount" db:"Srq_Special_Discount"`
	Srq_Status         int     `json:"srq_status"`
}

type CreateChildServiceRequestInput struct {
	Srq_Service          int                     `form:"service" db:"Srq_Service" binding:"required"`
	Request_Type         *int                    `form:"request_type" db:"Request_Type"`
	Srq_Apartment_Id     int                     `form:"apartmentid" db:"Srq_Apartment_Id" binding:"required"`
	User_Id              int                     `form:"userid" db:"User_Id" binding:"required"`
	Srq_Problem_Desc     *string                 `form:"problem_description" db:"Srq_Problem_Desc"`
	Srq_Problem_Category *int                    `form:"sub_category" db:"Srq_Problem_Category"`
	Srq_Category_Others  string                  `form:"other_category" db:"Srq_Category_others"`
	Srq_Vist_Timeslot    *string                 `form:"timeslot" db:"Srq_Visit_Timeslot"`
	Srq_Instructions     *string                 `form:"instructions" db:"Srq_Instructions"`
	Promo_Id             *int                    `form:"promoid" db:"Promo_Id"`
	Srq_Image            []*multipart.FileHeader `form:"srq_img"`
	Language_Code        int                     `form:"language_code" default:"1"`
	Parent_Request       int64                   `form:"parent_request" db:"Parent_Request"`
	Srq_Tax_Percentage   *float32                `form:"srq_tax_percentage" db:"Srq_Tax_Percentage"`
	Srq_Images           string                  `form:"srq_images"`
}

type UpdateServiceRequestAdminInput struct {
	Srq_Id             int    `json:"service_request_id" binding:"required" db:"Srq_Id"`
	Technician_Id      int    `json:"technician_id"  db:"Technician_Id"`
	Assign             string `json:"assign"`
	Action             string `json:"action"`
	Old_status         string `json:"old_status"`
	New_status         string `json:"new_status"`
	Srq_Visit_Timeslot string `json:"time_slot"  db:"Srq_Visit_Timeslot"`
	Payment_Mode       string `json:"payment_mode"  db:"Payment_Mode"`
	Admin_Comments     string `json:"admin_comments"  db:"Admin_Comments"`
	Adm_Id             int    `json:"admin_id" db:"Adm_Id"`
	Language_Code      int    `json:"language_code" default:"1"`
}

type UpdateQuotationDetailsInput struct {
	Quote_Status       int     `json:"quote_status" db:"Srq_Quote_Status"`
	Parent_Srq         int64   `json:"parent_srq"`
	Srq_Visit_Timeslot *string `json:"timeslot" db:"Srq_Visit_Timeslot"`
	Language_Code      int     `json:"language_code" default:"1"`
}

type AdminDashboardInput struct {
	Apartment_Id int `form:"apartment_id" db:"Apartment_Id" binding:"required"`
}

type CancelLeaveInput struct {
	Emp_Id    int    `json:"empid" db:"Emp_Id" binding:"required"`
	From_Date string `json:"fromdate" db:"From_Date" binding:"required"`
	To_Date   string `json:"todate" db:"To_Date" binding:"required"`
	Is_Cancel int    `json:"isCancel"`
}
