from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from simorgh.apps.hr_core.models import JobTitle


def create_job_title(
    *,
    tenant_id: int,
    title: str,
    level: int = 1,
    department_id: int | None = None,
) -> "JobTitle":
    from simorgh.apps.hr_core.models.employee import JobTitle

    return JobTitle.objects.create(
        tenant_id=tenant_id,
        title=title.strip(),
        level=level,
        department_id=department_id,
    )


def update_job_title(
    job_title: "JobTitle",
    *,
    title: str | None = None,
    level: int | None = None,
    department_id: int | None = None,
) -> "JobTitle":
    if title is not None:
        job_title.title = title.strip()
    if level is not None:
        job_title.level = level
    if department_id is not None:
        job_title.department_id = department_id
    job_title.save()
    return job_title


def delete_job_title(job_title: "JobTitle") -> None:
    job_title.delete()
