diff --git a/app/controllers/employers_controller.rb b/app/controllers/employers_controller.rb index 4a67fae..d070121 100644 --- a/app/controllers/employers_controller.rb +++ b/app/controllers/employers_controller.rb @@ -9,23 +9,31 @@ class EmployersController < ApplicationController def new @employer = Employer.new - @employer.build_plan_with_default_benefits - @plan_templates = IdCardBenefitsTemplate.where.not(title: "BLANK") - render :new_new + render :new end def import word_doc = params[:employer][:import_from_word] - @plan_templates = IdCardBenefitsTemplate.where.not(title: "BLANK") if word_doc.present? && word_doc.is_a?(ActionDispatch::Http::UploadedFile) @employer = BenefitsWordDocProcessor.new(word_doc.tempfile).call else @employer = Employer.new - @employer.build_plan_with_default_benefits end - render :new_new + render :new end + # def import_old + # word_doc = params[:employer][:import_from_word] + # @plan_templates = IdCardBenefitsTemplate.where.not(title: "BLANK") + # if word_doc.present? && word_doc.is_a?(ActionDispatch::Http::UploadedFile) + # @employer = BenefitsWordDocProcessor.new(word_doc.tempfile).call + # else + # @employer = Employer.new + # @employer.build_plan_with_default_benefits + # end + # render :new + # end + def create employer_params = Employer.permitted_params(params) puts "---Params---" @@ -36,16 +44,13 @@ class EmployersController < ApplicationController # update_logos_with_employer_setup_information() redirect_to employer_path(@employer.slug), notice: 'Employer Saved' else - @plan_templates = IdCardBenefitsTemplate.where.not(title: "BLANK") - render :new_new + render :new end end def edit @employer = Employer.find_by(slug: params[:id]) - @plan_templates = IdCardBenefitsTemplate.where.not(title: "BLANK") render :edit - # @resource = Resource.find(params[:id]) end def update diff --git a/app/controllers/id_card/employer_logos_controller.rb b/app/controllers/id_card/employer_logos_controller.rb new file mode 100644 index 0000000..18d8f6f --- /dev/null +++ b/app/controllers/id_card/employer_logos_controller.rb @@ -0,0 +1,56 @@ +class IdCard::EmployerLogosController < ApplicationController + + def index + end + + def show + end + + def image + logo_file = IdCard::EmployerLogo.find(params[:id]) + puts params[:id] + logo_binary = logo_file.image_data + logo_filename = logo_file.filename + + send_data logo_binary, + filename: logo_filename, + disposition: 'inline' + end + + def new + end + + def create + file = card_logo_file_params["logo_file"] + if file.present? && file.is_a?(ActionDispatch::Http::UploadedFile) + filename = file.original_filename + # binary_data = file.read + binary_data = File.binread(file) + meme_type = Marcel::MimeType.for(file) + + employerlogo = IdCard::EmployerLogo.create( + filename: filename, + image_data: binary_data, + content_type: meme_type + ) + + render json: employerlogo, only: [:id], status: :ok + end + end + + def edit + end + + def update + end + + def destroy + end + + private + + def card_logo_file_params + params.require(:card_logo_file).permit(:logo_file, :logo_type) + end + +end \ No newline at end of file diff --git a/app/controllers/id_card/setup_controller.rb b/app/controllers/id_card/setup_controller.rb new file mode 100644 index 0000000..906b554 --- /dev/null +++ b/app/controllers/id_card/setup_controller.rb @@ -0,0 +1,236 @@ +class IdCard::SetupController < ApplicationController + + def new + @employer = Employer.find_by(slug: params[:id]) + @setup = @employer.id_card_setup.new + render :new + end + + def create + employer_params = Employer.permitted_params(params) + puts "---Params---" + puts employer_params + # post_image_processing_params = process_logos(employer_setup_process_params) + @employer = Employer.new(employer_params) + if @employer.save + # update_logos_with_employer_setup_information() + redirect_to employer_path(@employer.slug), notice: 'Employer Saved' + else + render :new + end + end + + def edit + @employer = Employer.find_by(slug: params[:id]) + render :edit + end + + def update + puts "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + employer_params = Employer.permitted_params(params) + @employer = Employer.find(params[:id]) + + if @employer.update(employer_params) + puts "sucess" + redirect_to employer_path(@employer.slug), notice: 'Employer was successfully updated.' + else + puts "fail" + render :edit, status: :unprocessable_entity + end + + end + + def destroy + # @resource = Resource.find(params[:id]) + # @resource.destroy + # redirect_to resources_url, notice: 'Resource was successfully destroyed.' + end + + private + + # def process_logos(employer_setup_process_params) + # @uploaded_logos = [] + # employer_logo = employer_setup_process_params["employer_logo"] + # if employer_logo.present? && employer_logo.is_a?(ActionDispatch::Http::UploadedFile) + # filename = employer_logo.original_filename + # binary_data = employer_logo.read + # meme_type = Marcel::MimeType.for(employer_logo) + + # CardLogoFile.create( + # filename: filename, + # image_data: binary_data, + # content_type: meme_type, + # logo_type: "employer" + # ) + + # @uploaded_logos.push(filename) + # employer_setup_process_params["employer_logo"] = filename + # end + + # network_logos = employer_setup_process_params["alternate_network_logos_attributes"] + # if network_logos.present? + # network_logos.each do |alt| + + # network_logo = alt.last["network_logo"] + # if network_logo.present? && network_logo.is_a?(ActionDispatch::Http::UploadedFile) + # filename = network_logo.original_filename + # binary_data = network_logo.read + # meme_type = Marcel::MimeType.for(network_logo) + + # CardLogoFile.create( + # filename: filename, + # image_data: binary_data, + # content_type: meme_type, + # logo_type: "network" + # ) + + # @uploaded_logos.push(filename) + # end + # alt.last["network_logo"] = @uploaded_logos.last + # end + # end + # employer_setup_process_params + # end + + # def update_logos_with_employer_setup_information() + # @uploaded_logos.each do |logo| + # logo_file = CardLogoFile.find_by(filename: logo) + # if logo_file.present? && @employer.present? + # logo_file.employer_setup_process = @employer + # logo_file.save + # end + # end + + # end + + # def general_information_params + # params.require(:employer_setup_general_information_form).permit( + # :name, + # :employer_logo, + # :group_number, + # :dental, + # :pl_plan_key, + # :effect_date, + # :number_of_plans, + # :network, + # :number_of_additional_network_logos + # ) + # end + + # def plans_params + # params.require(:employer_setup_plans_form).permit( + # plans: permited_plans_keys, + # benefit_descs: benefit_sequence_keys + # ) + # end + + # def network_exceptions_params + # params.require(:employer_setup_network_exceptions_form).permit( + # network_exceptions: [:network_logo, exceptions: [:type, :value]], + # ) + # end + + # def form_for_step + # step_name = @top_form.current_step + # form_method = "EmployerSetup#{step_name.camelize}Form".constantize + # # puts "/////\\\\\\||||||" + # # puts session[:employer_setup_data] + # # puts session[:employer_setup_data]['employer_setup_process_id'] + # puts form_method + # form_method.new(session[:employer_setup_data]['employer_setup_process_id']) + # end + + # def process_step(step_name) + # @form_method = "EmployerSetup#{step_name.camelize}Form".constantize + # session_data_name = "#{step_name}_data" + # # puts "1--------------params----" + # # puts params + # # puts "8--------------session----" + # # puts session[:employer_setup_data] + # employer_setup_process_id = session[:employer_setup_data]['employer_setup_process_id'] + # # puts session[:employer_setup_data] + # puts "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + # puts params + # @form = @form_method.new(employer_setup_process_id, params) + # if @form.pl_plan_key.blank? + # @form.pl_plan_key = session[:employer_setup_data]['pl_plan_key'] + # end + # if @form.valid? && @form.save + # pl_plan_key = @top_form.pl_plan_key || @form.pl_plan_key + # # session[:employer_setup_data].merge!({current_step: step_name, pl_plan_key: pl_plan_key}) + # # form_fields = @form.attributes.merge!(global_params(step_name)) + # # session[:employer_setup_data][session_data_name] = form_fields + # # session[:employer_setup_data].merge!(global_params(step_name)) + # # puts session[:employer_setup_data][session_data_name] + # true + # else + # false + # end + # end + + # def step_params(step_name) + # form_name_sym = "employer_setup_#{step_name}_form".to_sym + # params.require(form_name_sym).permit(@form_method.permitted_params) + # end + + # def global_params(step_name) + # form_name_sym = "employer_setup_#{step_name}_form".to_sym + # params.require(form_name_sym).permit(EmployerSetupForm.permitted_params) + # end + + # def process_step(step_name) + # form_name = "employer_setup_#{step_name}_form".camelize.constantize + # form_params_name = "#{step_name}_params".to_sym + # allowed_params = [:general_information_params, :plans_params, :network_exceptions_params] + # if allowed_params.include?(form_params_name) + # form_params = send(form_params_name) + # @form = form_name.new(form_params) + # if @form.valid? + # session[:employer_setup_data]["#{step_name}_data"] = form_params + # true + # else + # false + # end + # end + # false + # end + + # def employer_setup_params + # params.require(:employer_setup_form).permit( + # :current_step, + # :name, + # :employer_logo, + # :group_number, + # :pl_plan_key, + # :effect_date, + # :number_of_plans, + # :network, + # :number_of_additional_network_logos, + # network_exceptions: [:network_logo, exceptions: [:type, :value]], + # plans: permited_plans_keys, + # benefit_descs: benefit_sequence_keys + # ) + # end + + # def benefit_sequence_keys + # (1..14).map { |i| i.to_s.to_sym } + # end + + # def permited_plans_keys + # benefit_sequence_keys.push(:plan_id) + # end + + # def plans_params + # plans_keys = params[:plans]&.keys || [] + + # plans_keys.each_with_object({}) do |key, hash| + # if key == 'benefit_descs' || key.match?(/^plan_\d$/) + # hash[key.to_sym] = permited_plan_param_list + # end + # end + # end + + # def permited_plan_param_list + # (1..14).map { |i| i.to_s.to_sym }.push(:plan_id) + # end +end diff --git a/app/controllers/id_card_employer_logos_controller.rb b/app/controllers/id_card_employer_logos_controller.rb new file mode 100644 index 0000000..c4cc5d3 --- /dev/null +++ b/app/controllers/id_card_employer_logos_controller.rb @@ -0,0 +1,57 @@ +class IdCardEmployerLogoController < ApplicationController + + def index + end + + def show + end + + def image + logo_file = IdCard::EmployerLogo.find_by(filename: params[:id]) + puts params[:id] + if logo_file + logo_binary = logo_file.image_data + logo_filename = logo_file.filename + + send_data logo_binary, + filename: logo_filename, + disposition: 'inline' + end + end + + def new + end + + def create + file = card_logo_file_params["logo_file"] + if file.present? && file.is_a?(ActionDispatch::Http::UploadedFile) + filename = file.original_filename + # binary_data = file.read + binary_data = File.binread(file) + meme_type = Marcel::MimeType.for(file) + + CardLogoFile.create( + filename: filename, + image_data: binary_data, + content_type: meme_type, + logo_type: card_logo_file_params["logo_type"] + ) + end + end + + def edit + end + + def update + end + + def destroy + end + + private + + def card_logo_file_params + params.require(:card_logo_file).permit(:logo_file, :logo_type) + end + +end \ No newline at end of file diff --git a/app/helpers/card_providers_helper.rb b/app/helpers/card_providers_helper.rb new file mode 100644 index 0000000..d50854e --- /dev/null +++ b/app/helpers/card_providers_helper.rb @@ -0,0 +1,2 @@ +module CardProvidersHelper +end diff --git a/app/helpers/card_rxes_helper.rb b/app/helpers/card_rxes_helper.rb new file mode 100644 index 0000000..6188961 --- /dev/null +++ b/app/helpers/card_rxes_helper.rb @@ -0,0 +1,2 @@ +module CardRxesHelper +end diff --git a/app/javascript/controllers/logo_upload_controller.js b/app/javascript/controllers/logo_upload_controller.js index ce0bd5a..052810b 100644 --- a/app/javascript/controllers/logo_upload_controller.js +++ b/app/javascript/controllers/logo_upload_controller.js @@ -1,13 +1,18 @@ import { Controller } from "@hotwired/stimulus"; export default class extends Controller { + static values = { + logoType: String, + employerName: String + } static targets = ["preview", "previewContainer", "logoSelect", "logofield", "initialLogoFile"]; async connect() { console.log('in connect'); - console.log(this.logofieldTarget.value) - if (this.logofieldTarget.value.includes("Logo.")) { - const response = await fetch(`/card_logo_files/${this.logofieldTarget.value}/image`); // Fetch the binary data + const initValue = this.logofieldTarget.value + console.log(initValue) + if (initValue) { + const response = await fetch(`/id_card/${this.logoTypeValue}_logos/${initValue}/image`); // Fetch the binary data const blob = await response.blob(); const objectUrl = URL.createObjectURL(blob); this.previewTarget.src = objectUrl; @@ -23,7 +28,7 @@ export default class extends Controller { const file = event.target.files[0]; if (!file) return; - const logoType = event.params.type + const logoType = this.logoTypeValue let newFileName = file.name if (logoType == "network") { @@ -32,14 +37,15 @@ export default class extends Controller { this.addOptionToSelect(newFileName) } else if (logoType == "employer") { newFileName = this.determineEmployerFilename(file) - this.logofieldTarget.value = newFileName; + file.name = newFileName } - + this.previewFile(file); - - // this.uploadLogoToServer(file); - - + this.uploadLogoToServer(file); + + + + this.logofieldTarget.value = newFileName; } previewFile(file) { @@ -55,13 +61,12 @@ export default class extends Controller { async uploadLogoToServer(file) { console.log('in uploadLogoToServer'); const formData = new FormData(); - formData.append("card_logo_file[logo_file]", file); - formData.append("card_logo_file[logo_type]", "employer"); + formData.append(`id_card_${this.logoTypeValue}_logo[logo_file]`, file); const csrfToken = document.querySelector("meta[name='csrf-token']").content; try { - const response = await fetch("/card_logo_files/", { + const response = await fetch(`/id_card/${this.logoTypeValue}_logos/`, { method: "POST", headers: { "X-CSRF-Token": csrfToken @@ -103,7 +108,7 @@ export default class extends Controller { determineEmployerFilename(file) { const fileExtension = file.name.split('.').pop(); - const employerName = prompt("Enter the name for the new Employer (minus any 'The's, 'LLC', or 'Health Plan'):"); + const employerName = this.employerNameValue const logoFilename = this.titleizeText(employerName).concat("Logo.").concat(fileExtension).replaceAll(' ', ''); return logoFilename diff --git a/app/models/card_exception.rb b/app/models/card_exception.rb deleted file mode 100644 index fd3bc76..0000000 --- a/app/models/card_exception.rb +++ /dev/null @@ -1,10 +0,0 @@ -class CardException < ApplicationRecord - belongs_to :employer - has_many :card_exception_items - accepts_nested_attributes_for :card_exception_items, allow_destroy: true, reject_if: :all_blank - - VALID_TYPES = ['zipcode', 'state', 'family_id'] - - validates :type, inclusion: { in: VALID_TYPES, - message: "%{value} is not a valid exception type" } -end diff --git a/app/models/card_provider.rb b/app/models/card_provider.rb deleted file mode 100644 index ff74ae6..0000000 --- a/app/models/card_provider.rb +++ /dev/null @@ -1,3 +0,0 @@ -class CardProvider < ApplicationRecord - has_many :employers -end diff --git a/app/models/card_rx.rb b/app/models/card_rx.rb deleted file mode 100644 index e9bb94d..0000000 --- a/app/models/card_rx.rb +++ /dev/null @@ -1,3 +0,0 @@ -class CardRx < ApplicationRecord - has_many :employers -end diff --git a/app/models/employer.rb b/app/models/employer.rb index 602d7bd..dd106a3 100644 --- a/app/models/employer.rb +++ b/app/models/employer.rb @@ -1,29 +1,6 @@ class Employer < ApplicationRecord has_many :members - has_many :plans, dependent: :destroy - accepts_nested_attributes_for :plans, allow_destroy: true, reject_if: :all_blank - - has_many :alternate_network_logos, dependent: :destroy - accepts_nested_attributes_for :alternate_network_logos, allow_destroy: true, reject_if: :all_blank - - has_many :employer_card_logos, dependent: :destroy - accepts_nested_attributes_for :employer_card_logos - has_many :card_logo_files, through: :employer_card_logos - has_one :employer_brand_logo, -> { where(logo_type: 'employer') }, - class_name: 'EmployerCardLogo', - dependent: :destroy - has_one :employer_logo, through: :employer_brand_logo, source: :card_logo_file - - has_many :network_images, -> { where(logo_type: 'network') }, - class_name: 'EmployerCardLogo', - dependent: :destroy - has_many :network_logos, through: :network_images, source: :card_logo_file - - belongs_to :card_provider, optional: true - belongs_to :card_rx, optional: true - - has_many :card_exceptions, dependent: :destroy - accepts_nested_attributes_for :card_exceptions, allow_destroy: true, reject_if: :all_blank + has_one :id_card_setup, class_name: 'IdCard::Setup' scope :active, -> { where(active: true) } scope :inactive, -> { where(active: false) } @@ -33,37 +10,37 @@ class Employer < ApplicationRecord # before_save :process_employer_logo # before_save :process_employer_logo, if: :employer_logo_filename_changed? before_save :create_slug, if: :new_record? - after_save :process_employer_logo, if: :saved_change_to_employer_logo_filename? + # after_save :process_employer_logo, if: :saved_change_to_employer_logo_filename? - def process_employer_logo - # if self.employer_logo.present? && !self.employer_logo.is_a?(String) - # self.card_logo_files.new( - # filename: self.employer_logo.filename, - # logo_type: 'employer', - # image: self.employer_logo.data, - # pl_plan_key: self.pl_plan_key || "" - # ) - # end - if self.employer_logo_filename.present? && self.employer_logo_filename.is_a?(String) - image_file = CardLogoFile.find_by(filename: self.employer_logo_filename) - if image_file.present? - if self.employer_brand_logo.present? - self.employer_brand_logo.update(card_logo_file: image_file) - else - self.create_employer_brand_logo(card_logo_file: image_file, logo_type: 'employer') - end - end + # def process_employer_logo + # # if self.employer_logo.present? && !self.employer_logo.is_a?(String) + # # self.card_logo_files.new( + # # filename: self.employer_logo.filename, + # # logo_type: 'employer', + # # image: self.employer_logo.data, + # # pl_plan_key: self.pl_plan_key || "" + # # ) + # # end + # if self.employer_logo_filename.present? && self.employer_logo_filename.is_a?(String) + # image_file = CardLogoFile.find_by(filename: self.employer_logo_filename) + # if image_file.present? + # if self.employer_brand_logo.present? + # self.employer_brand_logo.update(card_logo_file: image_file) + # else + # self.create_employer_brand_logo(card_logo_file: image_file, logo_type: 'employer') + # end + # end - end - end + # end + # end def create_slug self.slug = employer_trim_name(self.name).parameterize end - def name_to_logo_filename(extension) - self.employer_trim_name(self.name).titleize.gsub(/\s+/, '').concat('Logo').concat(extension.downcase) - end + # def name_to_logo_filename(extension) + # self.employer_trim_name(self.name).titleize.gsub(/\s+/, '').concat('Logo').concat(extension.downcase) + # end def employer_trim_name(name) regex_source = Regexp.union(["health", "plan", "the", "inc", "llc"]).source @@ -74,35 +51,10 @@ class Employer < ApplicationRecord def self.permitted_params(params) params.require(:employer).permit( :name, + :slug, :group_number, :pl_plan_key, - :effective_date, - :employer_logo_filename, - :network_provider, - :default_network_logo, - :single_card_template, - :card_provider_id, - :card_rx_id, - plans_attributes: [ - :id, - :title, - :pb_product_key, - :_destroy, - plan_benefits_attributes: [ - :id, - :benefit_desc, - :benefit, - :sequence, - :_destroy, - ] - ], - alternate_network_logos_attributes: [ - :id, - :network_logo, - :exception_type, - :exception_value, - :_destroy - ] + :effective_date ) end diff --git a/app/models/id_card.rb b/app/models/id_card.rb new file mode 100644 index 0000000..acea285 --- /dev/null +++ b/app/models/id_card.rb @@ -0,0 +1,5 @@ +module IdCard + def self.table_name_prefix + "id_card_" + end +end diff --git a/app/models/id_card/employer_logo.rb b/app/models/id_card/employer_logo.rb new file mode 100644 index 0000000..2a250c5 --- /dev/null +++ b/app/models/id_card/employer_logo.rb @@ -0,0 +1,14 @@ +class IdCard::EmployerLogo < ApplicationRecord + before_save :calculate_aspect_ratio, if: :image_data_changed? + + private + + def calculate_aspect_ratio + image_io = StringIO.new(self.image_data) + width, height = FastImage.size(image_io) + image_ratio = width.to_f / height + if image_ratio + self.aspect_ratio = image_ratio.round(2) + end + end +end diff --git a/app/models/id_card/exception.rb b/app/models/id_card/exception.rb new file mode 100644 index 0000000..907b751 --- /dev/null +++ b/app/models/id_card/exception.rb @@ -0,0 +1,10 @@ +class IdCard::Exception < ApplicationRecord + belongs_to :id_card_setup + has_many :id_card_exception_items + accepts_nested_attributes_for :id_card_exception_items, allow_destroy: true, reject_if: :all_blank + + VALID_TYPES = ['zipcode', 'state', 'family_id'] + + validates :type, inclusion: { in: VALID_TYPES, + message: "%{value} is not a valid exception type" } +end diff --git a/app/models/card_exception_item.rb b/app/models/id_card/exception_item.rb similarity index 77% rename from app/models/card_exception_item.rb rename to app/models/id_card/exception_item.rb index 273187e..3729e33 100644 --- a/app/models/card_exception_item.rb +++ b/app/models/id_card/exception_item.rb @@ -1,7 +1,7 @@ -class CardExceptionItem < ApplicationRecord - belongs_to :card_exception - belongs_to :card_logo_file, optional: true - belongs_to :card_provider, optional: true +class IdCard::ExceptionItem < ApplicationRecord + belongs_to :id_card_exception + belongs_to :id_card_network_logo, optional: true + belongs_to :id_card_provider_section, optional: true validate :only_one_exception_field_present diff --git a/app/models/id_card/network_logo.rb b/app/models/id_card/network_logo.rb new file mode 100644 index 0000000..1200e3a --- /dev/null +++ b/app/models/id_card/network_logo.rb @@ -0,0 +1,11 @@ +class IdCard::NetworkLogo < ApplicationRecord + before_save :round_aspect_ratio + + private + + def round_aspect_ratio + if self.aspect_ratio.present? + self.aspect_ratio = self.aspect_ratio.round(2) + end + end +end diff --git a/app/models/id_card/plan.rb b/app/models/id_card/plan.rb new file mode 100644 index 0000000..d899b34 --- /dev/null +++ b/app/models/id_card/plan.rb @@ -0,0 +1,33 @@ +class IdCard::Plan < ApplicationRecord + belongs_to :id_card_setup + has_many :id_card_plan_benefits, dependent: :destroy + accepts_nested_attributes_for :id_card_plan_benefits, allow_destroy: true, reject_if: :all_blank + + # after_initialize :create_default_benefits, if: :new_record? + + + def self.permitted_params(params) + params.require(:id_card_plan).permit( + :title, + :pb_product_key, + :pl_plan_key, + :_destroy, + id_card_plan_benefits_attributes: [ + :id, + :benefit_desc, + :benefit, + :sequence, + :_destroy, + ] + ) + end + + private + + def build_and_create_default_benefits + benefits = IdCardBenefitsTemplate.find_by(title: "BLANK").id_card_benefits.sort_by(&:sequence) + benefits.each do |ben| + id_card_plan_benefits.new(benefit_desc: ben.benefit_desc, sequence: ben.sequence) + end + end +end \ No newline at end of file diff --git a/app/models/id_card/plan_benefit.rb b/app/models/id_card/plan_benefit.rb new file mode 100644 index 0000000..26b140a --- /dev/null +++ b/app/models/id_card/plan_benefit.rb @@ -0,0 +1,3 @@ +class IdCard::PlanBenefit < ApplicationRecord + belongs_to :id_card_plan +end diff --git a/app/models/sample_id_card.rb b/app/models/id_card/print_data.rb similarity index 94% rename from app/models/sample_id_card.rb rename to app/models/id_card/print_data.rb index ffa4e87..8ef2659 100644 --- a/app/models/sample_id_card.rb +++ b/app/models/id_card/print_data.rb @@ -1,4 +1,4 @@ -class SampleIdCard < ApplicationRecord +class IdCard::PrintData < ApplicationRecord STRING_ATTRIBUTES = %w[provider_line_1 provider_line_2 provider_line_3 provider_line_4 provider_line_5 provider_line_6 provider_line_7 provider_line_8 provider_line_9 provider_line_10 provider_line_11 claim_to_1 claim_to_2 claim_to_3 claim_to_4 claim_to_5 claim_to_6 claim_to_7 claim_to_8 claim_to_9 claim_to_10 claim_to_11 dependent_1 dependent_2 dependent_3 dependent_4 dependent_5 dependent_6 dependent_7 dependent_8] diff --git a/app/models/id_card/provider_section.rb b/app/models/id_card/provider_section.rb new file mode 100644 index 0000000..fef5856 --- /dev/null +++ b/app/models/id_card/provider_section.rb @@ -0,0 +1,3 @@ +class IdCard::ProviderSection < ApplicationRecord + +end diff --git a/app/models/id_card/rx_section.rb b/app/models/id_card/rx_section.rb new file mode 100644 index 0000000..12c751c --- /dev/null +++ b/app/models/id_card/rx_section.rb @@ -0,0 +1,3 @@ +class IdCard::RxSection < ApplicationRecord + +end diff --git a/app/models/id_card/setup.rb b/app/models/id_card/setup.rb new file mode 100644 index 0000000..14f33af --- /dev/null +++ b/app/models/id_card/setup.rb @@ -0,0 +1,27 @@ +class IdCard::Setup < ApplicationRecord + belongs_to :employer + belongs_to :id_card_employer_logo + belongs_to :id_card_network_logo + belongs_to :id_card_provider_section + belongs_to :id_card_rx_section + + has_many :card_exceptions, dependent: :destroy + + # def employer_logo_filename + # self.id_card_employer_logo.filename + # end + + # def network_logo_filename + # self.id_card_network_logo.filename + # end + + def self.permitted_params(params) + params.require(:id_card_setup).permit( + :print_name, + :network_provider, + :card_template, + :rx_group_number, + :id_card_employer_logo_id + ) + end +end diff --git a/app/models/alternate_network_logo.rb b/app/models/old/alternate_network_logo.rb similarity index 100% rename from app/models/alternate_network_logo.rb rename to app/models/old/alternate_network_logo.rb diff --git a/app/models/card_logo_file.rb b/app/models/old/card_logo_file.rb similarity index 100% rename from app/models/card_logo_file.rb rename to app/models/old/card_logo_file.rb diff --git a/app/models/employer_card_logo.rb b/app/models/old/employer_card_logo.rb similarity index 100% rename from app/models/employer_card_logo.rb rename to app/models/old/employer_card_logo.rb diff --git a/app/models/employer_setup_process.rb b/app/models/old/employer_setup_process.rb similarity index 100% rename from app/models/employer_setup_process.rb rename to app/models/old/employer_setup_process.rb diff --git a/app/models/id_card_benefit.rb b/app/models/old/id_card_benefit.rb similarity index 100% rename from app/models/id_card_benefit.rb rename to app/models/old/id_card_benefit.rb diff --git a/app/models/id_card_benefits_template.rb b/app/models/old/id_card_benefits_template.rb similarity index 100% rename from app/models/id_card_benefits_template.rb rename to app/models/old/id_card_benefits_template.rb diff --git a/app/models/plan.rb b/app/models/plan.rb deleted file mode 100644 index d2937d7..0000000 --- a/app/models/plan.rb +++ /dev/null @@ -1,18 +0,0 @@ -class Plan < ApplicationRecord - belongs_to :employer - has_many :plan_benefits, dependent: :destroy - accepts_nested_attributes_for :plan_benefits, allow_destroy: true, reject_if: :all_blank - - # after_initialize :create_default_benefits, if: :new_record? - - - - private - - def build_and_create_default_benefits - benefits = IdCardBenefitsTemplate.find_by(title: "BLANK").id_card_benefits.sort_by(&:sequence) - benefits.each do |ben| - plan_benefits.new(benefit_desc: ben.benefit_desc, sequence: ben.sequence) - end - end -end \ No newline at end of file diff --git a/app/models/plan_benefit.rb b/app/models/plan_benefit.rb deleted file mode 100644 index 8812fc2..0000000 --- a/app/models/plan_benefit.rb +++ /dev/null @@ -1,3 +0,0 @@ -class PlanBenefit < ApplicationRecord - belongs_to :plan -end diff --git a/app/views/employers/edit.html.erb b/app/views/employers/edit.html.erb index 29d520b..bdef2b9 100644 --- a/app/views/employers/edit.html.erb +++ b/app/views/employers/edit.html.erb @@ -2,10 +2,6 @@

Edit Employer

<%= form_with model: @employer, local: true, multipart: true do |f| %>
-
-

General Information

-
-
@@ -16,110 +12,21 @@ <%= f.text_field :slug, label: { text: "Slug" }, class: "w-full" %>
- <%= f.text_field :group_number, label: { text: "Group/Medical Number" }, class: "w-full" %> + <%= f.text_field :pl_plan_key, label: { text: "Pl Plan Key" }, class: "w-full" %>
- <%= f.text_field :pl_plan_key, label: { text: "Pl Plan Key" }, class: "w-full" %> + <%= f.text_field :group_number, label: { text: "Group/Medical Number" }, class: "w-full" %>
<%= f.text_field :effective_date, label: { text: "Effective Date" }, class: "w-full" %>
-
- <%= f.select :network_provider, options_for_select(["Cigna", "Medcost"]), label: { text: "Provider Network" }, class: "w-full" %> -
-
-
-
- <%= f.text_field :employer_logo_filename, data: { logo_upload_target: "logofield" }, class: "w-full rounded-r-none", readonly: true %> -
-
- -
- - <%= f.file_field :add_or_update_logo, class: "hidden", id: "file_upload_input_employer", data: { logo_upload_target: "previewContainer", logo_upload_type_param: "employer", action: "change->logo-upload#uploadLogo" }, direct_upload: true %>
- -
-

Plans Information

-
-
-
-
- <% @employer.plans.each_with_index do |plan, index| %> - <%= f.fields_for :plans, plan, child_index: index do |plan_fields| %> -
-
">
-
-ml-[6px] z-2 w-full"> - <%= "Plan #{index + 1}" %> -
- <%= render 'plan_fields', plan_fields: plan_fields, f: f, index: index %> -
"> - Benefit Values -
-
ml-[3px]">
- <%= plan_fields.fields_for :plan_benefits do |plan_benefits_fields| %> - <%= render 'plan_benefits_fields', plan_benefits_fields: plan_benefits_fields %> - <% end %> -
- <%= plan_fields.hidden_field :_destroy %> - <%= button_tag "Remove Plan #{index + 1}", class: "cursor-pointer bg-deepcove hover:bg-brightlava text-xl font-bold text-#{index % 2 == 1 ? 'bronze' : 'copper'} hover:text-platinum py-2 px-4 font-semibold leading-tight rounded-lg border-3 border-NEXT_SECONDARY_COLOR w-full", data: { action: "add-plan#remove" } %> -
-
- - <% end %> - <% end %> - <%= button_tag "Add a Plan", class: "cursor-pointer text-2xl font-bold py-2 pr-6 mt-10 w-[calc(24%-1rem)] w-1/4 min-h-[940px] text-[#E0E0E0] rounded-lg font-medium border border-[#E0E0E0] bg-[#173057] hover:bg-transparent hover:shadow-[0_0_10px_3px_#93c5fd] transition-colors duration-150", data: { action: "add-plan#add", add_plan_target: "button" } %> - -
-
- -
-

Alternative Network Information

-
-
-
-
- <%= button_tag "Add a Regional Logo", class: "cursor-pointer text-lg font-medium py-2 px-4 rounded w-1/7 h-75 my-8 text-[#E0E0E0] rounded-lg border border-[#C2C2C2] hover:shadow-[0_0_10px_3px_#93c5fd]", data: { action: "add-alt-network-logo#add", add_alt_network_logo_target: "button" } %> -
- -
- <%= f.submit "Submit" %> + <%= f.submit "Save Employer" %> <%= link_to "Back", employer_path(@employer.slug), class: "flex justify-center items-center cursor-pointer bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-sm h-10 transition duration-100" %>
diff --git a/app/views/employers/new.html.erb b/app/views/employers/new.html.erb index 3412b07..6c75634 100644 --- a/app/views/employers/new.html.erb +++ b/app/views/employers/new.html.erb @@ -13,10 +13,6 @@ <%= form_with model: @employer, local: true, multipart: true do |f| %>
-
-

General Information

-
-
@@ -31,105 +27,11 @@
<%= f.text_field :effective_date, label: { text: "Effective Date" }, class: "w-full" %>
-
- <%= f.select :network_provider, options_for_select(["Cigna", "Medcost"]), label: { text: "Provider Network" }, data: { logo_upload_target: "network" }, class: "w-full" %> - <%= f.hidden_field :single_card_template, value: @employer.single_card_template %> - <%= f.hidden_field :default_network_logo, value: @employer.default_network_logo %> - <%= f.hidden_field :card_provider_id, value: @employer.card_provider_id %> - <%= f.hidden_field :card_rx_id, value: @employer.card_rx_id %> -
-
-
-
-
- <%= f.text_field :employer_logo_filename, label: { text: "Employer Logo" }, default: "No logo added", data: { logo_upload_target: "logofield" }, class: "w-full rounded-r-none", readonly: true %> -
-
- -
-
- - <%= f.file_field :add_or_update_logo, class: "hidden", id: "file_upload_input_employer", data: { logo_upload_target: "previewContainer", logo_upload_type_param: "employer", action: "change->logo-upload#uploadLogo" }, direct_upload: true %>
-
-

Plans Information

-
-
-
-
- <% @employer.plans.each_with_index do |plan, index| %> - <%= f.fields_for :plans, plan, child_index: index do |plan_fields| %> -
-
">
-
-ml-[6px] z-2 w-full"> - <%= "Plan #{index + 1}" %> -
- <%= render 'plan_fields', plan_fields: plan_fields, f: f, index: index %> -
"> - Benefit Values -
-
ml-[3px]">
- <%= plan_fields.fields_for :plan_benefits do |plan_benefits_fields| %> - <%= render 'plan_benefits_fields', plan_benefits_fields: plan_benefits_fields %> - <% end %> -
- <%= plan_fields.hidden_field :_destroy %> - <%= button_tag "Remove Plan #{index + 1}", class: "cursor-pointer bg-deepcove hover:bg-brightlava text-xl font-bold text-copper hover:text-platinum py-2 px-4 font-semibold leading-tight rounded-lg border-3 border-copper w-full", data: { action: "add-plan#remove" } %> -
-
- <% end %> - <% end %> - <%= button_tag "Add a Plan", class: "cursor-pointer text-2xl font-bold py-2 pr-6 mt-10 w-[calc(24%-1rem)] w-1/4 min-h-[940px] text-[#E0E0E0] rounded-lg font-medium border border-[#E0E0E0] bg-[#173057] hover:bg-transparent hover:shadow-[0_0_10px_3px_#93c5fd] transition-colors duration-150", data: { action: "add-plan#add", add_plan_target: "button" } %> -
- -
-
- -
-

Alternative Network Information

-
-
-
-
- <%= button_tag "Add a Regional Logo", class: "cursor-pointer text-lg font-medium py-2 px-4 rounded w-1/7 h-55 my-8 text-[#E0E0E0] rounded-lg border border-[#C2C2C2] hover:shadow-[0_0_10px_3px_#93c5fd]", data: { action: "add-alt-network-logo#add", add_alt_network_logo_target: "button" } %> -
- -
- <%= f.submit "Submit" %> + <%= f.submit "Create New Employer" %>
<% end %> diff --git a/app/views/employers/show.html.erb b/app/views/employers/show.html.erb index 2893391..c8ea842 100644 --- a/app/views/employers/show.html.erb +++ b/app/views/employers/show.html.erb @@ -2,7 +2,9 @@

<%= @employer.name %>

- <%= image_tag image_card_logo_file_path(@employer.employer_logo_filename), class: "max-h-[50px] object-contain shadow-[0_0_10px_3px_#93c5fd]" %> + <% if @employer&.id_card_setup&.id_card_employer_logo&.filename %> + <%= image_tag image_id_card_employer_logo_path(@employer.id_card_setup.id_card_employer_logo.filename), class: "max-h-[50px] object-contain shadow-[0_0_10px_3px_#93c5fd]" %> + <% end %>
@@ -29,17 +31,19 @@ <%= attribute_value.present? ? attribute_value.to_s : "waiting" %>

<% end %> -
- └── Plans -
- <% @employer.plans.pluck(:title, :pb_product_key).each do |plan| %> -
- ├── <%= plan.first %> + <% if @employer&.id_card_setup&.id_card_plans %> +
+ └── Plans
-

"> - └── PB Product Key: - <%= plan.last.present? ? plan.last.to_s : "waiting" %> -

+ <% @employer.id_card_setup.id_card_plans.pluck(:title, :pb_product_key).each do |plan| %> +
+ ├── <%= plan.first %> +
+

"> + └── PB Product Key: + <%= plan.last.present? ? plan.last.to_s : "waiting" %> +

+ <% end %> <% end %>
@@ -53,10 +57,10 @@

Actions

- <%= link_to 'Generate Sample Cards', generate_sample_sample_id_cards_path(employer_slug: @employer.slug ), data: { turbo: false }, class: "flex justify-center items-center w-2/3 cursor-pointer bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> - <%= link_to 'Generate Group Cards (for print)', generate_print_sample_id_cards_path(employer_slug: @employer.slug ),data: { turbo: false }, class: "flex justify-center items-center w-2/3 #{@employer.active ? "" : "pointer-events-none opacity-50 cursor-not-allowed"} bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> - <%= link_to 'Generate Group Cards (for display)', generate_mobile_display_sample_id_cards_path(employer_slug: @employer.slug ), data: { turbo: false }, class: "flex justify-center items-center w-2/3 #{@employer.active ? "" : "pointer-events-none opacity-50 cursor-not-allowed"} bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> - <%= link_to 'Generate Group Cards (for download)', generate_full_page_sample_id_cards_path(employer_slug: @employer.slug ), data: { turbo: false }, class: "flex justify-center items-center w-2/3 #{@employer.active ? "" : "pointer-events-none opacity-50 cursor-not-allowed"} bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> + <%= link_to 'Generate Sample Cards', generate_sample_id_card_print_data_path(employer_slug: @employer.slug ), data: { turbo: false }, class: "flex justify-center items-center w-2/3 cursor-pointer bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> + <%= link_to 'Generate Group Cards (for print)', generate_print_id_card_print_data_path(employer_slug: @employer.slug ),data: { turbo: false }, class: "flex justify-center items-center w-2/3 #{@employer.active ? "" : "pointer-events-none opacity-50 cursor-not-allowed"} bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> + <%= link_to 'Generate Group Cards (for display)', generate_mobile_display_id_card_print_data_path(employer_slug: @employer.slug ), data: { turbo: false }, class: "flex justify-center items-center w-2/3 #{@employer.active ? "" : "pointer-events-none opacity-50 cursor-not-allowed"} bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> + <%= link_to 'Generate Group Cards (for download)', generate_full_page_id_card_print_data_path(employer_slug: @employer.slug ), data: { turbo: false }, class: "flex justify-center items-center w-2/3 #{@employer.active ? "" : "pointer-events-none opacity-50 cursor-not-allowed"} bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %>
\ No newline at end of file diff --git a/app/views/employers/_alt_network_logo_fields.html.erb b/app/views/employers_old/_alt_network_logo_fields.html.erb similarity index 100% rename from app/views/employers/_alt_network_logo_fields.html.erb rename to app/views/employers_old/_alt_network_logo_fields.html.erb diff --git a/app/views/employers/_alt_network_logo_fields_new.html.erb b/app/views/employers_old/_alt_network_logo_fields_new.html.erb similarity index 100% rename from app/views/employers/_alt_network_logo_fields_new.html.erb rename to app/views/employers_old/_alt_network_logo_fields_new.html.erb diff --git a/app/views/employers/_first_plan_fields.html.erb b/app/views/employers_old/_first_plan_fields.html.erb similarity index 100% rename from app/views/employers/_first_plan_fields.html.erb rename to app/views/employers_old/_first_plan_fields.html.erb diff --git a/app/views/employers/_plan_benefit_only_fields.erb b/app/views/employers_old/_plan_benefit_only_fields.erb similarity index 100% rename from app/views/employers/_plan_benefit_only_fields.erb rename to app/views/employers_old/_plan_benefit_only_fields.erb diff --git a/app/views/employers/_plan_benefits_desc_fields.html.erb b/app/views/employers_old/_plan_benefits_desc_fields.html.erb similarity index 100% rename from app/views/employers/_plan_benefits_desc_fields.html.erb rename to app/views/employers_old/_plan_benefits_desc_fields.html.erb diff --git a/app/views/employers/_plan_benefits_fields.html.erb b/app/views/employers_old/_plan_benefits_fields.html.erb similarity index 100% rename from app/views/employers/_plan_benefits_fields.html.erb rename to app/views/employers_old/_plan_benefits_fields.html.erb diff --git a/app/views/employers/_plan_fields.html.erb b/app/views/employers_old/_plan_fields.html.erb similarity index 100% rename from app/views/employers/_plan_fields.html.erb rename to app/views/employers_old/_plan_fields.html.erb diff --git a/app/views/employers_old/edit.html.erb b/app/views/employers_old/edit.html.erb new file mode 100644 index 0000000..29d520b --- /dev/null +++ b/app/views/employers_old/edit.html.erb @@ -0,0 +1,127 @@ +
+

Edit Employer

+ <%= form_with model: @employer, local: true, multipart: true do |f| %> +
+
+

General Information

+
+
+
+
+
+
+ <%= f.text_field :name, label: { text: "Employer Name" }, class: "w-full" %> +
+
+ <%= f.text_field :slug, label: { text: "Slug" }, class: "w-full" %> +
+
+ <%= f.text_field :group_number, label: { text: "Group/Medical Number" }, class: "w-full" %> +
+
+
+
+ <%= f.text_field :pl_plan_key, label: { text: "Pl Plan Key" }, class: "w-full" %> +
+
+ <%= f.text_field :effective_date, label: { text: "Effective Date" }, class: "w-full" %> +
+
+ <%= f.select :network_provider, options_for_select(["Cigna", "Medcost"]), label: { text: "Provider Network" }, class: "w-full" %> +
+
+
+
+ <%= f.text_field :employer_logo_filename, data: { logo_upload_target: "logofield" }, class: "w-full rounded-r-none", readonly: true %> +
+
+ +
+ + <%= f.file_field :add_or_update_logo, class: "hidden", id: "file_upload_input_employer", data: { logo_upload_target: "previewContainer", logo_upload_type_param: "employer", action: "change->logo-upload#uploadLogo" }, direct_upload: true %> +
+
+
+ +
+

Plans Information

+
+
+
+
+ <% @employer.plans.each_with_index do |plan, index| %> + <%= f.fields_for :plans, plan, child_index: index do |plan_fields| %> +
+
">
+
-ml-[6px] z-2 w-full"> + <%= "Plan #{index + 1}" %> +
+ <%= render 'plan_fields', plan_fields: plan_fields, f: f, index: index %> +
"> + Benefit Values +
+
ml-[3px]">
+ <%= plan_fields.fields_for :plan_benefits do |plan_benefits_fields| %> + <%= render 'plan_benefits_fields', plan_benefits_fields: plan_benefits_fields %> + <% end %> +
+ <%= plan_fields.hidden_field :_destroy %> + <%= button_tag "Remove Plan #{index + 1}", class: "cursor-pointer bg-deepcove hover:bg-brightlava text-xl font-bold text-#{index % 2 == 1 ? 'bronze' : 'copper'} hover:text-platinum py-2 px-4 font-semibold leading-tight rounded-lg border-3 border-NEXT_SECONDARY_COLOR w-full", data: { action: "add-plan#remove" } %> +
+
+ + <% end %> + <% end %> + <%= button_tag "Add a Plan", class: "cursor-pointer text-2xl font-bold py-2 pr-6 mt-10 w-[calc(24%-1rem)] w-1/4 min-h-[940px] text-[#E0E0E0] rounded-lg font-medium border border-[#E0E0E0] bg-[#173057] hover:bg-transparent hover:shadow-[0_0_10px_3px_#93c5fd] transition-colors duration-150", data: { action: "add-plan#add", add_plan_target: "button" } %> + +
+
+ +
+

Alternative Network Information

+
+
+
+
+ <%= button_tag "Add a Regional Logo", class: "cursor-pointer text-lg font-medium py-2 px-4 rounded w-1/7 h-75 my-8 text-[#E0E0E0] rounded-lg border border-[#C2C2C2] hover:shadow-[0_0_10px_3px_#93c5fd]", data: { action: "add-alt-network-logo#add", add_alt_network_logo_target: "button" } %> +
+ +
+
+ <%= f.submit "Submit" %> + <%= link_to "Back", employer_path(@employer.slug), class: "flex justify-center items-center cursor-pointer bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-sm h-10 transition duration-100" %> +
+
+ <% end %> +
diff --git a/app/views/employers/general_information.html.erb b/app/views/employers_old/general_information.html.erb similarity index 100% rename from app/views/employers/general_information.html.erb rename to app/views/employers_old/general_information.html.erb diff --git a/app/views/employers_old/index.html.erb b/app/views/employers_old/index.html.erb new file mode 100644 index 0000000..e1e1f55 --- /dev/null +++ b/app/views/employers_old/index.html.erb @@ -0,0 +1,33 @@ +
+
+

Employers

+ <%= link_to new_employer_path, class: "flex justify-center items-center h-8 w-8 ml-2 mb-6 text-sm text-bronze bg-deepcove hover:bg-cobalt font-semibold p-1 rounded-lg border-2 border-cobalt" do %> + <%= icon "clipboard-plus", library: "lucide" %> + <% end %> + +
+ <% plan_colors = EmployerSetupPlansForm::PLAN_COLORS.push('copper', 'bronze').shuffle %> + <% @color_index = 0 %> +

In Process:

+ <% @employers.inactive.each_with_index do |emp, index| %> + <% item_color_index = @color_index == 0 ? 0 : @color_index % plan_colors.length %> +
"> + <%= link_to emp.name, employer_path(emp.slug), class: "hover:text-#{plan_colors[item_color_index]}" %> +
+ <%= "(Effective #{emp.effective_date})" %> +
+
+ <% @color_index += 1 %> + <% end %> +

Live:

+ <% @employers.active.each_with_index do |emp, index| %> + <% item_color_index = @color_index == 0 ? 0 : @color_index % plan_colors.length %> +
"> + <%= link_to emp.name, employer_path(emp.slug), class: "hover:text-#{plan_colors[item_color_index]}" %> +
+ <%= "(#{emp.members.count} Members)" %> +
+
+ <% @color_index += 1 %> + <% end %> +
\ No newline at end of file diff --git a/app/views/employers/network_exceptions.html.erb b/app/views/employers_old/network_exceptions.html.erb similarity index 100% rename from app/views/employers/network_exceptions.html.erb rename to app/views/employers_old/network_exceptions.html.erb diff --git a/app/views/employers_old/new.html.erb b/app/views/employers_old/new.html.erb new file mode 100644 index 0000000..3412b07 --- /dev/null +++ b/app/views/employers_old/new.html.erb @@ -0,0 +1,136 @@ +
+
+

New Employer

+ <%= form_with model: @employer, url: import_employers_path, data: { turbo: false }, local: true, multipart: true do |form| %> +
+
+ <%= form.label :import_from_word, 'ID Card Setup Word Doc', class: "block text-platinum font-bold mb-1 md:mb-0 pr-4" %> + <%= form.file_field :import_from_word %> +
+ <%= form.submit "Import", class: "h-[40px]" %> +
+ <% end %> +
+ <%= form_with model: @employer, local: true, multipart: true do |f| %> +
+
+

General Information

+
+
+
+
+
+
+ <%= f.text_field :name, label: { text: "Employer Name" }, data: { logo_upload_target: "employer" }, class: "w-full" %> +
+
+ <%= f.text_field :group_number, label: { text: "Group/Medical Number" }, class: "w-full" %> +
+
+
+
+ <%= f.text_field :effective_date, label: { text: "Effective Date" }, class: "w-full" %> +
+
+ <%= f.select :network_provider, options_for_select(["Cigna", "Medcost"]), label: { text: "Provider Network" }, data: { logo_upload_target: "network" }, class: "w-full" %> + <%= f.hidden_field :single_card_template, value: @employer.single_card_template %> + <%= f.hidden_field :default_network_logo, value: @employer.default_network_logo %> + <%= f.hidden_field :card_provider_id, value: @employer.card_provider_id %> + <%= f.hidden_field :card_rx_id, value: @employer.card_rx_id %> +
+
+
+
+
+ <%= f.text_field :employer_logo_filename, label: { text: "Employer Logo" }, default: "No logo added", data: { logo_upload_target: "logofield" }, class: "w-full rounded-r-none", readonly: true %> +
+
+ +
+
+ + <%= f.file_field :add_or_update_logo, class: "hidden", id: "file_upload_input_employer", data: { logo_upload_target: "previewContainer", logo_upload_type_param: "employer", action: "change->logo-upload#uploadLogo" }, direct_upload: true %> +
+
+
+
+

Plans Information

+
+
+
+
+ <% @employer.plans.each_with_index do |plan, index| %> + <%= f.fields_for :plans, plan, child_index: index do |plan_fields| %> +
+
">
+
-ml-[6px] z-2 w-full"> + <%= "Plan #{index + 1}" %> +
+ <%= render 'plan_fields', plan_fields: plan_fields, f: f, index: index %> +
"> + Benefit Values +
+
ml-[3px]">
+ <%= plan_fields.fields_for :plan_benefits do |plan_benefits_fields| %> + <%= render 'plan_benefits_fields', plan_benefits_fields: plan_benefits_fields %> + <% end %> +
+ <%= plan_fields.hidden_field :_destroy %> + <%= button_tag "Remove Plan #{index + 1}", class: "cursor-pointer bg-deepcove hover:bg-brightlava text-xl font-bold text-copper hover:text-platinum py-2 px-4 font-semibold leading-tight rounded-lg border-3 border-copper w-full", data: { action: "add-plan#remove" } %> +
+
+ <% end %> + <% end %> + <%= button_tag "Add a Plan", class: "cursor-pointer text-2xl font-bold py-2 pr-6 mt-10 w-[calc(24%-1rem)] w-1/4 min-h-[940px] text-[#E0E0E0] rounded-lg font-medium border border-[#E0E0E0] bg-[#173057] hover:bg-transparent hover:shadow-[0_0_10px_3px_#93c5fd] transition-colors duration-150", data: { action: "add-plan#add", add_plan_target: "button" } %> +
+ +
+
+ +
+

Alternative Network Information

+
+
+
+
+ <%= button_tag "Add a Regional Logo", class: "cursor-pointer text-lg font-medium py-2 px-4 rounded w-1/7 h-55 my-8 text-[#E0E0E0] rounded-lg border border-[#C2C2C2] hover:shadow-[0_0_10px_3px_#93c5fd]", data: { action: "add-alt-network-logo#add", add_alt_network_logo_target: "button" } %> +
+ +
+
+ <%= f.submit "Submit" %> +
+
+ <% end %> + diff --git a/app/views/employers/new_new.html.erb b/app/views/employers_old/new_new.html.erb similarity index 100% rename from app/views/employers/new_new.html.erb rename to app/views/employers_old/new_new.html.erb diff --git a/app/views/employers/plans.html.erb b/app/views/employers_old/plans.html.erb similarity index 100% rename from app/views/employers/plans.html.erb rename to app/views/employers_old/plans.html.erb diff --git a/app/views/employers_old/show.html.erb b/app/views/employers_old/show.html.erb new file mode 100644 index 0000000..2893391 --- /dev/null +++ b/app/views/employers_old/show.html.erb @@ -0,0 +1,62 @@ +
+
+

<%= @employer.name %>

+
+ <%= image_tag image_card_logo_file_path(@employer.employer_logo_filename), class: "max-h-[50px] object-contain shadow-[0_0_10px_3px_#93c5fd]" %> +
+
+
+
+
+

Employer Information

+
+
+
+

"> + └── Status: + <%= @employer.active == false ? "inactive" : "active" %> +

+

+ ├── Effective Date: + <%= @employer.effective_date %> +

+
+ └── Key Chain +
+ <% @employer.attributes.with_indifferent_access.slice(:pl_plan_key, :company_pb_entity_key, :group_number).each do |attribute_name, attribute_value| %> +

"> + ├── <%= attribute_name.titleize %>: + <%= attribute_value.present? ? attribute_value.to_s : "waiting" %> +

+ <% end %> +
+ └── Plans +
+ <% @employer.plans.pluck(:title, :pb_product_key).each do |plan| %> +
+ ├── <%= plan.first %> +
+

"> + └── PB Product Key: + <%= plan.last.present? ? plan.last.to_s : "waiting" %> +

+ <% end %> +
+
+ <%= link_to 'Edit', edit_employer_path(@employer.slug), class: "hover:text-atmosphere" %> +

|

+ <%= link_to 'Back', employers_path, class: "hover:text-atmosphere" %> +
+
+
+
+

Actions

+
+
+ <%= link_to 'Generate Sample Cards', generate_sample_sample_id_cards_path(employer_slug: @employer.slug ), data: { turbo: false }, class: "flex justify-center items-center w-2/3 cursor-pointer bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> + <%= link_to 'Generate Group Cards (for print)', generate_print_sample_id_cards_path(employer_slug: @employer.slug ),data: { turbo: false }, class: "flex justify-center items-center w-2/3 #{@employer.active ? "" : "pointer-events-none opacity-50 cursor-not-allowed"} bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> + <%= link_to 'Generate Group Cards (for display)', generate_mobile_display_sample_id_cards_path(employer_slug: @employer.slug ), data: { turbo: false }, class: "flex justify-center items-center w-2/3 #{@employer.active ? "" : "pointer-events-none opacity-50 cursor-not-allowed"} bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> + <%= link_to 'Generate Group Cards (for download)', generate_full_page_sample_id_cards_path(employer_slug: @employer.slug ), data: { turbo: false }, class: "flex justify-center items-center w-2/3 #{@employer.active ? "" : "pointer-events-none opacity-50 cursor-not-allowed"} bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-lg h-10 transition duration-100" %> +
+
+
\ No newline at end of file diff --git a/app/views/employers/summary.html.erb b/app/views/employers_old/summary.html.erb similarity index 100% rename from app/views/employers/summary.html.erb rename to app/views/employers_old/summary.html.erb diff --git a/app/views/id_cards/setup/edit.html.erb b/app/views/id_cards/setup/edit.html.erb new file mode 100644 index 0000000..16ad5a3 --- /dev/null +++ b/app/views/id_cards/setup/edit.html.erb @@ -0,0 +1,34 @@ +
+

Edit Employer

+ <%= form_with model: @employer, local: true, multipart: true do |f| %> +
+
+
+
+
+ <%= f.text_field :name, label: { text: "Employer Name" }, class: "w-full" %> +
+
+ <%= f.text_field :slug, label: { text: "Slug" }, class: "w-full" %> +
+
+ <%= f.text_field :group_number, label: { text: "Group/Medical Number" }, class: "w-full" %> +
+
+
+
+ <%= f.text_field :pl_plan_key, label: { text: "Pl Plan Key" }, class: "w-full" %> +
+
+ <%= f.text_field :effective_date, label: { text: "Effective Date" }, class: "w-full" %> +
+
+
+
+
+ <%= f.submit "Save Employer" %> + <%= link_to "Back", employer_path(@employer.slug), class: "flex justify-center items-center cursor-pointer bg-atmosphere hover:bg-deepcove border-2 border-atmosphere text-platinum font-bold px-3 rounded-sm h-10 transition duration-100" %> +
+
+ <% end %> +
diff --git a/app/views/id_cards/setup/new.html.erb b/app/views/id_cards/setup/new.html.erb new file mode 100644 index 0000000..521f989 --- /dev/null +++ b/app/views/id_cards/setup/new.html.erb @@ -0,0 +1,48 @@ +
+
+

New ID Card Setup:

+

(<%= @employer.name %>)

+
+ <%= form_with model: @setup, local: true, multipart: true do |f| %> +
+
> +
+
+
+ <%= f.text_field :print_name, label: { text: "Print Name" }, class: "w-full" %> +
+
+ <%= f.text_field :rx_group_number, label: { text: "Rx Group Number" }, class: "w-full" %> +
+
+
+
+ <%= f.select :network_provider, options_for_select(["Cigna", "Medcost", "Other"]), { label: { text: "Provider Network" }, include_blank: "Select", class: "w-full" } %> +
+
+ <%= f.select :card_template, options_for_select([["FairosRx", "FairosRxIDCard"], ["Tandemloc", "TandemlocIDCard"], ["smART", "SmartIDCard"], ["QRCode (Healthbus)", "QRCodeIDCard"]]), { label: { text: "Card Template" }, include_blank: "Select", class: "w-full" } %> +
+
+
+
+
Employer Logo
+
+ +
+
+ + <%= f.hidden_field :id_card_employer_logo_id, data: { logo_upload_target: "logofield", logo_upload_target: "employer" } %> + <%= f.file_field :add_or_update_logo, class: "hidden", id: "employer_logo_file", data: { logo_upload_target: "previewContainer", parent_value: "network_logo", action: "change->logo-upload#uploadLogo" }, direct_upload: true %> +
+
+
+
+ <%= f.submit "Create New Employer" %> +
+
+ <% end %> +
diff --git a/compose.yaml b/compose.yaml index 3862076..5d5e73e 100644 --- a/compose.yaml +++ b/compose.yaml @@ -17,25 +17,25 @@ services: - TAILWIND_POLLING=true tty: true stdin_open: true - # depends_on: - # db: - # condition: service_healthy + depends_on: + db: + condition: service_healthy # redis: # condition: service_started - # db: - # build: - # context: . - # dockerfile: Dockerfile.db - # volumes: - # - ./mssql-data:/var/opt/mssql - # ports: - # - "1434:1434" - # healthcheck: - # test: ["CMD", "/opt/mssql-tools/bin/sqlcmd", "-Usa", "-PBr1tt0nPassw0rd", "-Q", "select 1"] - # interval: 10s - # timeout: 3s - # retries: 10 - # start_period: 10s + db: + build: + context: . + dockerfile: Dockerfile.db + volumes: + - ./mssql-data:/var/opt/mssql + ports: + - "1434:1434" + healthcheck: + test: ["CMD", "/opt/mssql-tools/bin/sqlcmd", "-Usa", "-PBr1tt0nPassw0rd", "-Q", "select 1"] + interval: 10s + timeout: 3s + retries: 10 + start_period: 10s # redis: # image: redis # volumes: diff --git a/config/database.yml b/config/database.yml index 724021d..b2faefa 100644 --- a/config/database.yml +++ b/config/database.yml @@ -22,16 +22,16 @@ default: &default development: baclight: <<: *default - # host: db - # database: dev_tools_dev - # username: sa - # password: Br1tt0nPassw0rd - host: 10.41.82.73 #Dev - port: 1433 - database: BrittonConnect - username: BSTI - password: BSTIBOY - tds_version: 7.3 + host: db + database: baclight_dev + username: sa + password: Br1tt0nPassw0rd + # host: 10.41.82.73 #Dev + # port: 1433 + # database: BrittonConnect + # username: BSTI + # password: BSTIBOY + # tds_version: 7.3 vhcs: <<: *default host: 10.41.82.72 #Prod diff --git a/config/routes.rb b/config/routes.rb index 53cfe3e..cb03dbe 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,10 +1,24 @@ # frozen_string_literal: true Rails.application.routes.draw do - resources :card_rxes - resources :card_providers - resources :card_logo_files do - get 'image', on: :member, constraints: { id: /.*/ } + namespace :id_card do + resources :setup, constraints: { id: /.*/ } + resources :rx_sections + resources :provider_sections + resources :employer_logos do + get 'image', on: :member + end + resources :network_logos do + get 'image', on: :member, constraints: { id: /.*/ } + end + resources :print_data do + collection do + get 'generate_sample' + get 'generate_print' + get 'generate_mobile_display' + get 'generate_full_page' + end + end end # resources :employer_setup resources :employers do @@ -13,24 +27,11 @@ Rails.application.routes.draw do end end - resources :sample_id_cards do - collection do - get 'generate_sample' - get 'generate_print' - get 'generate_mobile_display' - get 'generate_full_page' - end - end - get 'id_card_benefits_templates/get_template_benefits/:id', to: 'id_card_benefits_templates#get_template_benefits' # Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500. # Can be used by load balancers and uptime monitors to verify that the app is live. get "up" => "rails/health#show", as: :rails_health_check - resources :articles do - resources :comments - end - root "welcome#index" end diff --git a/db/migrate/20211216184102_create_active_storage_tables.active_storage.rb b/db/migrate/20211216184102_create_active_storage_tables.active_storage.rb deleted file mode 100644 index 0abe016..0000000 --- a/db/migrate/20211216184102_create_active_storage_tables.active_storage.rb +++ /dev/null @@ -1,57 +0,0 @@ -# This migration comes from active_storage (originally 20170806125915) -class CreateActiveStorageTables < ActiveRecord::Migration[5.2] - def change - # Use Active Record's configured type for primary and foreign keys - primary_key_type, foreign_key_type = primary_and_foreign_key_types - - create_table :active_storage_blobs, id: primary_key_type do |t| - t.string :key, null: false - t.string :filename, null: false - t.string :content_type - t.text :metadata - t.string :service_name, null: false - t.bigint :byte_size, null: false - t.string :checksum - - if connection.supports_datetime_with_precision? - t.datetime :created_at, precision: 6, null: false - else - t.datetime :created_at, null: false - end - - t.index [ :key ], unique: true - end - - create_table :active_storage_attachments, id: primary_key_type do |t| - t.string :name, null: false - t.references :record, null: false, polymorphic: true, index: false, type: foreign_key_type - t.references :blob, null: false, type: foreign_key_type - - if connection.supports_datetime_with_precision? - t.datetime :created_at, precision: 6, null: false - else - t.datetime :created_at, null: false - end - - t.index [ :record_type, :record_id, :name, :blob_id ], name: :index_active_storage_attachments_uniqueness, unique: true - t.foreign_key :active_storage_blobs, column: :blob_id - end - - create_table :active_storage_variant_records, id: primary_key_type do |t| - t.belongs_to :blob, null: false, index: false, type: foreign_key_type - t.string :variation_digest, null: false - - t.index [ :blob_id, :variation_digest ], name: :index_active_storage_variant_records_uniqueness, unique: true - t.foreign_key :active_storage_blobs, column: :blob_id - end - end - - private - def primary_and_foreign_key_types - config = Rails.configuration.generators - setting = config.options[config.orm][:primary_key_type] - primary_key_type = setting || :primary_key - foreign_key_type = setting || :bigint - [ primary_key_type, foreign_key_type ] - end -end diff --git a/db/migrate/20211216184103_create_action_text_tables.action_text.rb b/db/migrate/20211216184103_create_action_text_tables.action_text.rb deleted file mode 100644 index c1c0a9d..0000000 --- a/db/migrate/20211216184103_create_action_text_tables.action_text.rb +++ /dev/null @@ -1,26 +0,0 @@ -# This migration comes from action_text (originally 20180528164100) -class CreateActionTextTables < ActiveRecord::Migration[6.0] - def change - # Use Active Record's configured type for primary and foreign keys - primary_key_type, foreign_key_type = primary_and_foreign_key_types - - create_table :action_text_rich_texts, id: primary_key_type do |t| - t.string :name, null: false - t.text :body, size: :long - t.references :record, null: false, polymorphic: true, index: false, type: foreign_key_type - - t.timestamps - - t.index [ :record_type, :record_id, :name ], name: "index_action_text_rich_texts_uniqueness", unique: true - end - end - - private - def primary_and_foreign_key_types - config = Rails.configuration.generators - setting = config.options[config.orm][:primary_key_type] - primary_key_type = setting || :primary_key - foreign_key_type = setting || :bigint - [ primary_key_type, foreign_key_type ] - end -end diff --git a/db/migrate/20230326154217_add_service_name_to_active_storage_blobs.active_storage.rb b/db/migrate/20230326154217_add_service_name_to_active_storage_blobs.active_storage.rb deleted file mode 100644 index a15c6ce..0000000 --- a/db/migrate/20230326154217_add_service_name_to_active_storage_blobs.active_storage.rb +++ /dev/null @@ -1,22 +0,0 @@ -# This migration comes from active_storage (originally 20190112182829) -class AddServiceNameToActiveStorageBlobs < ActiveRecord::Migration[6.0] - def up - return unless table_exists?(:active_storage_blobs) - - unless column_exists?(:active_storage_blobs, :service_name) - add_column :active_storage_blobs, :service_name, :string - - if configured_service = ActiveStorage::Blob.service.name - ActiveStorage::Blob.unscoped.update_all(service_name: configured_service) - end - - change_column :active_storage_blobs, :service_name, :string, null: false - end - end - - def down - return unless table_exists?(:active_storage_blobs) - - remove_column :active_storage_blobs, :service_name - end -end diff --git a/db/migrate/20230326154218_create_active_storage_variant_records.active_storage.rb b/db/migrate/20230326154218_create_active_storage_variant_records.active_storage.rb deleted file mode 100644 index 94ac83a..0000000 --- a/db/migrate/20230326154218_create_active_storage_variant_records.active_storage.rb +++ /dev/null @@ -1,27 +0,0 @@ -# This migration comes from active_storage (originally 20191206030411) -class CreateActiveStorageVariantRecords < ActiveRecord::Migration[6.0] - def change - return unless table_exists?(:active_storage_blobs) - - # Use Active Record's configured type for primary key - create_table :active_storage_variant_records, id: primary_key_type, if_not_exists: true do |t| - t.belongs_to :blob, null: false, index: false, type: blobs_primary_key_type - t.string :variation_digest, null: false - - t.index %i[ blob_id variation_digest ], name: "index_active_storage_variant_records_uniqueness", unique: true - t.foreign_key :active_storage_blobs, column: :blob_id - end - end - - private - def primary_key_type - config = Rails.configuration.generators - config.options[config.orm][:primary_key_type] || :primary_key - end - - def blobs_primary_key_type - pkey_name = connection.primary_key(:active_storage_blobs) - pkey_column = connection.columns(:active_storage_blobs).find { |c| c.name == pkey_name } - pkey_column.bigint? ? :bigint : pkey_column.type - end -end diff --git a/db/migrate/20230326154219_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb b/db/migrate/20230326154219_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb deleted file mode 100644 index 93c8b85..0000000 --- a/db/migrate/20230326154219_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb +++ /dev/null @@ -1,8 +0,0 @@ -# This migration comes from active_storage (originally 20211119233751) -class RemoveNotNullOnActiveStorageBlobsChecksum < ActiveRecord::Migration[6.0] - def change - return unless table_exists?(:active_storage_blobs) - - change_column_null(:active_storage_blobs, :checksum, true) - end -end diff --git a/db/migrate/20251104171719_create_id_card_benefits_templates.rb b/db/migrate/20251104171719_create_id_card_benefits_templates.rb deleted file mode 100644 index 5d5bf6b..0000000 --- a/db/migrate/20251104171719_create_id_card_benefits_templates.rb +++ /dev/null @@ -1,9 +0,0 @@ -class CreateIdCardBenefitsTemplates < ActiveRecord::Migration[7.2] - def change - create_table :id_card_benefits_templates do |t| - t.string :title - - t.timestamps - end - end -end diff --git a/db/migrate/20251104171752_create_id_card_benefits.rb b/db/migrate/20251104171752_create_id_card_benefits.rb deleted file mode 100644 index 1f98816..0000000 --- a/db/migrate/20251104171752_create_id_card_benefits.rb +++ /dev/null @@ -1,12 +0,0 @@ -class CreateIdCardBenefits < ActiveRecord::Migration[7.2] - def change - create_table :id_card_benefits do |t| - t.string :benefit_desc - t.string :benefit - t.integer :sequence - t.references :id_card_benefits_template, null: false, foreign_key: true - - t.timestamps - end - end -end diff --git a/db/migrate/20251202140122_create_employers.rb b/db/migrate/20251202140122_create_employers.rb index 052aa7d..019bdc2 100644 --- a/db/migrate/20251202140122_create_employers.rb +++ b/db/migrate/20251202140122_create_employers.rb @@ -2,24 +2,14 @@ class CreateEmployers < ActiveRecord::Migration[7.2] def change create_table :employers do |t| t.string :name - t.string :id_card_display_name t.string :slug t.string :pl_plan_key t.integer :company_pb_entity_key t.integer :plan_id t.string :group_number - t.string :rx_group_number t.string :effective_date - t.string :employer_logo_filename - t.string :network_provider - t.string :default_network_logo - t.string :single_card_template - t.string :multiple_card_template t.boolean :active, default: false - - - t.timestamps end end diff --git a/db/migrate/20251202142443_create_plans.rb b/db/migrate/20251202142443_create_plans.rb deleted file mode 100644 index 5b19fd7..0000000 --- a/db/migrate/20251202142443_create_plans.rb +++ /dev/null @@ -1,11 +0,0 @@ -class CreatePlans < ActiveRecord::Migration[7.2] - def change - create_table :plans do |t| - t.string :title - t.integer :pb_product_key - t.references :employer, null: false, foreign_key: true - - t.timestamps - end - end -end diff --git a/db/migrate/20251202142512_create_plan_benefits.rb b/db/migrate/20251202142512_create_plan_benefits.rb deleted file mode 100644 index 9574860..0000000 --- a/db/migrate/20251202142512_create_plan_benefits.rb +++ /dev/null @@ -1,12 +0,0 @@ -class CreatePlanBenefits < ActiveRecord::Migration[7.2] - def change - create_table :plan_benefits do |t| - t.string :benefit_desc - t.string :benefit - t.integer :sequence - t.references :plan, null: false, foreign_key: true - - t.timestamps - end - end -end diff --git a/db/migrate/20260113144134_create_card_providers.rb b/db/migrate/20251202144134_create_id_card_provider_sections.rb similarity index 89% rename from db/migrate/20260113144134_create_card_providers.rb rename to db/migrate/20251202144134_create_id_card_provider_sections.rb index d72bd1d..f03e3fe 100644 --- a/db/migrate/20260113144134_create_card_providers.rb +++ b/db/migrate/20251202144134_create_id_card_provider_sections.rb @@ -1,6 +1,7 @@ -class CreateCardProviders < ActiveRecord::Migration[7.2] +class CreateIdCardProviderSections < ActiveRecord::Migration[7.2] def change - create_table :card_providers do |t| + create_table :id_card_provider_sections do |t| + t.string :title t.string :provider_code t.string :provider_line_1 t.string :provider_line_2 diff --git a/db/migrate/20260113152220_create_card_rxes.rb b/db/migrate/20251202152220_create_id_card_rx_sections.rb similarity index 56% rename from db/migrate/20260113152220_create_card_rxes.rb rename to db/migrate/20251202152220_create_id_card_rx_sections.rb index 6f83b1f..6f01e46 100644 --- a/db/migrate/20260113152220_create_card_rxes.rb +++ b/db/migrate/20251202152220_create_id_card_rx_sections.rb @@ -1,6 +1,6 @@ -class CreateCardRxes < ActiveRecord::Migration[7.2] +class CreateIdCardRxSections < ActiveRecord::Migration[7.2] def change - create_table :card_rxes do |t| + create_table :id_card_rx_sections do |t| t.string :help_desk t.string :customer_service t.string :web_url diff --git a/db/migrate/20251205145750_create_card_logo_files.rb b/db/migrate/20251203091559_create_id_card_network_logos.rb similarity index 55% rename from db/migrate/20251205145750_create_card_logo_files.rb rename to db/migrate/20251203091559_create_id_card_network_logos.rb index 8278732..b6dbe5e 100644 --- a/db/migrate/20251205145750_create_card_logo_files.rb +++ b/db/migrate/20251203091559_create_id_card_network_logos.rb @@ -1,10 +1,10 @@ -class CreateCardLogoFiles < ActiveRecord::Migration[7.2] +class CreateIdCardNetworkLogos < ActiveRecord::Migration[7.2] def change - create_table :card_logo_files do |t| + create_table :id_card_network_logos do |t| t.string :filename t.binary :image_data t.string :content_type - t.string :logo_type + t.float :aspect_ratio t.boolean :active, default: false t.timestamps diff --git a/db/migrate/20251203145750_create_id_card_employer_logos.rb b/db/migrate/20251203145750_create_id_card_employer_logos.rb new file mode 100644 index 0000000..14541a6 --- /dev/null +++ b/db/migrate/20251203145750_create_id_card_employer_logos.rb @@ -0,0 +1,13 @@ +class CreateIdCardEmployerLogos < ActiveRecord::Migration[7.2] + def change + create_table :id_card_employer_logos do |t| + t.string :filename + t.binary :image_data + t.string :content_type + t.float :aspect_ratio + t.boolean :active, default: false + + t.timestamps + end + end +end diff --git a/db/migrate/20251204041154_create_id_card_setups.rb b/db/migrate/20251204041154_create_id_card_setups.rb new file mode 100644 index 0000000..adcca2a --- /dev/null +++ b/db/migrate/20251204041154_create_id_card_setups.rb @@ -0,0 +1,18 @@ +class CreateIdCardSetups < ActiveRecord::Migration[7.2] + def change + create_table :id_card_setups do |t| + t.string :print_name + t.string :network_provider + t.string :card_template + t.string :rx_group_number + t.boolean :active, default: false + t.belongs_to :employer, null: false, foreign_key: true + t.belongs_to :id_card_employer_logo, null: true, foreign_key: true + t.belongs_to :id_card_network_logo, null: true, foreign_key: true + t.belongs_to :id_card_provider_section, null: false, foreign_key: true + t.belongs_to :id_card_rx_section, null: false, foreign_key: true + + t.timestamps + end + end +end diff --git a/db/migrate/20251204142443_create_id_card_plans.rb b/db/migrate/20251204142443_create_id_card_plans.rb new file mode 100644 index 0000000..209d452 --- /dev/null +++ b/db/migrate/20251204142443_create_id_card_plans.rb @@ -0,0 +1,12 @@ +class CreateIdCardPlans < ActiveRecord::Migration[7.2] + def change + create_table :id_card_plans do |t| + t.string :title + t.integer :pb_product_key + t.string :pl_plan_key + t.belongs_to :id_card_setup, null: true, foreign_key: true + + t.timestamps + end + end +end diff --git a/db/migrate/20251204142512_create_id_card_plan_benefits.rb b/db/migrate/20251204142512_create_id_card_plan_benefits.rb new file mode 100644 index 0000000..418d47d --- /dev/null +++ b/db/migrate/20251204142512_create_id_card_plan_benefits.rb @@ -0,0 +1,12 @@ +class CreateIdCardPlanBenefits < ActiveRecord::Migration[7.2] + def change + create_table :id_card_plan_benefits do |t| + t.string :benefit_desc + t.string :benefit + t.integer :sequence + t.belongs_to :id_card_plan, null: false, foreign_key: true + + t.timestamps + end + end +end diff --git a/db/migrate/20251205091559_create_network_logos.rb b/db/migrate/20251205091559_create_network_logos.rb deleted file mode 100644 index 9fa3a67..0000000 --- a/db/migrate/20251205091559_create_network_logos.rb +++ /dev/null @@ -1,12 +0,0 @@ -class CreateNetworkLogos < ActiveRecord::Migration[7.0] - def change - create_table :alternate_network_logos do |t| - t.string :network_logo_filename - t.string :exception_type - t.string :exception_value - t.belongs_to :employer, null: false, foreign_key: true - - t.timestamps - end - end -end diff --git a/db/migrate/20251206190810_create_sample_id_cards.rb b/db/migrate/20251206190810_create_id_card_print_data.rb similarity index 92% rename from db/migrate/20251206190810_create_sample_id_cards.rb rename to db/migrate/20251206190810_create_id_card_print_data.rb index 47cc635..f0311df 100644 --- a/db/migrate/20251206190810_create_sample_id_cards.rb +++ b/db/migrate/20251206190810_create_id_card_print_data.rb @@ -1,10 +1,12 @@ -class CreateSampleIdCards < ActiveRecord::Migration[7.0] +class CreateIdCardPrintData < ActiveRecord::Migration[7.0] def change - create_table :sample_id_cards do |t| + create_table :id_card_print_data do |t| t.string :full_name + t.string :full_name_last_name_first t.string :family_id t.string :primary_mb_member_key t.string :employer_name + t.string :pl_plan_key t.string :group_number t.string :rx_group t.string :medical_eff_date diff --git a/db/migrate/20260107180344_create_employer_card_logos.rb b/db/migrate/20260107180344_create_employer_card_logos.rb deleted file mode 100644 index c7bd394..0000000 --- a/db/migrate/20260107180344_create_employer_card_logos.rb +++ /dev/null @@ -1,11 +0,0 @@ -class CreateEmployerCardLogos < ActiveRecord::Migration[7.2] - def change - create_table :employer_card_logos do |t| - t.references :employer, null: false, foreign_key: true - t.references :card_logo_file, null: false, foreign_key: true - t.string :logo_type - - t.timestamps - end - end -end diff --git a/db/migrate/20260113152431_add_card_rx_to_employers.rb b/db/migrate/20260113152431_add_card_rx_to_employers.rb deleted file mode 100644 index f74259d..0000000 --- a/db/migrate/20260113152431_add_card_rx_to_employers.rb +++ /dev/null @@ -1,6 +0,0 @@ -class AddCardRxToEmployers < ActiveRecord::Migration[7.2] - def change - add_reference :employers, :card_provider, null: true, foreign_key: true - add_reference :employers, :card_rx, null: true, foreign_key: true - end -end diff --git a/db/migrate/20260114183848_create_members.rb b/db/migrate/20260114183848_create_members.rb index 414baac..73f929e 100644 --- a/db/migrate/20260114183848_create_members.rb +++ b/db/migrate/20260114183848_create_members.rb @@ -8,7 +8,7 @@ class CreateMembers < ActiveRecord::Migration[7.2] t.integer :pb_entity_key t.integer :pl_plan_key t.belongs_to :employer, foreign_key: true - t.belongs_to :plan, null: true, foreign_key: true + t.belongs_to :id_card_plan, null: true, foreign_key: true t.timestamps end diff --git a/db/migrate/20260116181849_create_card_exceptions.rb b/db/migrate/20260116181849_create_card_exceptions.rb deleted file mode 100644 index dcca654..0000000 --- a/db/migrate/20260116181849_create_card_exceptions.rb +++ /dev/null @@ -1,11 +0,0 @@ -class CreateCardExceptions < ActiveRecord::Migration[7.2] - def change - create_table :card_exceptions do |t| - t.string :type - t.string :value - t.belongs_to :employer, null: false, foreign_key: true - - t.timestamps - end - end -end diff --git a/db/migrate/20260116181849_create_id_card_exceptions.rb b/db/migrate/20260116181849_create_id_card_exceptions.rb new file mode 100644 index 0000000..0f508f9 --- /dev/null +++ b/db/migrate/20260116181849_create_id_card_exceptions.rb @@ -0,0 +1,11 @@ +class CreateIdCardExceptions < ActiveRecord::Migration[7.2] + def change + create_table :id_card_exceptions do |t| + t.string :type + t.string :value + t.belongs_to :id_card_setup, null: false, foreign_key: true + + t.timestamps + end + end +end diff --git a/db/migrate/20260116182836_create_card_exception_items.rb b/db/migrate/20260116182836_create_card_exception_items.rb deleted file mode 100644 index b830c78..0000000 --- a/db/migrate/20260116182836_create_card_exception_items.rb +++ /dev/null @@ -1,13 +0,0 @@ -class CreateCardExceptionItems < ActiveRecord::Migration[7.2] - def change - create_table :card_exception_items do |t| - t.string :field_name - t.string :field_value - t.belongs_to :card_exception, null: false, foreign_key: true - t.belongs_to :card_logo_file, null: true, foreign_key: true - t.belongs_to :card_provider, null: true, foreign_key: true - - t.timestamps - end - end -end diff --git a/db/migrate/20260116182836_create_id_card_exception_items.rb b/db/migrate/20260116182836_create_id_card_exception_items.rb new file mode 100644 index 0000000..39e233e --- /dev/null +++ b/db/migrate/20260116182836_create_id_card_exception_items.rb @@ -0,0 +1,13 @@ +class CreateIdCardExceptionItems < ActiveRecord::Migration[7.2] + def change + create_table :id_card_exception_items do |t| + t.string :field_name + t.string :field_value + t.belongs_to :id_card_exception, null: false, foreign_key: true + t.belongs_to :id_card_network_logo, null: true, foreign_key: true + t.belongs_to :id_card_provider_section, null: true, foreign_key: true + + t.timestamps + end + end +end diff --git a/db/migrate/20260206202113_add_aspect_ratio_to_card_logo_files.rb b/db/migrate/20260206202113_add_aspect_ratio_to_card_logo_files.rb deleted file mode 100644 index c40a647..0000000 --- a/db/migrate/20260206202113_add_aspect_ratio_to_card_logo_files.rb +++ /dev/null @@ -1,5 +0,0 @@ -class AddAspectRatioToCardLogoFiles < ActiveRecord::Migration[7.2] - def change - add_column :card_logo_files, :aspect_ratio, :float - end -end diff --git a/db/migrate/20260223223545_add_last_name_to_sample_id_card.rb b/db/migrate/20260223223545_add_last_name_to_sample_id_card.rb deleted file mode 100644 index 5659ade..0000000 --- a/db/migrate/20260223223545_add_last_name_to_sample_id_card.rb +++ /dev/null @@ -1,5 +0,0 @@ -class AddLastNameToSampleIdCard < ActiveRecord::Migration[7.2] - def change - add_column :sample_id_cards, :name, :string - end -end diff --git a/db/migrate/20260227192437_rename_card_field_exceptions_to_card_exception_items.rb b/db/migrate/20260227192437_rename_card_field_exceptions_to_card_exception_items.rb deleted file mode 100644 index 5bee1e2..0000000 --- a/db/migrate/20260227192437_rename_card_field_exceptions_to_card_exception_items.rb +++ /dev/null @@ -1,5 +0,0 @@ -class RenameCardFieldExceptionsToCardExceptionItems < ActiveRecord::Migration[7.2] - def change - rename_table :card_field_exceptions, :card_exception_items - end -end diff --git a/db/migrate/20260227213305_add_title_to_card_providers.rb b/db/migrate/20260227213305_add_title_to_card_providers.rb deleted file mode 100644 index 0fcb52f..0000000 --- a/db/migrate/20260227213305_add_title_to_card_providers.rb +++ /dev/null @@ -1,5 +0,0 @@ -class AddTitleToCardProviders < ActiveRecord::Migration[7.2] - def change - add_column :card_providers, :title, :string - end -end diff --git a/db/schema.rb b/db/schema.rb index 0e20515..0d7dea3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,230 +10,89 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.2].define(version: 2026_02_27_213305) do - create_table "action_text_rich_texts", force: :cascade do |t| - t.string "name", null: false - t.text "body" - t.string "record_type", null: false - t.bigint "record_id", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["record_type", "record_id", "name"], name: "index_action_text_rich_texts_uniqueness", unique: true - end - - create_table "active_storage_attachments", force: :cascade do |t| - t.string "name", null: false - t.string "record_type", null: false - t.bigint "record_id", null: false - t.bigint "blob_id", null: false - t.datetime "created_at", null: false - t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id" - t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true - end - - create_table "active_storage_blobs", force: :cascade do |t| - t.string "key", null: false - t.string "filename", null: false - t.string "content_type" - t.text "metadata" - t.string "service_name", null: false - t.bigint "byte_size", null: false - t.string "checksum" - t.datetime "created_at", null: false - t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true - end - - create_table "active_storage_variant_records", force: :cascade do |t| - t.bigint "blob_id", null: false - t.string "variation_digest", null: false - t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true - end - - create_table "alternate_network_logos", force: :cascade do |t| - t.string "network_logo_filename" - t.string "exception_type" - t.string "exception_value" - t.bigint "employer_id", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["employer_id"], name: "index_alternate_network_logos_on_employer_id" - end - - create_table "card_exception_items", force: :cascade do |t| - t.string "field_name" - t.string "field_value" - t.bigint "card_logo_file_id" - t.bigint "card_provider_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["card_logo_file_id"], name: "index_card_exception_items_on_card_logo_file_id" - t.index ["card_provider_id"], name: "index_card_exception_items_on_card_provider_id" - end - - create_table "card_exceptions", force: :cascade do |t| - t.string "type" - t.string "value" - t.bigint "employer_id", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["employer_id"], name: "index_card_exceptions_on_employer_id" - end - - create_table "card_logo_files", force: :cascade do |t| - t.string "filename" - t.binary "image_data" - t.string "content_type" - t.string "logo_type" - t.boolean "active", default: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.float "aspect_ratio" - end - - create_table "card_providers", force: :cascade do |t| - t.string "provider_code" - t.string "provider_line_1" - t.string "provider_line_2" - t.string "provider_line_3" - t.string "provider_line_4" - t.string "provider_line_5" - t.string "provider_line_6" - t.string "provider_line_7" - t.string "provider_line_8" - t.string "provider_line_9" - t.string "provider_line_10" - t.string "provider_line_11" - t.string "provider_line_12" - t.string "claim_to_1" - t.string "claim_to_2" - t.string "claim_to_3" - t.string "claim_to_4" - t.string "claim_to_5" - t.string "claim_to_6" - t.string "claim_to_7" - t.string "claim_to_8" - t.string "claim_to_9" - t.string "claim_to_10" - t.string "claim_to_11" - t.string "claim_to_12" - t.string "mail_to" - t.string "mail_to_2" - t.string "contact_line_1" - t.string "contact_line_2" - t.string "contact_line_3" - t.string "group_number" - t.string "rx_group_id" - t.string "rx_contact" - t.string "provider_lookup_1" - t.string "provider_lookup_2" - t.string "precert_1" - t.string "precert_2" - t.string "precert_3" - t.string "precert_4" - t.string "precert_5" - t.string "precert_6" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "title" - end - - create_table "card_rxes", force: :cascade do |t| - t.string "help_desk" - t.string "customer_service" - t.string "web_url" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - end - - create_table "employer_card_logos", force: :cascade do |t| - t.bigint "employer_id", null: false - t.bigint "card_logo_file_id", null: false - t.string "logo_type" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["card_logo_file_id"], name: "index_employer_card_logos_on_card_logo_file_id" - t.index ["employer_id"], name: "index_employer_card_logos_on_employer_id" - end - +ActiveRecord::Schema[7.2].define(version: 2026_01_16_182836) do create_table "employers", force: :cascade do |t| t.string "name" - t.string "id_card_display_name" t.string "slug" t.string "pl_plan_key" t.integer "company_pb_entity_key" t.integer "plan_id" t.string "group_number" - t.string "rx_group_number" t.string "effective_date" - t.string "employer_logo_filename" - t.string "network_provider" - t.string "default_network_logo" - t.string "single_card_template" - t.string "multiple_card_template" t.boolean "active", default: false t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.bigint "card_provider_id" - t.bigint "card_rx_id" - t.index ["card_provider_id"], name: "index_employers_on_card_provider_id" - t.index ["card_rx_id"], name: "index_employers_on_card_rx_id" end - create_table "id_card_benefits", force: :cascade do |t| + create_table "id_card_employer_logos", force: :cascade do |t| + t.string "filename" + t.binary "image_data" + t.string "content_type" + t.float "aspect_ratio" + t.boolean "active", default: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + create_table "id_card_exception_items", force: :cascade do |t| + t.string "field_name" + t.string "field_value" + t.bigint "id_card_exception_id", null: false + t.bigint "id_card_network_logo_id" + t.bigint "id_card_provider_section_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["id_card_exception_id"], name: "index_id_card_exception_items_on_id_card_exception_id" + t.index ["id_card_network_logo_id"], name: "index_id_card_exception_items_on_id_card_network_logo_id" + t.index ["id_card_provider_section_id"], name: "index_id_card_exception_items_on_id_card_provider_section_id" + end + + create_table "id_card_exceptions", force: :cascade do |t| + t.string "type" + t.string "value" + t.bigint "id_card_setup_id", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["id_card_setup_id"], name: "index_id_card_exceptions_on_id_card_setup_id" + end + + create_table "id_card_network_logos", force: :cascade do |t| + t.string "filename" + t.binary "image_data" + t.string "content_type" + t.float "aspect_ratio" + t.boolean "active", default: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + create_table "id_card_plan_benefits", force: :cascade do |t| t.string "benefit_desc" t.string "benefit" t.integer "sequence" - t.bigint "id_card_benefits_template_id", null: false + t.bigint "id_card_plan_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.index ["id_card_benefits_template_id"], name: "index_id_card_benefits_on_id_card_benefits_template_id" + t.index ["id_card_plan_id"], name: "index_id_card_plan_benefits_on_id_card_plan_id" end - create_table "id_card_benefits_templates", force: :cascade do |t| - t.string "title" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - end - - create_table "members", force: :cascade do |t| - t.string "name" - t.string "id_card_display_name" - t.string "family_id" - t.integer "mb_member_key" - t.integer "pb_entity_key" - t.integer "pl_plan_key" - t.bigint "employer_id" - t.bigint "plan_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["employer_id"], name: "index_members_on_employer_id" - t.index ["plan_id"], name: "index_members_on_plan_id" - end - - create_table "plan_benefits", force: :cascade do |t| - t.string "benefit_desc" - t.string "benefit" - t.integer "sequence" - t.bigint "plan_id", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["plan_id"], name: "index_plan_benefits_on_plan_id" - end - - create_table "plans", force: :cascade do |t| + create_table "id_card_plans", force: :cascade do |t| t.string "title" t.integer "pb_product_key" - t.bigint "employer_id", null: false + t.string "pl_plan_key" + t.bigint "id_card_setup_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.index ["employer_id"], name: "index_plans_on_employer_id" + t.index ["id_card_setup_id"], name: "index_id_card_plans_on_id_card_setup_id" end - create_table "sample_id_cards", force: :cascade do |t| + create_table "id_card_print_data", force: :cascade do |t| t.string "full_name" + t.string "full_name_last_name_first" t.string "family_id" t.string "primary_mb_member_key" t.string "employer_name" + t.string "pl_plan_key" t.string "group_number" t.string "rx_group" t.string "medical_eff_date" @@ -303,22 +162,109 @@ ActiveRecord::Schema[7.2].define(version: 2026_02_27_213305) do t.string "benefit_14" t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.string "name" end - add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" - add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" - add_foreign_key "alternate_network_logos", "employers" - add_foreign_key "card_exception_items", "card_logo_files" - add_foreign_key "card_exception_items", "card_providers" - add_foreign_key "card_exceptions", "employers" - add_foreign_key "employer_card_logos", "card_logo_files" - add_foreign_key "employer_card_logos", "employers" - add_foreign_key "employers", "card_providers" - add_foreign_key "employers", "card_rxes" - add_foreign_key "id_card_benefits", "id_card_benefits_templates" + create_table "id_card_provider_sections", force: :cascade do |t| + t.string "title" + t.string "provider_code" + t.string "provider_line_1" + t.string "provider_line_2" + t.string "provider_line_3" + t.string "provider_line_4" + t.string "provider_line_5" + t.string "provider_line_6" + t.string "provider_line_7" + t.string "provider_line_8" + t.string "provider_line_9" + t.string "provider_line_10" + t.string "provider_line_11" + t.string "provider_line_12" + t.string "claim_to_1" + t.string "claim_to_2" + t.string "claim_to_3" + t.string "claim_to_4" + t.string "claim_to_5" + t.string "claim_to_6" + t.string "claim_to_7" + t.string "claim_to_8" + t.string "claim_to_9" + t.string "claim_to_10" + t.string "claim_to_11" + t.string "claim_to_12" + t.string "mail_to" + t.string "mail_to_2" + t.string "contact_line_1" + t.string "contact_line_2" + t.string "contact_line_3" + t.string "group_number" + t.string "rx_group_id" + t.string "rx_contact" + t.string "provider_lookup_1" + t.string "provider_lookup_2" + t.string "precert_1" + t.string "precert_2" + t.string "precert_3" + t.string "precert_4" + t.string "precert_5" + t.string "precert_6" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + create_table "id_card_rx_sections", force: :cascade do |t| + t.string "help_desk" + t.string "customer_service" + t.string "web_url" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + create_table "id_card_setups", force: :cascade do |t| + t.string "print_name" + t.string "network_provider" + t.string "card_template" + t.string "rx_group_number" + t.boolean "active", default: false + t.bigint "employer_id", null: false + t.bigint "id_card_employer_logo_id" + t.bigint "id_card_network_logo_id" + t.bigint "id_card_provider_section_id", null: false + t.bigint "id_card_rx_section_id", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["employer_id"], name: "index_id_card_setups_on_employer_id" + t.index ["id_card_employer_logo_id"], name: "index_id_card_setups_on_id_card_employer_logo_id" + t.index ["id_card_network_logo_id"], name: "index_id_card_setups_on_id_card_network_logo_id" + t.index ["id_card_provider_section_id"], name: "index_id_card_setups_on_id_card_provider_section_id" + t.index ["id_card_rx_section_id"], name: "index_id_card_setups_on_id_card_rx_section_id" + end + + create_table "members", force: :cascade do |t| + t.string "name" + t.string "id_card_display_name" + t.string "family_id" + t.integer "mb_member_key" + t.integer "pb_entity_key" + t.integer "pl_plan_key" + t.bigint "employer_id" + t.bigint "id_card_plan_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["employer_id"], name: "index_members_on_employer_id" + t.index ["id_card_plan_id"], name: "index_members_on_id_card_plan_id" + end + + add_foreign_key "id_card_exception_items", "id_card_exceptions" + add_foreign_key "id_card_exception_items", "id_card_network_logos" + add_foreign_key "id_card_exception_items", "id_card_provider_sections" + add_foreign_key "id_card_exceptions", "id_card_setups" + add_foreign_key "id_card_plan_benefits", "id_card_plans" + add_foreign_key "id_card_plans", "id_card_setups" + add_foreign_key "id_card_setups", "employers" + add_foreign_key "id_card_setups", "id_card_employer_logos" + add_foreign_key "id_card_setups", "id_card_network_logos" + add_foreign_key "id_card_setups", "id_card_provider_sections" + add_foreign_key "id_card_setups", "id_card_rx_sections" add_foreign_key "members", "employers" - add_foreign_key "members", "plans" - add_foreign_key "plan_benefits", "plans" - add_foreign_key "plans", "employers" + add_foreign_key "members", "id_card_plans" end diff --git a/init.sql b/init.sql index 9bfa0d9..1f307cb 100644 --- a/init.sql +++ b/init.sql @@ -1,5 +1,5 @@ -IF NOT EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'britton_dev_tools_dev') +IF NOT EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'britton_baclight_dev') BEGIN - CREATE DATABASE [britton_dev_tools_dev]; - CREATE DATABASE [britton_dev_tools_test]; + CREATE DATABASE [britton_baclight_dev]; + CREATE DATABASE [britton_baclight_test]; END; \ No newline at end of file