@using CMSMicroservice.Protobuf.Protos.Category
@using Microsoft.AspNetCore.Components.Forms
@using BackOffice.Pages.AutoComplete

<MudDialog>
    <TitleContent>
        <MudText Typo="Typo.h6">
            <MudIcon Icon="@(IsEdit ? Icons.Material.Filled.Edit : Icons.Material.Filled.Add)" Class="ml-2" />
            @(IsEdit ? "ویرایش دسته‌بندی" : "ایجاد دسته‌بندی جدید")
        </MudText>
    </TitleContent>
    <DialogContent>
        <MudForm @ref="_form" @bind-IsValid="@_isValid">
            <MudStack Spacing="2">
                <MudTextField T="string"
                              @bind-Value="Name"
                              Label="نام لاتین"
                              Required="true"
                              RequiredError="نام لاتین الزامی است"
                              Variant="Variant.Outlined"
                              Margin="Margin.Dense" />

                <MudTextField T="string"
                              @bind-Value="Title"
                              Label="عنوان"
                              Required="true"
                              RequiredError="عنوان الزامی است"
                              Variant="Variant.Outlined"
                              Margin="Margin.Dense" />

                <MudTextField T="string"
                              @bind-Value="Description"
                              Label="توضیحات"
                              Variant="Variant.Outlined"
                              Margin="Margin.Dense"
                              Lines="3"
                              TextArea="true" />

                <MudTextField T="string"
                              @bind-Value="ImagePath"
                              Label="آدرس تصویر"
                              Variant="Variant.Outlined"
                              Margin="Margin.Dense" />

                <CategoryAutoComplete Value="ParentId"
                                      ValueChanged="OnParentChanged"
                                      Label="دسته‌بندی والد (اختیاری)" />
                <MudText Typo="Typo.caption" Color="Color.Secondary">برای دسته اصلی خالی بگذارید</MudText>

                <MudNumericField T="int"
                                 @bind-Value="SortOrder"
                                 HideSpinButtons="true"
                                 Label="ترتیب نمایش"
                                 Variant="Variant.Outlined"
                                 Margin="Margin.Dense"
                                 HelperText="عدد کمتر = اولویت بالاتر" />

                <MudSwitch T="bool" @bind-Value="IsActive" Label="فعال" Color="Color.Success" />
            </MudStack>
        </MudForm>
    </DialogContent>
    <DialogActions>
        <MudButton OnClick="Cancel" Variant="Variant.Text">لغو</MudButton>
        <MudButton Color="Color.Primary"
                   Variant="Variant.Filled"
                   OnClick="Save"
                   Disabled="@(!_isValid || _isSaving)">
            @if (_isSaving)
            {
                <MudProgressCircular Size="Size.Small" Indeterminate="true" Class="ml-2" />
            }
            @(IsEdit ? "ذخیره تغییرات" : "ایجاد دسته‌بندی")
        </MudButton>
    </DialogActions>
</MudDialog>
