using System.ComponentModel;

namespace Evos.Api.Samples.Infrastructure
{
    /// Идентификаторы, которые в бою приходят из вашей системы: идентификатор проекта и идентификаторы
    /// объектов. Здесь они заданы константами, и это принципиально.
    ///
    /// Evos узнаёт экземпляры, уже уехавшие в проект, именно по паре «ID проекта + ID объекта».
    /// Сгенерируете их заново на каждый запуск (Guid.NewGuid()) — при следующей публикации Evos сочтёт
    /// объекты новыми и создаст их ещё раз: получите дубли вместо обновления.
    ///
    /// Берите то, что в вашей системе не меняется: идентификатор проекта и идентификатор объекта.
    /// Импорт из CAD, например, берёт идентификатор объекта чертежа.
    [Localizable(false)]
    internal static class SampleIdentifiers
    {
        /// Идентификатор проекта в вашей системе.
        public static readonly Guid ProjectId = new("3F2504E0-4F89-11D3-9A0C-0305E82C3301");

        /// Идентификатор объекта в вашей системе. Здесь он выведен из номера объекта — лишь бы был
        /// одним и тем же от запуска к запуску.
        public static Guid ObjectId(int sourceObjectNumber)
        {
            return new Guid(sourceObjectNumber.ToString("X").PadLeft(32, '0'));
        }
    }
}
