Database Schema

Aetix Computer uses 18 MySQL tables. All tables are created via aetix_computer.sql using CREATE TABLE IF NOT EXISTS.

computer_calls

Active and closed dispatch calls.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKUnique call ID
codeVARCHAR(20)Dispatch code (e.g., '10-31')
titleVARCHAR(255)Call title / description
descriptionTEXTDetailed description
priorityTINYINTPriority level (1=Low, 2=Medium, 3=High)
statusVARCHAR(20)IDXPENDING, ACTIVE, CLOSED
locationVARCHAR(255)Street name + area
coordsJSON{x, y, z} coordinates
blipINTMap blip sprite ID
factionVARCHAR(50)IDXFaction that owns this call
created_byVARCHAR(50)Officer citizenid who created
created_by_nameVARCHAR(100)Officer name
created_atTIMESTAMPCreation timestamp
updated_atTIMESTAMPLast update timestamp
closed_atTIMESTAMPWhen the call was closed

computer_call_notes

Notes attached to dispatch calls.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKNote ID
call_idINTFK → computer_calls.idParent call
contentTEXTNote content
author_idVARCHAR(50)Author citizenid
author_nameVARCHAR(100)Author display name
created_atTIMESTAMPTimestamp

computer_call_units

Officers/units assigned to dispatch calls.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKAssignment ID
call_idINTFK → computer_calls.idParent call
citizenidVARCHAR(50)Assigned officer
nameVARCHAR(100)Officer name
callsignVARCHAR(20)Unit callsign
assigned_atTIMESTAMPWhen assigned

computer_call_timeline

Automatic timeline entries for call events.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKTimeline entry ID
call_idINTFK → computer_calls.idParent call
typeVARCHAR(50)Event type: created, status_change, unit_assigned, unit_unassigned, note_added
contentTEXTEvent description
author_nameVARCHAR(100)Who triggered the event
created_atTIMESTAMPEvent timestamp

computer_warrants

Arrest, search, bench, wiretap, and seizure warrants.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKWarrant ID
typeVARCHAR(30)IDXWarrant type ID (arrest, search, bench, wiretap, seizure)
statusVARCHAR(20)IDXPENDING, APPROVED, ACTIVE, SERVED, CANCELLED
citizenidVARCHAR(50)IDXTarget person
citizen_nameVARCHAR(100)Target name
reasonTEXTReason / justification
factionVARCHAR(50)Issuing faction
issued_byVARCHAR(50)Issuing officer citizenid
issued_by_nameVARCHAR(100)Issuing officer name
approved_byVARCHAR(50)Approving judge citizenid
approved_by_nameVARCHAR(100)Judge name
served_byVARCHAR(50)Serving officer citizenid
served_by_nameVARCHAR(100)Serving officer name
created_atTIMESTAMPCreated
updated_atTIMESTAMPLast updated
expires_atTIMESTAMPExpiration (nullable)

computer_bolos

Be On the Lookout bulletins.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKBOLO ID
titleVARCHAR(255)BOLO title
descriptionTEXTFull description
statusVARCHAR(20)IDXactive, expired, cancelled
person_nameVARCHAR(100)Suspect name (if applicable)
person_descriptionTEXTPhysical description
vehicle_plateVARCHAR(20)IDXVehicle plate (used for ALPR matching)
vehicle_modelVARCHAR(100)Vehicle model
vehicle_colorVARCHAR(50)Vehicle color
factionVARCHAR(50)Issuing faction
created_byVARCHAR(50)Creator citizenid
created_by_nameVARCHAR(100)Creator name
created_atTIMESTAMPCreated
expires_atTIMESTAMPExpiration (nullable)

computer_reports

Incident, arrest, use-of-force, traffic, and field interview reports.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKReport ID
typeVARCHAR(30)IDXReport type
titleVARCHAR(255)Report title
bodyLONGTEXTReport narrative (rich text)
statusVARCHAR(20)IDXDRAFT, SUBMITTED, APPROVED, REJECTED
call_idINTFK → computer_calls.idLinked dispatch call (nullable)
incident_idVARCHAR(50)IDXExternal incident ID for cross-referencing
factionVARCHAR(50)Author's faction
author_idVARCHAR(50)Author citizenid
author_nameVARCHAR(100)Author name
approved_byVARCHAR(50)Approver citizenid
approved_by_nameVARCHAR(100)Approver name
created_atTIMESTAMPCreated
updated_atTIMESTAMPLast updated

computer_citations

Issued citations (tickets).

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKCitation ID
citizenidVARCHAR(50)IDXOffender citizenid
citizen_nameVARCHAR(100)Offender name
total_fineINTTotal fine amount ($)
total_timeINTTotal jail time (months)
notesTEXTOfficer notes
factionVARCHAR(50)Issuing faction
issued_byVARCHAR(50)Issuing officer
issued_by_nameVARCHAR(100)Officer name
created_atTIMESTAMPIssued date

computer_citation_charges

Individual charges on a citation.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKCharge entry ID
citation_idINTFK → computer_citations.idParent citation
charge_idINTCharge ID from config
titleVARCHAR(255)Charge title
typeVARCHAR(30)Infraction / Misdemeanor / Felony
fineINTFine amount for this charge
timeINTJail time for this charge
countINT DEFAULT 1Number of counts

computer_person_flags

Active flags on person profiles.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKFlag entry ID
citizenidVARCHAR(50)IDXTarget person
flag_idVARCHAR(50)Flag identifier from config
added_byVARCHAR(50)Officer who added
added_by_nameVARCHAR(100)Officer name
reasonTEXTReason for flag
created_atTIMESTAMPWhen added

computer_person_notes

Officer notes on person profiles.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKNote ID
citizenidVARCHAR(50)IDXTarget person
contentTEXTNote content
author_idVARCHAR(50)Author citizenid
author_nameVARCHAR(100)Author name
created_atTIMESTAMPTimestamp

computer_vehicle_flags

Flags on vehicle records (stolen, BOLO, wanted). Used by ALPR/radar integration.

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKFlag entry ID
plateVARCHAR(20)IDXVehicle plate (uppercase, trimmed)
flag_typeVARCHAR(50)Flag type: stolen, bolo, wanted, custom
statusVARCHAR(20)IDXactive, cleared
added_byVARCHAR(50)Officer citizenid
added_by_nameVARCHAR(100)Officer name
reasonTEXTReason
created_atTIMESTAMPWhen flagged
cleared_atTIMESTAMPWhen cleared (nullable)

computer_gangs

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKGang ID
nameVARCHAR(100)UNIQUEGang name
descriptionTEXTDescription / notes
territoryVARCHAR(255)Known territory
threat_levelTINYINT1-5 threat level
created_atTIMESTAMPCreated
updated_atTIMESTAMPUpdated

computer_gang_members

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKMembership ID
gang_idINTFK → computer_gangs.idParent gang
citizenidVARCHAR(50)Member citizenid
citizen_nameVARCHAR(100)Member name
rankVARCHAR(50)Rank within gang
added_atTIMESTAMPWhen added

computer_gang_activity

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKActivity ID
gang_idINTFK → computer_gangs.idParent gang
descriptionTEXTActivity description
author_nameVARCHAR(100)Reporting officer
created_atTIMESTAMPWhen logged

computer_messages

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKMessage ID
factionVARCHAR(50)IDXFaction scope
sender_idVARCHAR(50)Sender citizenid
sender_nameVARCHAR(100)Sender name
sender_badgeVARCHAR(20)Badge number
contentTEXTMessage text
created_atTIMESTAMPSent at

computer_smt

Supervised Management Team (probation/parole tracking).

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKSMT entry ID
citizenidVARCHAR(50)IDXSupervised person
typeVARCHAR(30)parole, probation, etc.
conditionsTEXTSupervision conditions
assigned_byVARCHAR(50)Assigning officer
assigned_by_nameVARCHAR(100)Officer name
statusVARCHAR(20)active, completed, revoked
created_atTIMESTAMPStart date
expires_atTIMESTAMPEnd date (nullable)

computer_mugshots

ColumnTypeKeyDescription
idINT AUTO_INCREMENTPKMugshot ID
citizenidVARCHAR(50)IDXPerson
urlTEXTImage URL (base64 or hosted)
taken_byVARCHAR(50)Officer who took the photo
taken_by_nameVARCHAR(100)Officer name
created_atTIMESTAMPWhen taken

Entity Relationships

Key Relationships
computer_calls
  +-- computer_call_notes      (call_id -> calls.id)
  +-- computer_call_units      (call_id -> calls.id)
  +-- computer_call_timeline   (call_id -> calls.id)
  +-- computer_reports         (call_id -> calls.id)

computer_citations
  +-- computer_citation_charges (citation_id -> citations.id)

computer_gangs
  +-- computer_gang_members    (gang_id -> gangs.id)
  +-- computer_gang_activity   (gang_id -> gangs.id)

Person (citizenid) links across:
  - computer_warrants.citizenid
  - computer_person_flags.citizenid
  - computer_person_notes.citizenid
  - computer_citations.citizenid
  - computer_gang_members.citizenid
  - computer_smt.citizenid
  - computer_mugshots.citizenid

Vehicle (plate) links:
  - computer_vehicle_flags.plate
  - computer_bolos.vehicle_plate