syntax = "proto3";

package <<project_name_snake>>;

// Application configuration message
message AppConfig {
    string app_name = 1;
    string version = 2;
    bool debug_mode = 3;
    ThemeConfig theme = 4;
}

// Theme configuration
message ThemeConfig {
    ThemeMode mode = 1;
    string primary_color = 2;
    string accent_color = 3;
}

// Theme mode enumeration
enum ThemeMode {
    THEME_MODE_UNSPECIFIED = 0;
    THEME_MODE_LIGHT = 1;
    THEME_MODE_DARK = 2;
    THEME_MODE_SYSTEM = 3;
}

// User settings message
message UserSettings {
    string user_id = 1;
    string language = 2;
    bool notifications_enabled = 3;
    repeated string favorite_features = 4;
}

// Generic response message
message Response {
    bool success = 1;
    string message = 2;
    optional string error_code = 3;
}

// Health check messages
message HealthCheckRequest {
    string service_name = 1;
}

message HealthCheckResponse {
    HealthStatus status = 1;
    string message = 2;
    int64 timestamp = 3;
}

enum HealthStatus {
    HEALTH_STATUS_UNSPECIFIED = 0;
    HEALTH_STATUS_HEALTHY = 1;
    HEALTH_STATUS_UNHEALTHY = 2;
    HEALTH_STATUS_DEGRADED = 3;
}
