@using CMSMicroservice.Protobuf.Protos.UserOrder

<MudDialog>
    <TitleContent>
        <MudText Typo="Typo.h6">
            <MudIcon Icon="@Icons.Material.Filled.Edit" Class="ml-2" />
            تغییر وضعیت ارسال سفارش شماره @OrderId
        </MudText>
    </TitleContent>
    <DialogContent>
        <MudForm @ref="_form" @bind-IsValid="@_isValid">
            <MudGrid>
                <MudItem xs="12">
                    <MudAlert Severity="Severity.Info" Dense="true">
                        وضعیت فعلی: <strong>@GetDeliveryStatusText(CurrentStatus)</strong>
                    </MudAlert>
                </MudItem>

                <MudItem xs="12">
                    <MudSelect T="int"
                               @bind-Value="_newStatus"
                               Label="وضعیت جدید *"
                               Required="true"
                               Variant="Variant.Outlined">
                        <MudSelectItem T="int" Value="0">بدون ارسال / نامشخص</MudSelectItem>
                        <MudSelectItem T="int" Value="1">در انتظار ارسال</MudSelectItem>
                        <MudSelectItem T="int" Value="2">تحویل پست</MudSelectItem>
                        <MudSelectItem T="int" Value="3">تحویل به مشتری</MudSelectItem>
                        <MudSelectItem T="int" Value="4">مرجوع شده</MudSelectItem>
                    </MudSelect>
                </MudItem>

                <MudItem xs="12">
                    <MudTextField T="string"
                                  @bind-Value="_trackingCode"
                                  Label="کد رهگیری مرسوله"
                                  Variant="Variant.Outlined"
                                  HelperText="در صورت ارسال، کد رهگیری را وارد کنید" />
                </MudItem>

                <MudItem xs="12">
                    <MudTextField T="string"
                                  @bind-Value="_deliveryDescription"
                                  Label="توضیحات ارسال"
                                  Variant="Variant.Outlined"
                                  Lines="3"
                                  HelperText="دلیل تغییر وضعیت یا توضیحات اضافی" />
                </MudItem>

                @if (_newStatus == 4)
                {
                    <MudItem xs="12">
                        <MudAlert Severity="Severity.Warning">
                            توجه: در صورت مرجوعی سفارش، موجودی محصولات به انبار بازگردانده می‌شود.
                        </MudAlert>
                    </MudItem>
                }

                @if (_newStatus == 2)
                {
                    <MudItem xs="12">
                        <MudAlert Severity="Severity.Info">
                            پس از تغییر وضعیت به "تحویل پست"، اطلاع‌رسانی به کاربر ارسال خواهد شد.
                        </MudAlert>
                    </MudItem>
                }
            </MudGrid>
        </MudForm>
    </DialogContent>
    <DialogActions>
        <MudButton Variant="Variant.Text" Color="Color.Default" OnClick="Cancel">
            انصراف
        </MudButton>
        <MudButton Variant="Variant.Filled"
                   Color="@GetStatusColor(_newStatus)"
                   OnClick="SubmitAsync"
                   Disabled="@(_isSaving)">
            @if (_isSaving)
            {
                <MudProgressCircular Size="Size.Small" Indeterminate="true" Class="ml-2" />
            }
            else
            {
                <text>ثبت وضعیت</text>
            }
        </MudButton>
    </DialogActions>
</MudDialog>

