package response

import (
	eduRes "narasi-ahli-be/app/module/education_history/response"
	researchRes "narasi-ahli-be/app/module/research_journals/response"
	workRes "narasi-ahli-be/app/module/work_history/response"
	"time"
)

type UsersResponse struct {
	ID                 uint      `json:"id"`
	Username           string    `json:"username"`
	Email              string    `json:"email"`
	Fullname           string    `json:"fullname"`
	Address            *string   `json:"address"`
	PhoneNumber        *string   `json:"phoneNumber"`
	WhatsappNumber     *string   `json:"whatsappNumber"`
	WorkType           *string   `json:"workType"`
	GenderType         *string   `json:"genderType"`
	IdentityType       *string   `json:"identityType"`
	Degree             *string   `json:"degree"`
	IdentityNumber     *string   `json:"identityNumber"`
	DateOfBirth        *string   `json:"dateOfBirth"`
	LastEducation      *string   `json:"lastEducation"`
	KeycloakId         *string   `json:"keycloakId"`
	UserRoleId         uint      `json:"userRoleId"`
	UserLevelId        uint      `json:"userLevelId"`
	UserLevelGroup     string    `json:"userLevelGroup"`
	StatusId           *int      `json:"statusId"`
	CreatedById        *uint     `json:"createdById"`
	ProfilePicturePath *string   `json:"profilePicturePath"`
	IsActive           *bool     `json:"isActive"`
	CreatedAt          time.Time `json:"createdAt"`
	UpdatedAt          time.Time `json:"updatedAt"`
}

type ParetoLoginResponse struct {
	AccessToken string `json:"accessToken"`
}

type VisitorStatistic struct {
	TotalVisitor string `json:"accessToken"`
}

type UserExpertResponse struct {
	ID         uint   `json:"id"`
	Username   string `json:"username"`
	Email      string `json:"email"`
	Fullname   string `json:"fullname"`
	Phone      *string `json:"phoneNumber"`
	LastJob    *string `json:"lastJobTitle"`
	IsActive   *bool   `json:"isActive"`
	CreatedAt time.Time `json:"createdAt"`

	WorkHistories       []*workRes.WorkHistoryResponse       `json:"workHistories"`
	EducationHistories []*eduRes.EducationHistoryResponse   `json:"educationHistories"`
	ResearchJournals   []*researchRes.ResearchJournalsResponse `json:"researchJournals"`
}
