@page
@model Admin.Pages.Config.RegisterModel
@{
    ViewData["Title"] = "회원 설정";
}

<div class="container">
    <h3>@ViewData["Title"]</h3>
    <hr />

    <div asp-validation-summary="ModelOnly" class="text-danger"></div>
    <partial name="_StatusMessage" />

    <form name="f_admin_write" id="fAdminWrite" method="post" autocomplete="off" accept-charset="UTF-8">
        <details open>
            <summary class="fs-5">회원 가입 시</summary>
            <hr />

            <div class="row">
                <label asp-for="Input.Account.IsRegisterBlock" class="col-sm-2 col-form-label">회원가입 차단</label>
                <div class="col-sm-10 align-content-center">
                    <input asp-for="Input.Account.IsRegisterBlock" class="form-check-input" />
                    <label class="form-check-label" asp-for="Input.Account.IsRegisterBlock">회원가입을 차단합니다.</label>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.IsRegisterEmailAuth" class="col-sm-2 col-form-label">회원가입 시 이메일 인증</label>
                <div class="col-sm-10 align-content-center">
                    <input asp-for="Input.Account.IsRegisterEmailAuth" class="form-check-input" />
                    <label class="form-check-label" asp-for="Input.Account.IsRegisterEmailAuth">가입 시 이메일 인증을 확인합니다.</label>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.PasswordMinLength" class="col-sm-2 col-form-label">비밀번호 최소 길이</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.PasswordMinLength" type="number" class="form-control" min="6" />
                                <span class="input-group-text" id="Input_Account_PasswordMinLength">자</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.PasswordMinLength" class="text-danger"></span>
                    <small class="text-muted form-text d-block">비밀번호 최소 길이입니다. (권장: 8 이상)</small>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.PasswordUppercaseLength" class="col-sm-2 col-form-label">비밀번호 최소 대문자 수</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.PasswordUppercaseLength" type="number" class="form-control" min="0" />
                                <span class="input-group-text" id="Input_Account_PasswordUppercaseLength">개</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.PasswordUppercaseLength" class="text-danger"></span>
                    <small class="text-muted form-text d-block">대문자 포함을 강제하지 않으려면 0을 입력합니다.</small>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.PasswordNumbersLength" class="col-sm-2 col-form-label">비밀번호 최소 숫자 수</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.PasswordNumbersLength" type="number" class="form-control" min="0" />
                                <span class="input-group-text" id="Input_Account_PasswordNumbersLength">개</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.PasswordNumbersLength" class="text-danger"></span>
                    <small class="text-muted form-text d-block">숫자 포함을 강제하지 않으려면 0을 입력합니다.</small>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.PasswordSpecialcharsLength" class="col-sm-2 col-form-label">비밀번호 최소 특수문자 수</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.PasswordSpecialcharsLength" type="number" class="form-control" min="0" />
                                <span class="input-group-text" id="Input_Account_PasswordSpecialcharsLength">개</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.PasswordSpecialcharsLength" class="text-danger"></span>
                    <small class="text-muted form-text d-block">
                        비밀번호 길이는 최소 6자 이상이어야 하며, 대문자/숫자/특수문자를 원하지 않으면 0을 입력하면 됩니다.
                        이 규칙은 회원가입/정보수정 시 적용되며, 기존 회원 로그인에는 적용되지 않습니다.
                    </small>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.DeniedEmailList" class="col-sm-2 col-form-label">금지 이메일</label>
                <div class="col-sm-10">
                    <textarea asp-for="Input.Account.DeniedEmailList" class="form-control" rows="3"></textarea>
                    <span asp-validation-for="Input.Account.DeniedEmailList" class="text-danger"></span>
                    <small class="text-muted form-text d-block">제한하고 싶은 이메일을 쉼표로 구분하여 입력해주세요.</small>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.DeniedNameList" class="col-sm-2 col-form-label">금지 별명</label>
                <div class="col-sm-10">
                    <textarea asp-for="Input.Account.DeniedNameList" class="form-control" rows="3"></textarea>
                    <span asp-validation-for="Input.Account.DeniedNameList" class="text-danger"></span>
                    <small class="text-muted form-text d-block">제한하고 싶은 별명을 쉼표로 구분하여 입력해주세요.</small>
                </div>
            </div>
        </details>

        <hr />

        <details open>
            <summary class="fs-5">회원 수정 시</summary>
            <hr />

            <div class="row mb-2">
                <label asp-for="Input.Account.ChangeEmailDay" class="col-sm-2 col-form-label">이메일 갱신 주기</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.ChangeEmailDay" type="number" class="form-control" min="0" max="365" />
                                <span class="input-group-text" id="Input_Account_ChangeEmailDay">일</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.ChangeEmailDay" class="text-danger"></span>
                    <small class="text-muted form-text d-block">이메일 변경 후 해당일 동안 바꿀 수 없습니다. 0이면 항상 변경 가능</small>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.ChangeNameDay" class="col-sm-2 col-form-label">별명 갱신 주기</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.ChangeNameDay" type="number" class="form-control" min="0" max="365" />
                                <span class="input-group-text" id="Input_Account_ChangeNameDay">일</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.ChangeNameDay" class="text-danger"></span>
                    <small class="text-muted form-text d-block">별명 변경 후 해당일 동안 바꿀 수 없습니다. 0이면 항상 변경 가능</small>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.ChangePasswordDay" class="col-sm-2 col-form-label">비밀번호 갱신 주기</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.ChangePasswordDay" type="number" class="form-control" min="0" max="365" />
                                <span class="input-group-text" id="Input_Account_ChangePasswordDay">일</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.ChangePasswordDay" class="text-danger"></span>
                    <small class="text-muted form-text d-block">일, 일정기간이 지나면 비밀번호 변경을 유도합니다. 0이면 사용하지 않음</small>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.ChangeSummaryDay" class="col-sm-2 col-form-label">한마디 갱신 주기</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.ChangeSummaryDay" type="number" class="form-control" min="0" max="365" />
                                <span class="input-group-text" id="Input_Account_ChangeSummaryDay">일</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.ChangeSummaryDay" class="text-danger"></span>
                    <small class="text-muted form-text d-block">한마디 변경 후 해당일 동안 바꿀 수 없습니다. 0이면 항상 변경 가능</small>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.ChangeIntroDay" class="col-sm-2 col-form-label">자기소개 갱신 주기</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.ChangeIntroDay" type="number" class="form-control" min="0" max="365" />
                                <span class="input-group-text" id="Input_Account_ChangeIntroDay">일</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.ChangeIntroDay" class="text-danger"></span>
                    <small class="text-muted form-text d-block">자기소개 변경 후 해당일 동안 바꿀 수 없습니다. 0이면 항상 변경 가능</small>
                </div>
            </div>
        </details>

        <hr />

        <details open>
            <summary class="fs-5">로그인 시</summary>
            <hr />

            <div class="row mb-2">
                <label asp-for="Input.Account.IsLoginEmailVerifiedOnly" class="col-sm-2 col-form-label">로그인 허용</label>
                <div class="col-sm-10 align-content-center">
                    <input asp-for="Input.Account.IsLoginEmailVerifiedOnly" class="form-check-input" />
                    <label class="form-check-label" asp-for="Input.Account.IsLoginEmailVerifiedOnly">가입 시 이메일 인증을 한 사용자만 로그인이 허용됩니다.</label>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.MaxLoginTryCount" class="col-sm-2 col-form-label">로그인 시도</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.MaxLoginTryCount" type="number" class="form-control" min="0" />
                                <span class="input-group-text" id="Input_Account_MaxLoginTryCount">회</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.MaxLoginTryCount" class="text-danger"></span>
                    <small class="text-muted form-text d-block">짧은 시간 동안 하나의 IP에서 시도할 수 있는 로그인 횟수 제한</small>
                </div>
            </div>

            <div class="row mb-2">
                <label asp-for="Input.Account.MaxLoginTryLimitSecond" class="col-sm-2 col-form-label">로그인 제한</label>
                <div class="col-sm-10">
                    <div class="row">
                        <div class="col-sm-auto col-lg-3">
                            <div class="input-group">
                                <input asp-for="Input.Account.MaxLoginTryLimitSecond" type="number" class="form-control" min="0" />
                                <span class="input-group-text" id="Input_Account_MaxLoginTryLimitSecond">초</span>
                            </div>
                        </div>
                    </div>
                    <span asp-validation-for="Input.Account.MaxLoginTryLimitSecond" class="text-danger"></span>
                    <small class="text-muted form-text d-block">실패 횟수 초과 시 해당 시간 동안 로그인 시도 불가</small>
                </div>
            </div>
        </details>

        <hr />

        <div class="row">
            <div class="col text-center p-3">
                <button type="submit" class="btn btn-success">저장하기</button>
            </div>
        </div>

        <br />
    </form>
</div>

@section Scripts {
    @{

    }
}