package textkeymatcher;

option java_package = "textkeymatcher.io";
option java_outer_classname = "Persistent";

message LineData {

    required string key = 1;

    required string value = 2;

}

message LineDataList {

    optional string title = 1;

    repeated LineData lineDatas = 2;

}

message RowMap {

    enum KeyMatcherType {
        TEXT = 0;
        TEXT_IGNORE_CASE = 1;
        NUMERIC = 2;
    }

    required KeyMatcherType keyMatcherType = 1;

    repeated LineDataList datas = 2;
}

message RowView {

    enum FilterType {
        ALL = 0;
        MATCHED = 1;
        UNMATCHED = 2;
        EXISTS_FIRST_COLUMN = 3;
        MISSING_FIRST_COLUMN = 4;
    }

    required FilterType filterType = 1;
}

message TextKeyMatcherDoc {

    required RowMap rowMap = 1;

    required RowView rowView = 2;

    optional string creationDate = 3;
    
}
