165 lines
4.8 KiB
Go
165 lines
4.8 KiB
Go
package contract
|
|
|
|
import "time"
|
|
|
|
type ErrorResponse struct {
|
|
Error string `json:"error"`
|
|
Message string `json:"message"`
|
|
Details map[string]interface{} `json:"details,omitempty"`
|
|
Code int `json:"code"`
|
|
}
|
|
|
|
type ValidationErrorResponse struct {
|
|
Error string `json:"error"`
|
|
Message string `json:"message"`
|
|
Details map[string]string `json:"details"`
|
|
Code int `json:"code"`
|
|
}
|
|
|
|
type SuccessResponse struct {
|
|
Message string `json:"message"`
|
|
Data interface{} `json:"data,omitempty"`
|
|
}
|
|
|
|
type PaginationRequest struct {
|
|
Page int `json:"page" validate:"min=1"`
|
|
Limit int `json:"limit" validate:"min=1,max=100"`
|
|
}
|
|
|
|
type PaginationResponse struct {
|
|
TotalCount int `json:"total_count"`
|
|
Page int `json:"page"`
|
|
Limit int `json:"limit"`
|
|
TotalPages int `json:"total_pages"`
|
|
}
|
|
|
|
type SearchRequest struct {
|
|
Query string `json:"query,omitempty"`
|
|
}
|
|
|
|
type DateRangeRequest struct {
|
|
From *time.Time `json:"from,omitempty"`
|
|
To *time.Time `json:"to,omitempty"`
|
|
}
|
|
|
|
type HealthResponse struct {
|
|
Status string `json:"status"`
|
|
Timestamp time.Time `json:"timestamp"`
|
|
Version string `json:"version"`
|
|
}
|
|
|
|
type LabelResponse struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Color *string `json:"color,omitempty"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type CreateLabelRequest struct {
|
|
Name string `json:"name"`
|
|
Color *string `json:"color,omitempty"`
|
|
}
|
|
|
|
type UpdateLabelRequest struct {
|
|
Name *string `json:"name,omitempty"`
|
|
Color *string `json:"color,omitempty"`
|
|
}
|
|
|
|
type ListLabelsResponse struct {
|
|
Labels []LabelResponse `json:"labels"`
|
|
}
|
|
|
|
type PriorityResponse struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Level int `json:"level"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type CreatePriorityRequest struct {
|
|
Name string `json:"name"`
|
|
Level int `json:"level"`
|
|
}
|
|
|
|
type UpdatePriorityRequest struct {
|
|
Name *string `json:"name,omitempty"`
|
|
Level *int `json:"level,omitempty"`
|
|
}
|
|
|
|
type ListPrioritiesResponse struct {
|
|
Priorities []PriorityResponse `json:"priorities"`
|
|
}
|
|
|
|
type InstitutionResponse struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Type string `json:"type"`
|
|
Address *string `json:"address,omitempty"`
|
|
ContactPerson *string `json:"contact_person,omitempty"`
|
|
Phone *string `json:"phone,omitempty"`
|
|
Email *string `json:"email,omitempty"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type CreateInstitutionRequest struct {
|
|
Name string `json:"name"`
|
|
Type string `json:"type"`
|
|
Address *string `json:"address,omitempty"`
|
|
ContactPerson *string `json:"contact_person,omitempty"`
|
|
Phone *string `json:"phone,omitempty"`
|
|
Email *string `json:"email,omitempty"`
|
|
}
|
|
|
|
type UpdateInstitutionRequest struct {
|
|
Name *string `json:"name,omitempty"`
|
|
Type *string `json:"type,omitempty"`
|
|
Address *string `json:"address,omitempty"`
|
|
ContactPerson *string `json:"contact_person,omitempty"`
|
|
Phone *string `json:"phone,omitempty"`
|
|
Email *string `json:"email,omitempty"`
|
|
}
|
|
|
|
type ListInstitutionsResponse struct {
|
|
Institutions []InstitutionResponse `json:"institutions"`
|
|
}
|
|
|
|
type DispositionActionResponse struct {
|
|
ID string `json:"id"`
|
|
Code string `json:"code"`
|
|
Label string `json:"label"`
|
|
Description *string `json:"description,omitempty"`
|
|
RequiresNote bool `json:"requires_note"`
|
|
GroupName *string `json:"group_name,omitempty"`
|
|
SortOrder *int `json:"sort_order,omitempty"`
|
|
IsActive bool `json:"is_active"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type CreateDispositionActionRequest struct {
|
|
Code string `json:"code"`
|
|
Label string `json:"label"`
|
|
Description *string `json:"description,omitempty"`
|
|
RequiresNote *bool `json:"requires_note,omitempty"`
|
|
GroupName *string `json:"group_name,omitempty"`
|
|
SortOrder *int `json:"sort_order,omitempty"`
|
|
IsActive *bool `json:"is_active,omitempty"`
|
|
}
|
|
|
|
type UpdateDispositionActionRequest struct {
|
|
Code *string `json:"code,omitempty"`
|
|
Label *string `json:"label,omitempty"`
|
|
Description *string `json:"description,omitempty"`
|
|
RequiresNote *bool `json:"requires_note,omitempty"`
|
|
GroupName *string `json:"group_name,omitempty"`
|
|
SortOrder *int `json:"sort_order,omitempty"`
|
|
IsActive *bool `json:"is_active,omitempty"`
|
|
}
|
|
|
|
type ListDispositionActionsResponse struct {
|
|
Actions []DispositionActionResponse `json:"actions"`
|
|
}
|