namespace JobsMedical.Web.Models;

public enum UserRole
{
    Doctor = 0,
    FacilityAdmin = 1,
    Admin = 2
}

public enum FacilityType
{
    Hospital = 0,      // بیمارستان
    Clinic = 1,        // کلینیک
    Polyclinic = 2     // درمانگاه
}

public enum ShiftType
{
    Day = 0,           // روز
    Evening = 1,       // عصر
    Night = 2,         // شب
    OnCall = 3         // آنکال
}

public enum ShiftStatus
{
    Open = 0,          // باز
    Filled = 1,        // پر شده
    Expired = 2,       // منقضی
    Cancelled = 3      // لغو شده
}

public enum ShiftSource
{
    Direct = 0,        // ثبت مستقیم مرکز درمانی
    Admin = 1,         // ثبت توسط ادمین
    Aggregated = 2     // جمع‌آوری شده از کانال‌ها
}

public enum PayType
{
    PerShift = 0,      // مقطوع برای هر شیفت
    PerHour = 1,       // ساعتی
    Negotiable = 2,    // توافقی
    Percentage = 3     // درصدی / سهم درآمد
}

public enum ApplicationStatus
{
    Interested = 0,    // اعلام تمایل
    Accepted = 1,      // پذیرفته شده
    Rejected = 2,      // رد شده
    Withdrawn = 3      // انصراف
}

public enum RawListingStatus
{
    New = 0,           // جدید (آماده بررسی)
    Normalized = 1,    // تبدیل شده به شیفت/استخدام
    Discarded = 2,     // کنار گذاشته شده (یا اسپم)
    Flagged = 3        // ناقص/مشکوک — نیازمند بررسی دستی بیشتر
}

public enum EmploymentType
{
    FullTime = 0,      // تمام‌وقت
    PartTime = 1,      // پاره‌وقت
    Contract = 2,      // قراردادی
    Plan = 3           // طرح
}

/// <summary>What an aggregated/raw listing turned out to be — a shift or a hiring opening.</summary>
public enum ListingKind
{
    Shift = 0,
    Job = 1
}

/// <summary>
/// Gender. On a listing it's the requirement (Any = فرقی نمی‌کند); on a person it's their gender
/// (Any = unspecified).
/// </summary>
public enum Gender
{
    Any = 0,     // فرقی نمی‌کند / نامشخص
    Male = 1,    // آقا
    Female = 2   // خانم
}

/// <summary>How ingested listings get onto the site.</summary>
public enum IngestionMode
{
    Manual = 0,      // همه‌چیز به صف بررسی می‌رود؛ ادمین تأیید می‌کند
    Automatic = 1    // موارد تأییدشده (طبق آستانه/هوش مصنوعی) خودکار منتشر می‌شوند
}

public enum ReportTargetType { Shift = 0, Job = 1, Facility = 2, User = 3 }
public enum ReportStatus { Open = 0, Resolved = 1, Dismissed = 2 }
