syntax = "proto3";

package user.v1;

// User represents a user entity
message User {
  int64 id = 1;
  string username = 2;
  string email = 3;
  string phone = 4;
  string create_time = 5;
  string update_time = 6;
}

message ListUsersRequest {
  int32 page_size = 1;
  int32 page_number = 2;
}

message ListUsersResponse {
  repeated User users = 1;
  int32 total = 2;
}

message GetUserRequest {
  int64 id = 1;
}

message GetUserResponse {
  User user = 1;
}

// UserService provides user-related operations
service UserService {
  // ListUsers returns a list of users with pagination
  rpc ListUsers(ListUsersRequest) returns (ListUsersResponse) {}

  // GetUser returns detailed information about a specific user
  rpc GetUser(GetUserRequest) returns (GetUserResponse) {}
}
