Overview
TheClient model represents a tattoo studio client with comprehensive personal information, health records, emergency contacts, consent tracking, and preferences.
Model Definition
Fields
Primary Key
Unique identifier for the client
Basic Information
Client’s full name
Contact phone number
Email address
General notes about the client
Whether the client is active in the system
Timestamp when the client record was created
Personal Details
Client’s Instagram handle
City of residence
State or province
Client’s gender
Date of birth
Consent Fields
Consent to receive information
Consent for image usage
Consent for data processing
Emergency Contact
Emergency contact’s full name
Relationship to the emergency contact
Emergency contact’s phone number
Preferences
Foreign key reference to the client’s preferred artist (artists.id)
Health Information
Client has allergies
Client has diabetes
Client has coagulation issues
Client has epilepsy
Client has cardiac conditions
Client takes anticoagulants
Client is pregnant or lactating
Client uses substances that may affect tattooing
Client has dermatological conditions
Additional health observations or notes
Relationships
The Artist object for the client’s preferred artistForeign Key:
preferred_artist_id → artists.idBackref: preferred_clients on Artist modelList of all tattoo sessions for this clientRelationship: One-to-Many with TattooSessionCascade:
all, delete-orphan - sessions are deleted when client is deletedBack Populates: client on TattooSession modelDatabase Schema
Usage Example
Notes
- The
is_activefield allows soft-deletion of client records - All health fields are optional booleans for quick screening
- The
health_obsfield provides space for detailed health notes - Emergency contact information is stored separately for quick access
- The relationship with
sessionsincludes cascade delete to maintain referential integrity - Location in codebase:
data/models/client.py:11