diff --git a/pkg/utils/generator/enum.tmpl b/pkg/utils/generator/enum.tmpl index f24f92e..36dacd3 100644 --- a/pkg/utils/generator/enum.tmpl +++ b/pkg/utils/generator/enum.tmpl @@ -189,14 +189,18 @@ func (x *{{.enum.Name}}) Scan(value interface{}) (err error) { } }{{end}} } - - return + + return } {{ if or .sql .sqlnullstr }} // Value implements the driver Valuer interface. func (x {{.enum.Name}}) Value() (driver.Value, error) { + {{- if eq .enum.Type "int" "int8" "int16" "int32" "int64" "uint" "uint8" "uint16" "uint32" "uint64" }} + return int64(x), nil + {{- else }} return {{.enum.Type }}(x), nil + {{- end }} } {{ else }} // Value implements the driver Valuer interface. diff --git a/templates/project/app/events/-gitkeep.tpl b/templates/project/app/events/-gitkeep.tpl deleted file mode 100644 index e69de29..0000000 diff --git a/templates/project/app/grpc/users/handler.go.tpl b/templates/project/app/grpc/users/handler.go.tpl new file mode 100644 index 0000000..ca2ccd4 --- /dev/null +++ b/templates/project/app/grpc/users/handler.go.tpl @@ -0,0 +1,24 @@ +package users + +import ( + "context" + + userv1 "{{.ModuleName}}/pkg/proto/user/v1" +) + +// @provider(grpc) userv1.RegisterUserServiceServer +type Users struct{} + +func (u *Users) ListUsers(ctx context.Context, in *userv1.ListUsersRequest) (*userv1.ListUsersResponse, error) { + // userv1.UserServiceServer + return &userv1.ListUsersResponse{}, nil +} + +// GetUser implements userv1.UserServiceServer +func (u *Users) GetUser(ctx context.Context, in *userv1.GetUserRequest) (*userv1.GetUserResponse, error) { + return &userv1.GetUserResponse{ + User: &userv1.User{ + Id: in.Id, + }, + }, nil +} diff --git a/templates/project/app/service/http/http.go.tpl b/templates/project/app/service/http/http.go.tpl index 274d18f..fad3cc1 100644 --- a/templates/project/app/service/http/http.go.tpl +++ b/templates/project/app/service/http/http.go.tpl @@ -9,6 +9,7 @@ import ( "{{.ModuleName}}/providers/hashids" "{{.ModuleName}}/providers/http" "{{.ModuleName}}/providers/http/swagger" + "{{.ModuleName}}/providers/job" "{{.ModuleName}}/providers/jwt" "{{.ModuleName}}/providers/postgres" diff --git a/templates/project/proto/user/v1/user.proto.raw b/templates/project/proto/user/v1/user.proto.raw new file mode 100644 index 0000000..40be68d --- /dev/null +++ b/templates/project/proto/user/v1/user.proto.raw @@ -0,0 +1,40 @@ +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) {} +}