package com.yanzuoguang.util.sfz;

import com.yanzuoguang.util.helper.StringHelper;

import java.util.regex.Pattern;

import static com.yanzuoguang.util.sfz.SfzHandle15.CHINA_ID_MIN_LENGTH;
import static com.yanzuoguang.util.sfz.SfzHandle15.getBirthDateYear;
import static com.yanzuoguang.util.sfz.SfzHandleUtil.cityCodes;

/**
 * 2017年国外永居证处理
 *
 * @author 颜佐光
 */
public class SfzHandleEn2017 implements SfzHandle {
    public static final Pattern EN2017 = Pattern.compile("^[a-zA-Z]{3}\\d{12}$");

    @Override
    public boolean validate(String idCard) {
        if (idCard.length() == CHINA_ID_MIN_LENGTH && EN2017.matcher(idCard).matches()) {
            return true;
        }
        return false;
    }

    @Override
    public String repair(String idCard) {
        return idCard;
    }

    @Override
    public String getGender(String idCard) {
        return StringHelper.EMPTY;
    }

    @Override
    public String getBirthday(String idCard) {
        String birthday = idCard.substring(7, 13);
        return getBirthDateYear(birthday) + birthday.substring(2,6);
    }

    @Override
    public String getCountry(String idCard) {
        return StringHelper.EMPTY;
    }

    @Override
    public String getAreaId(String idCard) {
        return idCard.substring(3, 5);
    }

    @Override
    public String getProvinceName(String idCard) {
        return cityCodes.get(this.getAreaId(idCard).substring(0, 2));
    }
}