package com.prodhack.moscow2025.domain.models

data class ResumeModel(
	val id: String,
	val position: String,
	val about: String,
	val skills: List<String>,
	val city: String,
	val experienceType: ExperienceType,
	val experience: List<WorkExperience>,
	val education: List<Education>,
	val projects: List<Project>,
	val prediction: Pair<Float?, Float?>?,
	val recommendedSkills: List<String>?
)

data class ResumeCreationModel(
	val position: String,
	val about: String,
	val skills: List<String>,
	val city: String,
	val experienceType: ExperienceType,
	val experience: List<WorkExperience>,
	val education: List<Education>,
	val projects: List<Project>
)

data class WorkExperience(
	val place: String,
	val description: String,
	val monthDuration: Int?
)

data class Education(
	val place: String,
	val grade: EducationGrades,
	val specialization: String,
	val description: String
)

enum class EducationGrades {
	BasicGeneralEducation,
	SecondaryGeneralEducation,
	SecondaryProfessionalEducation,
	Bachelor,
	Specialist,
	Master,
	PostgraduateStudies,
	Other
}

data class Project(
	val name: String,
	val description: String
)

enum class ExperienceType {
	NoExperience,
	Between1And3,
	Between3And6,
	MoreThan6
}

sealed class ResumeField {
	data object About : ResumeField()
	data object Position : ResumeField()
	data object Experience : ResumeField()
	data object KeySkills : ResumeField()

	data object City : ResumeField()

	data class WorkExperiencePlace(val id: Int) : ResumeField()

	data class WorkExperienceDescription(val id: Int) : ResumeField()

	data class WorkExperienceMonthDuration(val id: Int) : ResumeField()


	data class EducationPlace(val id: Int) : ResumeField()

	data class EducationGrade(val id: Int) : ResumeField()

	data class EducationSpecialization(val id: Int) : ResumeField()

	data class EducationDescription(val id: Int) : ResumeField()

	data class ProjectName(val id: Int) : ResumeField()

	data class ProjectDescription(val id: Int) : ResumeField()

}