@page "/admin/companies/create"
@attribute [Authorize]
@using TaxBaik.Web.Components.Admin.Forms
@inject IApiClient ApiClient
@inject NavigationManager Navigation
@inject ISnackbar Snackbar

<PageTitle>고객사 등록</PageTitle>

<section class="admin-page-hero">
    <div>
        <MudText Typo="Typo.caption" Class="admin-eyebrow">Settings</MudText>
        <MudText Typo="Typo.h4" Class="admin-page-title">새 고객사 등록</MudText>
        <MudText Typo="Typo.body2" Class="admin-page-subtitle">새로운 고객사를 추가합니다.</MudText>
    </div>
    <MudButton Variant="Variant.Outlined" StartIcon="@Icons.Material.Filled.Close" @onclick="GoBack">취소</MudButton>
</section>

<MudPaper Class="pa-4 mt-4" Elevation="1">
    <CompanyForm ButtonText="등록" OnSubmit="HandleCreate" OnCancel="GoBack" />
</MudPaper>

@code {
    private void GoBack()
    {
        Navigation.NavigateTo("/taxbaik/admin/companies");
    }

    private async Task HandleCreate(CompanyForm.CompanyFormModel model)
    {
        try
        {
            await ApiClient.PostAsync<object>("company", new
            {
                companyCode = model.CompanyCode,
                companyName = model.CompanyName,
                contactPerson = model.ContactPerson,
                phone = model.Phone,
                email = model.Email,
                memo = model.Memo
            });

            Snackbar.Add("고객사가 등록되었습니다.", Severity.Success);
            Navigation.NavigateTo("/taxbaik/admin/companies");
        }
        catch (Exception ex)
        {
            Snackbar.Add($"등록 실패: {ex.Message}", Severity.Error);
        }
    }
}
