67 lines
1.9 KiB
Go
67 lines
1.9 KiB
Go
package domain
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// Пользователь
|
|
type User struct {
|
|
ID int `json:"id"`
|
|
Username string `json:"username"`
|
|
Avatar string `json:"avatar"`
|
|
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"`
|
|
AccessTokenExpires time.Time `json:"accessTokenExpires"`
|
|
RefreshTokenExpires time.Time `json:"refreshTokenExpires"`
|
|
EmailConfirmed bool `json:"emailConfirmed"`
|
|
}
|
|
|
|
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"`
|
|
}
|