Perbaikan Generete Satu Sehat
This commit is contained in:
105
internal/models/patient/patient.go
Normal file
105
internal/models/patient/patient.go
Normal file
@@ -0,0 +1,105 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
"github.com/go-playground/validator/v10"
|
||||
)
|
||||
|
||||
// BaseRequest contains common fields for all requests
|
||||
type BaseRequest struct {
|
||||
RequestID string `json:"request_id,omitempty"`
|
||||
Timestamp time.Time `json:"timestamp,omitempty"`
|
||||
}
|
||||
|
||||
// BaseResponse contains common fields for all responses
|
||||
type BaseResponse struct {
|
||||
Status string `json:"status"`
|
||||
Message string `json:"message"`
|
||||
Data interface{} `json:"data,omitempty"`
|
||||
RequestID string `json:"request_id,omitempty"`
|
||||
}
|
||||
|
||||
// ErrorResponse represents an error response
|
||||
type ErrorResponse struct {
|
||||
Status string `json:"status"`
|
||||
Message string `json:"message"`
|
||||
RequestID string `json:"request_id,omitempty"`
|
||||
}
|
||||
|
||||
// SuccessResponse represents a success response
|
||||
type SuccessResponse struct {
|
||||
Status string `json:"status"`
|
||||
Message string `json:"message"`
|
||||
RequestID string `json:"request_id,omitempty"`
|
||||
}
|
||||
|
||||
// SearchData contains search results
|
||||
type SearchData struct {
|
||||
Results []interface{} `json:"results"`
|
||||
Total int `json:"total"`
|
||||
Limit int `json:"limit"`
|
||||
Offset int `json:"offset"`
|
||||
}
|
||||
|
||||
// Patient Models
|
||||
// Generated at: 2025-09-07 17:42:51
|
||||
|
||||
// PatientCreateRequest represents a request to create a Patient
|
||||
type PatientCreateRequest struct {
|
||||
BaseRequest
|
||||
// Add fields specific to Patient creation
|
||||
Name string `json:"name" validate:"required"`
|
||||
Description string `json:"description" validate:"omitempty"`
|
||||
}
|
||||
|
||||
// PatientUpdateRequest represents a request to update a Patient
|
||||
type PatientUpdateRequest struct {
|
||||
BaseRequest
|
||||
ID string `json:"id" validate:"required,uuid"`
|
||||
Name string `json:"name" validate:"required"`
|
||||
Description string `json:"description" validate:"omitempty"`
|
||||
}
|
||||
|
||||
// PatientResponse represents a response for Patient operations
|
||||
type PatientResponse struct {
|
||||
BaseResponse
|
||||
}
|
||||
|
||||
// PatientSearchResponse represents a response for Patient search
|
||||
type PatientSearchResponse struct {
|
||||
BaseResponse
|
||||
Data SearchData `json:"data"`
|
||||
}
|
||||
|
||||
// PatientData represents the data structure for Patient
|
||||
type PatientData struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description,omitempty"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at,omitempty"`
|
||||
}
|
||||
|
||||
// Validate validates the PatientCreateRequest
|
||||
func (r *PatientCreateRequest) Validate() error {
|
||||
validate := validator.New()
|
||||
return validate.Struct(r)
|
||||
}
|
||||
|
||||
// Validate validates the PatientUpdateRequest
|
||||
func (r *PatientUpdateRequest) Validate() error {
|
||||
validate := validator.New()
|
||||
return validate.Struct(r)
|
||||
}
|
||||
|
||||
// NewPatientData creates a new PatientData with default values
|
||||
func NewPatientData(name, description string) *PatientData {
|
||||
now := time.Now()
|
||||
return &PatientData{
|
||||
ID: "", // Will be set by the database
|
||||
Name: name,
|
||||
Description: description,
|
||||
CreatedAt: now,
|
||||
UpdatedAt: now,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user