package models // User represents a system user type User struct { ID string `db:"id" json:"id"` Email string `db:"email" json:"email"` Password string `db:"password" json:"-"` // Never expose password in JSON Role string `db:"role" json:"role"` Name string `db:"name" json:"name"` CreatedAt string `db:"created_at" json:"created_at"` UpdatedAt string `db:"updated_at" json:"updated_at"` } // RefreshToken represents a refresh token stored in the database type RefreshToken struct { ID string `db:"id" json:"id"` UserID string `db:"user_id" json:"user_id"` Token string `db:"token" json:"token"` ExpiresAt string `db:"expires_at" json:"expires_at"` IsRevoked bool `db:"is_revoked" json:"is_revoked"` CreatedAt string `db:"created_at" json:"created_at"` } // PatientDetails contains patient-specific data type PatientDetails struct { PatientID string `json:"patient_id"` PatientName string `json:"patient_name"` AccessionNumber string `json:"accession_number,omitempty"` // For backward compatibility AccessionNumbers []string `json:"accession_numbers,omitempty"` // Multiple accession numbers StudyInstanceUID string `json:"study_instance_uid,omitempty"` // For backward compatibility StudyInstanceUIDs []string `json:"study_instance_uids,omitempty"` // Multiple study IDs } // DoctorDetails contains doctor-specific data type DoctorDetails struct { DoctorID string `json:"doctor_id"` DoctorName string `json:"doctor_name"` Type string `json:"type"` // "ref_doctor" or "expertise_doctor" } // LoginRequest represents the login form data type LoginRequest struct { Email string `json:"email"` Password string `json:"password"` } // LoginResponse is the response sent after successful login type LoginResponse struct { AccessToken string `json:"access_token"` RefreshToken string `json:"refresh_token"` User *User `json:"user"` RedirectURL string `json:"redirect_url"` } // RefreshRequest represents the refresh token request type RefreshRequest struct { RefreshToken string `json:"refresh_token"` } // RefreshResponse is the response for a token refresh type RefreshResponse struct { AccessToken string `json:"access_token"` }