package entity

type Mapper struct {
	Mapping_Name *string `json:"name" db:"Name"`
}

type Admin struct {
	Emp_Id               int                     `json:"emp_id" db:"Emp_Id"`
	Emp_Name             *string                 `json:"emp_name" db:"Emp_Name"`
	Emp_Mobno            *string                 `json:"emp_mobno" db:"Emp_Mobno"`
	Passcode             *int                    `json:"Passcode"  db:"Passcode"`
	Is_Available         *string                 `json:"Is_Available"  db:"Is_Available"`
	Emp_Email            *string                 `json:"emp_email" db:"Emp_Email"`
	Alternate_No         *string                 `json:"alternate_no" db:"Alternate_Mobno"`
	Address              *int                    `json:"address_id"  db:"Address_Id"`
	Addressline1         *string                 `json:"addressline1" db:"Address_Line1"`
	Addressline2         *string                 `json:"addressline2" db:"Address_Line2"`
	Area                 *string                 `json:"area" db:"Area_Name"`
	City                 *string                 `json:"city" db:"City"`
	State                *string                 `json:"state" db:"State"`
	Country              *string                 `json:"country" db:"Country"`
	Pincode              *string                 `json:"pincode"  db:"Pincode"`
	Latitude             *string                 `json:"latitude" db:"Latitude"`
	Longitude            *string                 `json:"longitude" db:"Longitude"`
	Emp_Type             *string                 `json:"emp_type" db:"Emp_Type"`
	Emp_DOJ              *string                 `json:"emp_doj" db:"Emp_DOJ"`
	OTP                  int                     `json:"otp" `
	Emp_DOR              *string                 `json:"emp_dor" db:"Emp_DOR"`
	Emp_DOB              *string                 `json:"emp_dob" db:"Emp_DOB"`
	Emp_Status           *string                 `json:"emp_status" db:"Emp_Status"`
	Emp_Rejoining        *string                 `json:"emp_rejoining" db:"Emp_Rejoining"`
	Emp_Image            *string                 `json:"emp_image" db:"Emp_Image"`
	Emp_Proof_Id         *string                 `json:"emp_proofid" db:"Emp_Proof_Id"`
	Emp_Proof            *string                 `json:"emp_proof" db:"Emp_Proof"`
	Created_Timestamp    *string                 `json:"created_timestamp" db:"Created_Timestamp"`
	Recent_Login         *string                 `json:"recent_login" db:"Recent_Login"`
	Vendor_name          *string                 `json:"vendor_name" db:"Vendor_name"`
	Rating               *float32                `json:"rating" db:"Average_Rating"`
	Mapped_Roles         []string                `json:"mapped_roles" db:"Mapped_Roles"`
	Skilled_Services     []SkilledService        `form:"skilled_services" db:"Employee_Skills"`
	Allocated_Apartments []EmpAllocatedApartment `json:"allocated_apartments"`
	// Mapped_Apartments []string `json:"mapped_apartments" db:"Mapped_Apartments"`
	// Mapped_Services   []string `json:"mapped_services" db:"Mapped_Services"`

}

type AdminList struct {
	Emp_Id           int     `json:"technician_id" db:"Emp_Id"`
	Emp_Name         *string `json:"technician_name" db:"Emp_Name"`
	Phone_Number     *int64  `json:"phone_number" db:"Emp_Mobno"`
	Passcode         *int64  `json:"passcode" db:"Passcode"`
	Emergency_Number *int64  `json:"emergency_number" db:"Alternate_Mobno"`
	Email_ID         *string `json:"email_id" db:"Emp_Email"`
	Proof            *string `json:"proof" db:"Emp_Proof"`
	Proof_ID         *int    `json:"proof_id" db:"Emp_Proof_Id"`
	Emp_Image        *string `json:"emp_image" db:"Emp_Image"`
	Employee_Type    *string `json:"employee_type" db:"Emp_Type"`
	Emp_DOJ          *string `json:"emp_date_of_joining" db:"Emp_DOJ"`
	Emp_DOR          *string `json:"emp_date_of_resignation" db:"Emp_DOR"`
	Vendor_Name      *string `json:"vendor_name" db:"Vendor_Name"`
	// Address              *string                 `form:"address" db:"Emp_Address"`
	Addressline1 *string `json:"addressline1" db:"Address_Line1"`
	Addressline2 *string `json:"addressline2" db:"Address_Line2"`
	Area         *string `json:"area" db:"Area_Name"`
	City         *string `json:"city" db:"City"`
	State        *string `json:"state" db:"State"`
	Country      *string `json:"country" db:"Country"`
	Pincode      *string `json:"pincode"  db:"Pincode"`
	Latitude     *string `json:"latitude" db:"Latitude"`
	Longitude    *string `json:"longitude" db:"Longitude"`
	// Employee_Photo       *string                 `json:"employee_photo" db:"Emp_Image"`
	Rating               *float32                `json:"rating" db:"Average_Rating"`
	Skilled_Services     []SkilledService        `json:"skilled_services" db:"Employee_Skills"`
	Allocated_Apartments []EmpAllocatedApartment `json:"allocated_apartments"`
}

type AdminInfo struct {
	Emp_Id          int     `json:"emp_id" db:"Emp_Id"`
	Emp_Name        *string `json:"emp_name" db:"Emp_Name"`
	Emp_Mobno       *string `json:"emp_mobno" db:"Emp_Mobno"`
	Alternate_Mobno *string `json:"emergency_contact" db:"Alternate_Mobno"`
	Emp_Email       *string `json:"emp_email" db:"Emp_Email"`
	Emp_Image       *string `json:"emp_image" db:"Emp_Image"`
	Apartment_Id    *int    `json:"apartment_id" db:"Apartment_Id"`
}

type GetAdminList struct {
	AdminLists  []AdminList `json:"admin_list"`
	Page        int         `json:"Page"`
	Total_Admin int         `json:"Total_Admin"`
}

type UpdateSrqCost struct {
	ServiceRequest []ServiceRequest `json:"service_request"`
}

type AdminDashboard struct {
	Technician_Name    string `form:"technician_name" db:"Emp_Name"`
	Technician_Id      int    `form:"technician_id" db:"Technician_Id"`
	Month              string `form:"month" db:"Month"`
	Services_Completed int    `form:"services_completed" db:"Services_Completed"`
}

type TechnicianAvailability struct {
	Is_Available    *int    `form:"is_available" db:"Is_Available"`
	Emp_Id          *int    `form:"emp_id" db:"Emp_Id"`
	Technician_Name *string `form:"technician_name" db:"Emp_Name"`
}

type AdminDashboardResp struct {
	Availability    []TechnicianAvailability `form:"technician_availability"`
	Admin_Dashboard []AdminDashboard         `form:"admin_dashboard"`
}

type AdminServiceRequest struct {
	ServiceList []ServiceRequest `json:"service_request"`
}
