// models/common.go
package models

import "time"

// Общая структура для информации об авторе
type AuthorInfo struct {
    ID        uint   `json:"id"`
    FirstName string `json:"first_name"`
    LastName  string `json:"last_name"`
    Avatar    string `json:"avatar,omitempty"`
    Email     string `json:"email,omitempty"` // Добавляем email
}

// DTO для пагинации
type PaginationRequest struct {
	Page    int `form:"page" validate:"min=1" default:"1"`
	PerPage int `form:"per_page" validate:"min=1,max=100" default:"10"`
}

type PaginationResponse struct {
	Page       int `json:"page"`
	PerPage    int `json:"per_page"`
	Total      int `json:"total"`
	TotalPages int `json:"total_pages"`
}

// DTO для фильтров
type DateRangeFilter struct {
	StartDate *time.Time `form:"start_date"`
	EndDate   *time.Time `form:"end_date"`
}

type WorkoutFilter struct {
	DateRangeFilter
	Type    string `form:"type"`
	UserID  uint   `form:"user_id"`
}