Files
tm_back/internal/user/entity.go
T
n.nakhostin 38844939b5 Refactor User Management API and Update Documentation
- Changed API tags from "Admin-Users" to "Admin-Authorization" for better clarity in user management endpoints.
- Removed unused endpoints for retrieving users by company ID and role, streamlining the user management functionality.
- Updated user entity and forms to reflect new example values for improved clarity in API documentation.
- Enhanced pagination handling in user listing responses, ensuring consistent metadata structure.
- Updated API documentation to reflect changes in endpoint structure and response formats, improving clarity for API consumers.
2025-09-06 14:00:22 +03:30

74 lines
2.0 KiB
Go

package user
import (
"tm/pkg/mongo"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// UserRole represents user roles in the system
type UserRole string
const (
UserRoleAdmin UserRole = "admin"
UserRoleManager UserRole = "manager"
UserRoleOperator UserRole = "operator"
UserRoleViewer UserRole = "viewer"
)
// UserStatus represents user account status
type UserStatus string
const (
UserStatusActive UserStatus = "active"
UserStatusInactive UserStatus = "inactive"
UserStatusSuspended UserStatus = "suspended"
)
// User represents a system user (admin/manager/operator)
type User struct {
mongo.Model `bson:",inline"`
FullName string `bson:"full_name"`
Username string `bson:"username"`
Email string `bson:"email"`
Password string `bson:"password" json:"-"`
Role UserRole `bson:"role"`
Status UserStatus `bson:"status"`
Department *string `bson:"department"`
Position *string `bson:"position"`
Phone *string `bson:"phone"`
ProfileImage *string `bson:"profile_image"`
IsVerified bool `bson:"is_verified"`
LastLoginAt *int64 `bson:"last_login_at"`
}
// SetID sets the user ID (implements IDSetter interface)
func (u *User) SetID(id string) {
u.ID, _ = primitive.ObjectIDFromHex(id)
}
// GetID returns the user ID (implements IDGetter interface)
func (u *User) GetID() string {
return u.ID.Hex()
}
// SetCreatedAt sets the created timestamp (implements Timestamp interface)
func (u *User) SetCreatedAt(timestamp int64) {
u.CreatedAt = timestamp
}
// SetUpdatedAt sets the updated timestamp (implements Timestamp interface)
func (u *User) SetUpdatedAt(timestamp int64) {
u.UpdatedAt = timestamp
}
// GetCreatedAt returns the created timestamp (implements Timestamp interface)
func (u *User) GetCreatedAt() int64 {
return u.CreatedAt
}
// GetUpdatedAt returns the updated timestamp (implements Timestamp interface)
func (u *User) GetUpdatedAt() int64 {
return u.UpdatedAt
}