export const GROUP_DISPLAY_ID_MIN_LENGTH = 8

/** 建立家族時自動分配 display_id 的起始值（含） */
export const GROUP_DISPLAY_ID_AUTO_START = 20_000_000

const GROUP_DISPLAY_ID_REGEX = /^\d{8,}$/

export function normalizeGroupDisplayId(value: unknown): string {
    return String(value ?? '').trim()
}

export function isValidGroupDisplayId(value: string): boolean {
    return GROUP_DISPLAY_ID_REGEX.test(value)
}

export type GroupDisplayIdValidationCode = 'required' | 'invalid' | 'tooShort'

export function validateGroupDisplayIdInput(
    value: unknown
): { ok: true; value: string } | { ok: false; code: GroupDisplayIdValidationCode } {
    const normalized = normalizeGroupDisplayId(value)
    if (!normalized) {
        return { ok: false, code: 'required' }
    }
    if (!/^\d+$/.test(normalized)) {
        return { ok: false, code: 'invalid' }
    }
    if (normalized.length < GROUP_DISPLAY_ID_MIN_LENGTH) {
        return { ok: false, code: 'tooShort' }
    }
    return { ok: true, value: normalized }
}
