syntax = "proto3";
enum ErrorCode {
    Internal = 0;
    UserUnauthorized = 2;
    RecordNotFound = 3;
    UserIdIsEmpty = 4;
    WorkspaceNameInvalid = 100;
    WorkspaceIdInvalid = 101;
    AppColorStyleInvalid = 102;
    WorkspaceDescTooLong = 103;
    WorkspaceNameTooLong = 104;
    AppIdInvalid = 110;
    AppNameInvalid = 111;
    ViewNameInvalid = 120;
    ViewThumbnailInvalid = 121;
    ViewIdInvalid = 122;
    ViewDescTooLong = 123;
    ViewDataInvalid = 124;
    ViewNameTooLong = 125;
    ConnectError = 200;
    EmailIsEmpty = 300;
    EmailFormatInvalid = 301;
    EmailAlreadyExists = 302;
    PasswordIsEmpty = 303;
    PasswordTooLong = 304;
    PasswordContainsForbidCharacters = 305;
    PasswordFormatInvalid = 306;
    PasswordNotMatch = 307;
    UserNameTooLong = 308;
    UserNameContainForbiddenCharacters = 309;
    UserNameIsEmpty = 310;
    UserIdInvalid = 311;
    UserNotExist = 312;
    TextTooLong = 400;
    GridIdIsEmpty = 410;
    BlockIdIsEmpty = 420;
    RowIdIsEmpty = 430;
    OptionIdIsEmpty = 431;
    FieldIdIsEmpty = 440;
    FieldDoesNotExist = 441;
    SelectOptionNameIsEmpty = 442;
    FieldNotExists = 443;
    FieldInvalidOperation = 444;
    TypeOptionDataIsEmpty = 450;
    InvalidDateTimeFormat = 500;
    UnexpectedEmptyString = 999;
    InvalidData = 1000;
}
