727c94d0a9
modified: Dockerfile new file: cmd/api/main.go modified: docker-compose.yaml modified: go.mod modified: go.sum new file: internal/config/config.go new file: internal/handler/middleware.go new file: internal/handler/user_handler.go new file: internal/model/user.go new file: internal/repository/user_repository.go new file: internal/server/server.go new file: internal/service/user_service.go new file: main deleted: main.go new file: migrations/001_create_users.sql new file: pkg/database/postgres.go deleted: src/models/user.go add files from deepseek for rest api server on golang gorm and chi server router
37 lines
1.2 KiB
Go
37 lines
1.2 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type User struct {
|
|
ID uint `json:"id" gorm:"primarykey"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
DeletedAt gorm.DeletedAt `json:"deleted_at,omitempty" gorm:"index"`
|
|
|
|
Name string `json:"name" gorm:"size:100;not null"`
|
|
Email string `json:"email" gorm:"size:255;uniqueIndex;not null"`
|
|
Password string `json:"-" gorm:"size:255;not null"` // Пароль не возвращаем в JSON
|
|
}
|
|
|
|
type CreateUserRequest struct {
|
|
Name string `json:"name" validate:"required,min=2,max=100"`
|
|
Email string `json:"email" validate:"required,email"`
|
|
Password string `json:"password" validate:"required,min=6"`
|
|
}
|
|
|
|
type UpdateUserRequest struct {
|
|
Name string `json:"name" validate:"omitempty,min=2,max=100"`
|
|
Email string `json:"email" validate:"omitempty,email"`
|
|
}
|
|
|
|
type UserResponse struct {
|
|
ID uint `json:"id"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
Name string `json:"name"`
|
|
Email string `json:"email"`
|
|
} |