"""
HRM API URLs - v1.

مسیرهای REST API ماژول مدیریت منابع انسانی.
"""
from django.urls import path, include
from rest_framework.routers import DefaultRouter

from .views import (
    # Organization Structure
    LegalEntityViewSet,
    LocationViewSet,
    # Employee Master Data
    EmployeeViewSet,
    EmploymentRecordViewSet,
    EmployeeDocumentViewSet,
    # Position & Job
    JobFamilyViewSet,
    JobTitleViewSet,
    PositionViewSet,
    ReportingLineViewSet,
    # Time & Attendance
    WorkScheduleViewSet,
    ShiftPatternViewSet,
    TimesheetViewSet,
    AttendanceRecordViewSet,
    # Leave Management
    LeavePolicyViewSet,
    LeaveBalanceViewSet,
    LeaveRequestViewSet,
    # Payroll Foundation
    PayGradeViewSet,
    CompensationRecordViewSet,
    BankAccountViewSet,
    CostAllocationViewSet,
)

app_name = "hrm"

router = DefaultRouter()

# 1. Organization Structure
router.register(r"legal-entities", LegalEntityViewSet, basename="legal-entity")
router.register(r"locations", LocationViewSet, basename="location")

# 2. Employee Master Data
router.register(r"employees", EmployeeViewSet, basename="employee")
router.register(r"employment-records", EmploymentRecordViewSet, basename="employment-record")
router.register(r"employee-documents", EmployeeDocumentViewSet, basename="employee-document")

# 3. Position & Job
router.register(r"job-families", JobFamilyViewSet, basename="job-family")
router.register(r"job-titles", JobTitleViewSet, basename="job-title")
router.register(r"positions", PositionViewSet, basename="position")
router.register(r"reporting-lines", ReportingLineViewSet, basename="reporting-line")

# 4. Time & Attendance
router.register(r"work-schedules", WorkScheduleViewSet, basename="work-schedule")
router.register(r"shift-patterns", ShiftPatternViewSet, basename="shift-pattern")
router.register(r"timesheets", TimesheetViewSet, basename="timesheet")
router.register(r"attendance-records", AttendanceRecordViewSet, basename="attendance-record")

# 5. Leave Management
router.register(r"leave-policies", LeavePolicyViewSet, basename="leave-policy")
router.register(r"leave-balances", LeaveBalanceViewSet, basename="leave-balance")
router.register(r"leave-requests", LeaveRequestViewSet, basename="leave-request")

# 6. Payroll Foundation
router.register(r"pay-grades", PayGradeViewSet, basename="pay-grade")
router.register(r"compensation-records", CompensationRecordViewSet, basename="compensation-record")
router.register(r"bank-accounts", BankAccountViewSet, basename="bank-account")
router.register(r"cost-allocations", CostAllocationViewSet, basename="cost-allocation")

urlpatterns = [
    path("", include(router.urls)),
]
