Complete rewrite of Django REST API to Go with: - Gin web framework for HTTP routing - GORM for database operations - GoAdmin for admin panel - Gorush integration for push notifications - Redis for caching and job queues Features implemented: - User authentication (login, register, logout, password reset) - Residence management (CRUD, sharing, share codes) - Task management (CRUD, kanban board, completions) - Contractor management (CRUD, specialties) - Document management (CRUD, warranties) - Notifications (preferences, push notifications) - Subscription management (tiers, limits) Infrastructure: - Docker Compose for local development - Database migrations and seed data - Admin panel for data management 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
47 lines
1.9 KiB
Go
47 lines
1.9 KiB
Go
package requests
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/shopspring/decimal"
|
|
)
|
|
|
|
// CreateTaskRequest represents the request to create a task
|
|
type CreateTaskRequest struct {
|
|
ResidenceID uint `json:"residence_id" binding:"required"`
|
|
Title string `json:"title" binding:"required,min=1,max=200"`
|
|
Description string `json:"description"`
|
|
CategoryID *uint `json:"category_id"`
|
|
PriorityID *uint `json:"priority_id"`
|
|
StatusID *uint `json:"status_id"`
|
|
FrequencyID *uint `json:"frequency_id"`
|
|
AssignedToID *uint `json:"assigned_to_id"`
|
|
DueDate *time.Time `json:"due_date"`
|
|
EstimatedCost *decimal.Decimal `json:"estimated_cost"`
|
|
ContractorID *uint `json:"contractor_id"`
|
|
}
|
|
|
|
// UpdateTaskRequest represents the request to update a task
|
|
type UpdateTaskRequest struct {
|
|
Title *string `json:"title" binding:"omitempty,min=1,max=200"`
|
|
Description *string `json:"description"`
|
|
CategoryID *uint `json:"category_id"`
|
|
PriorityID *uint `json:"priority_id"`
|
|
StatusID *uint `json:"status_id"`
|
|
FrequencyID *uint `json:"frequency_id"`
|
|
AssignedToID *uint `json:"assigned_to_id"`
|
|
DueDate *time.Time `json:"due_date"`
|
|
EstimatedCost *decimal.Decimal `json:"estimated_cost"`
|
|
ActualCost *decimal.Decimal `json:"actual_cost"`
|
|
ContractorID *uint `json:"contractor_id"`
|
|
}
|
|
|
|
// CreateTaskCompletionRequest represents the request to create a task completion
|
|
type CreateTaskCompletionRequest struct {
|
|
TaskID uint `json:"task_id" binding:"required"`
|
|
CompletedAt *time.Time `json:"completed_at"` // Defaults to now
|
|
Notes string `json:"notes"`
|
|
ActualCost *decimal.Decimal `json:"actual_cost"`
|
|
PhotoURL string `json:"photo_url"`
|
|
}
|