-- SPDX-FileCopyrightText: 2022-25 Sarah Vaupel <sarah.vaupel@ifi.lmu.de>,Steffen Jost <s.jost@fraport.de>
--
-- SPDX-License-Identifier: AGPL-3.0-or-later

-- Description of companies associated with users

Company  
  name            CompanyName             -- == (CI Text) -- NOTE: Fraport department name may carry additional information; use the Shorthand with respect to UserCompanyDepartment
  shorthand       CompanyShorthand        -- == (CI Text) and CompanyKey :: CompanyShorthand -> CompanyId   A change to AvsId as primary key is too much work and not strictly necessary due to Uniqueness
  avsId           Int     default=0       -- primary key from avs, use negative numbers for non-AVS companies 
  prefersPostal   Bool    default=true    -- new company users prefers letters by post instead of email
  postAddress     StoredMarkup Maybe      -- default company postal address, including company name 
  email           UserEmail Maybe         -- Case-insensitive generic company eMail address  
  pinPassword     Bool    default=true    -- new company users only: should sensitive PDF email attachement be protected by a password?
  -- UniqueCompanyName name               -- Should be Unique in AVS, but we do not yet need to enforce it
  -- UniqueCompanyShorthand shorthand     -- unnecessary, since it is the primary key already
  UniqueCompanyAvsId avsId                -- Should be the key, is not for historical reasons and for convenience in URLs and columns
  Primary shorthand                       -- newtype Key Company = CompanyKey { unCompanyKey :: CompanyShorthand } 
  deriving Ord Eq Show Generic Binary

