madipo2611 0d4b8b203e v0.0.2
2025-05-01 12:17:42 +03:00

63 lines
1.7 KiB
Go

package domain
import (
"time"
)
// Пользователь
type User struct {
ID int `json:"id"`
Username string `json:"username"`
Email string `json:"email"`
EmailConfirmationToken string `json:"-"`
EmailConfirmedAt *time.Time `json:"emailConfirmedAt,omitempty"`
Password string `json:"-"` // Пароль не должен возвращаться в ответах
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
// Пост в блоге
type Post struct {
ID int `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
AuthorID int `json:"authorId"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
// Комментарий к посту
type Comment struct {
ID int `json:"id"`
Content string `json:"content"`
PostID int `json:"postId"`
AuthorID int `json:"authorId"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
// Лайк к посту
type Like struct {
ID int `json:"id"`
PostID int `json:"postId"`
UserID int `json:"userId"`
CreatedAt time.Time `json:"createdAt"`
}
// Токены для аутентификации
type Tokens struct {
AccessToken string `json:"accessToken"`
RefreshToken string `json:"refreshToken"`
}
type RegisterInput struct {
Username string `json:"username"`
Email string `json:"email"`
Password string `json:"password"`
}
type LoginInput struct {
Email string `json:"email"`
Password string `json:"password"`
}