using Hcs.Service.Async.HouseManagement;

namespace Hcs.ClientNet.Api.Payload.HouseManagement
{
    // http://open-gkh.ru/HouseManagement/importAccountRequest/Account.html
    public class ImportAccountDataPayload
    {
        /// <summary>
        /// Тип лицевого счета
        /// </summary>
        public enum AccountType
        {
            /// <summary>
            /// Лицевой счет для оплаты за жилое помещение и коммунальные услуги
            /// </summary>
            UO,

            /// <summary>
            /// Лицевой счет для оплаты за коммунальные услуги
            /// </summary>
            RSO,

            /// <summary>
            /// Лицевой счет для оплаты капитального ремонта
            /// </summary>
            CR,

            /// <summary>
            /// Лицевой счет РКЦ
            /// </summary>
            RC,

            /// <summary>
            /// Лицевой счет ОГВ/ОМС
            /// </summary>
            OGVorOMS,

            /// <summary>
            /// Лицевой счет ТКО
            /// </summary>
            TKO
        }

        /// <summary>
        /// Необязательное. Номер лицевого счета или иной идентификатор плательщика. Максимум 30 символов.
        /// </summary>
        public string accountNumber;

        /// <summary>
        /// Необязательное. Идентификатор ЛС в ГИС ЖКХ (при обновлении данных ЛС).
        /// </summary>
        public string accountGUID;

        /// <summary>
        /// Необязательное. Конкретизация оснований ЛС (договоров ресурсоснабжения, договоров социального найма,
        /// договоров по обращению с ТКО).
        /// </summary>
        public AccountReasonsImportType accountReasons;

        /// <summary>
        /// Тип лицевого счета
        /// </summary>
        public AccountType accountType;

        /// <summary>
        /// Необязательное. Количество проживающих, не больше 9999.
        /// </summary>
        public uint? livingPersonsNumber;

        /// <summary>
        /// Необязательное. Общая площадь для ЛС. Не более 4 цифр после целой.
        /// </summary>
        public decimal? totalSquare;

        /// <summary>
        /// Необязательное. Жилая площадь. Не более 4 цифр после целой.
        /// </summary>
        public decimal? residentialSquare;

        /// <summary>
        /// Необязательное. Отапливаемая площадь. Не более 4 цифр после целой.
        /// </summary>
        public decimal? heatedArea;

        // TODO: Добавить причину закрытия лицевого счета

        /// <summary>
        /// Помещения
        /// </summary>
        public AccountTypeAccommodation[] accomodations;

        /// <summary>
        /// Сведения о платильщике
        /// </summary>
        public AccountTypePayerInfo payerInfo;
    }
}
