Modeling cocard
model Location
bin/rails g scaffold Location \
lid:string \
description:string \
--no-stylesheets --no-javascripts --no-helper
i.e. NRH
, BNA
. Only for grouping and information.
model Context
Context for SOAP requests.
bin/rails g scaffold Context \
mandant:string \
client_system:string \
workplace:string \
description:string \
--no-stylesheets --no-javascripts --no-helper
i.e. ORBIS
, Ein1
. Used as Mandant_id
in SOAP requests.
model Connector
bin/rails g scaffold Connector \
name:string \
short_name:string \
ip:inet \
admin_url:string \
sds_url:string \
manual_update:boolean \
id_contract:string \
serial:string \
use_tls:boolean \
authentication:integer \
auth_user:string \
auth_password:string \
--no-stylesheets --no-javascripts --no-helper
bin/rails g migration AddReadonlyToConnector \
sds_xml:text \
sds_updated_at: \
connector_services:jsonb \
last_check:timestamp last_ok:timestamp \
condition:integer:index \
condition_message:string \
soap_request_success:boolean \
vpnti_online:boolean \
firmware_version:string \
acknowledge_id:bigint \
iccsn:string \
expiration_date:date \
rebooted_at:timestamp
Install ActionText
bin/rails action_text:install
app/models/connector.rb
class Connector < ApplicationRecord
has_rich_text :description
end
model CardTerminal
bin/rails g scaffold CardTerminal \
displayname:string \
location:belongs_to \
room:string \
contact:string \
plugged_in:string \
delivery_date:date \
supplier:string \
serial:string \
id_product:string \
pin_mode:integer \
idle_message:string \
--no-stylesheets --no-javascripts --no-helper
bin/rails g migration AddInternalToCardTerminal \
properties:jsonb \
name:string \
ct_id:string \
mac:macaddr \
ip:inet \
current_ip:inet \
slots:integer \
connected:boolean \
condition:integer \
condition_message:string \
last_ok:timestamp last_check:timestamp \
connector:belongs_to \
network:belongs_to \
firmware_version:string \
acknowledge_id:bigint \
rebooted_at:timestamp
enum pin_mode: { off: 0, on_demand: 1, auto: 2 }
app/models/card_terminal.rb
class CardTerminal < ApplicationRecord
has_rich_text :description
end
model CardTerminalSlot
bin/rails g model CardTerminalSlot \
card_terminal:belongs_to \
slot:integer \
--no-stylesheets --no-javascripts --no-helper
model Card
bin/rails g scaffold Card \
name:string \
operational_state:belongs_to \
location:belongs_to \
lanr:string \
bsnr:string \
fachrichtung:string \
telematikid:string \
private_information:rich_text \
--no-stylesheets --no-javascripts --no-helper
bin/rails g migration AddInternalToCard \
properties:jsonb \
card_handle:string \
card_type:string \
iccsn:string \
slotid:integer \
insert_time:timestamp \
card_holder_name:string \
expiration_date:date \
condition:integer \
condition_message:string \
last_check:timestamp last_ok:timestamp \
acknowledge_id:bigint \
card_terminal_slot:belongs_to
bin/rails g migration AddCertificateToCard \
certificate:text \
cert_subject_cn:string \
cert_subject_title:string \
cert_subject_sn:string \
cert_subject_givenname:string \
cert_subject_street:string \
cert_subject_postalcode:string \
cert_subject_l:string \
cert_subject_o:string
bin/rails g migration AddDeletedAtToCard \
deleted_at:timestamp
app/models/card_terminal.rb
class Card < ApplicationRecord
has_rich_text :description
end
model OperationalState
bin/rails g scaffold OperationalState \
name:string \
description:string \
operational:boolean:index \
--no-stylesheets --no-javascripts --no-helper
model Log
bin/rails g scaffold Log \
loggable:references{polymorphic} \
action:string \
last_seen:timestamp \
since:timestamp \
level:string:index \
message:text \
is_valid:boolean \
condition:integer \
acknowledge_id:bigint \
--no-stylesheets --no-javascripts --no-helper
acknowledge_id contains the current acknowledge if available.
|
model Network
bin/rails g scaffold Network \
netzwerk:cidr \
description:rich_text \
location:belongs_to \
accessibility:integer \
--no-stylesheets --no-javascripts --no-helper
enum accessibility: { none: -1, ping: 0 }
model Workplace
bin/rails g scaffold Workplace \
description:rich_text
--no-stylesheets --no-javascripts --no-helper
bin/rails g migration AddNameToWorkplace \
name:string lastseen:timestamp
model ClientCertificate
bin/rails g scaffold ClientCertificate \
name:string \
client_system:string \
description:rich_text \
cert:text \
pkey:text \
passphrase:string \
--no-stylesheets --no-javascripts --no-helper
model Note
bin/rails g scaffold Note \
notable:belongs_to{polymorphic} \
user:belongs_to \
valid_until:datetime \
type:integer \
message:rich_text \
--no-stylesheets --no-javascripts --no-helper
enum type: { plain: 0, acknowledge: 1 }
HABTM Tables
ConnectorLocation
Join Tables for HABTM
bin/rails g migration CreateJoinTableConnectorLocation \
connector location
Add index and set index to unique:
class CreateJoinTableConnectorLocation < ActiveRecord::Migration[7.1]
def change
create_join_table :connectors, :locations do |t|
t.index [:location_id, :connector_id], unique: true
t.index [:connector_id, :location_id], unique: true
end
end
end
ConnectorClientCertificate
Join Tables for HABTM
bin/rails g migration CreateJoinTableConnectorClientCertificate \
connector client_certificate
Add index and set index to unique:
class CreateJoinTableConnectorClientCertificate < ActiveRecord::Migration[7.1]
def change
create_join_table :connectors, :client_certificates do |t|
t.index [:client_certificate_id, :connector_id], unique: true
t.index [:connector_id, :client_certificate_id], unique: true
end
end
end
HABTM Connector—Context through ConnectorContext
HABTM for Connector and Context with additional attributes
bin/rails g model ConnectorContext \
connector:belongs_to \
context:belongs_to \
position:integer:index \
--no-stylesheets --no-javascripts --no-helper
Unique Index for ConnectorContext
t.index [:connector_id, :context_id], unique: true
t.index [:context_id, :connector_id], unique: true
HABTM Card—Context through ConnectorContext
HABTM for Card and Context with additional attributes
bin/rails g model CardContext \
card:belongs_to \
context:belongs_to \
position:integer:index \
pin_status:string:index \
left_tries:integer \
--no-stylesheets --no-javascripts --no-helper
Unique Index for CardContext
t.index [:card_id, :context_id], unique: true
t.index [:context_id, :card_id], unique: true
HABTM Terminal—Workplaces through TerminalWorkplaces
HABTM for Terminals and Workplaces with additional attributes
bin/rails g model TerminalWorkplaces \
card_terminal:belongs_to \
workplace:belongs_to \
mandant:string:index \
client_system:string:index \
--no-stylesheets --no-javascripts --no-helper
Unique Index for TerminalWorkplaces
t.index [:card_terminal_id, :mandant,\
:client_system, :workplace_id], unique: true
t.index [:workplace_id, :card_terminal_id]
t.index [:card_terminal_id, :workplace_id]
model SinglePicture
aka TI-Lagebild
bin/rails g model SinglePicture \
time:timestamp \
ci:string \
tid:string \
bu:string:index \
organization:string \
pdt:string:index \
product:string \
availability:integer:index \
comment:string \
name:string \
muted:boolean \
--no-stylesheets --no-javascripts --no-helper