// proto/auth.proto syntax = "proto3"; package multieko2.auth; import "common.proto"; service AuthService { rpc Register(RegisterRequest) returns (AuthResponse); rpc Login(LoginRequest) returns (LoginResponse); } message RegisterRequest { string username = 1; string email = 2; string password = 3; string password_confirmation = 4; string role = 5; } message AuthResponse { string id = 1; // UUID in string format string username = 2; // Registered username string email = 3; // Registered email (if provided) string role = 4; // Default role: 'accountant' } message LoginRequest { string identifier = 1; // Can be username or email string password = 2; } message LoginResponse { string access_token = 1; // JWT token string token_type = 2; // Usually "Bearer" int32 expires_in = 3; // Expiration in seconds (86400 for 24 hours) string user_id = 4; // User's UUID in string format string role = 5; // User's role string username = 6; }