| package entity |
|
|
| import ( |
| "time" |
|
|
| "github.com/google/uuid" |
| "gorm.io/gorm" |
| ) |
|
|
| type User struct { |
| ID uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()" json:"id"` |
| Username string `gorm:"type:varchar(100);not null;unique" json:"username"` |
| Fullname string `gorm:"column:name;type:varchar(100);not null" json:"fullname"` |
| Email string `gorm:"type:varchar(100);not null;unique" json:"email"` |
| Role string `gorm:"type:varchar(20);not null;default:'user'" json:"role"` |
| Password string `gorm:"type:varchar(255);not null" json:"-"` |
| Verified bool `gorm:"default:false" json:"verified"` |
| CreatedAt time.Time `json:"created_at"` |
| UpdatedAt time.Time `json:"updated_at"` |
| DeletedAt gorm.DeletedAt `gorm:"index" json:"deleted_at"` |
| } |
|
|
| type Report struct { |
| ID string `gorm:"type:text;primary_key" json:"id"` |
| UserID uuid.UUID `gorm:"type:uuid" json:"user_id"` |
| WorkerID *uuid.UUID `gorm:"type:uuid" json:"worker_id"` |
| Longitude float64 `gorm:"type:numeric" json:"longitude"` |
| Latitude float64 `gorm:"type:numeric" json:"latitude"` |
| RoadName string `gorm:"column:road_name;type:text" json:"road_name"` |
| BeforeImageURL string `gorm:"column:before_image_url;type:text" json:"before_image_url"` |
| AfterImageURL string `gorm:"column:after_image_url;type:text" json:"after_image_url"` |
| Description string `gorm:"type:text" json:"description"` |
| DestructClass string `gorm:"column:destruct_class;type:text" json:"destruct_class"` |
| LocationScore float64 `gorm:"column:location_score;type:numeric" json:"location_score"` |
| TotalScore float64 `gorm:"column:total_score;type:numeric" json:"total_score"` |
| Status string `gorm:"type:text" json:"status"` |
| AdminNotes string `gorm:"column:admin_notes;type:text" json:"admin_notes"` |
| Deadline *time.Time `gorm:"column:deadline;type:timestamp" json:"deadline"` |
| CreatedAt time.Time `json:"created_at"` |
| DeletedAt gorm.DeletedAt `gorm:"index" json:"deleted_at"` |
| } |
|
|