using CMSMicroservice.Domain.Common;

namespace CMSMicroservice.Domain.Entities.Geography;

/// <summary>
/// شهر - City
/// </summary>
public class City : BaseAuditableEntity
{
    /// <summary>
    /// شناسه یکتا
    /// </summary>
    public long Id { get; set; }

    /// <summary>
    /// شناسه خارجی (External ID)
    /// </summary>
    public long ExternalId { get; set; }

    /// <summary>
    /// نام شهر
    /// </summary>
    public required string Name { get; set; }

    /// <summary>
    /// عرض جغرافیایی
    /// </summary>
    public required string Latitude { get; set; }

    /// <summary>
    /// طول جغرافیایی
    /// </summary>
    public required string Longitude { get; set; }

    /// <summary>
    /// نام بومی شهر (فارسی یا زبان محلی)
    /// </summary>
    public required string Native { get; set; }

    /// <summary>
    /// شناسه استان متعلق
    /// </summary>
    public long StateId { get; set; }

    /// <summary>
    /// استان متعلق
    /// </summary>
    public virtual State State { get; set; } = null!;
}
