package client // UserAdded is the event sent when a new user is added to a company. // SequenceNo is authz-service's global event sequence number; it orders the events. type UserAdded struct { Email string `json:"email"` CompanyID string `json:"companyId"` SequenceNo int `json:"sequenceNo"` } // UserRemoved is the event sent when a user is removed from a company type UserRemoved struct { Email string `json:"email"` CompanyID string `json:"companyId"` SequenceNo int `json:"sequenceNo"` } // Privilege is an enumeration of all available privileges type Privilege string const ( PrivilegeAdmin = "ADMIN" PrivilegeCompany = "COMPANY" PrivilegeConsumer = "CONSUMER" PrivilegeTime = "TIME" PrivilegeInvoicing = "INVOICING" PrivilegeAccounting = "ACCOUNTING" PrivilegeSupplier = "SUPPLIER" PrivilegeSalary = "SALARY" ) var AllPrivilege = []Privilege{ PrivilegeAdmin, PrivilegeCompany, PrivilegeConsumer, PrivilegeTime, PrivilegeInvoicing, PrivilegeAccounting, PrivilegeSupplier, PrivilegeSalary, } func (e Privilege) IsValid() bool { switch e { case PrivilegeAdmin, PrivilegeCompany, PrivilegeConsumer, PrivilegeTime, PrivilegeInvoicing, PrivilegeAccounting, PrivilegeSupplier, PrivilegeSalary: return true } return false } func (e Privilege) String() string { return string(e) } // PrivilegeAdded is the event sent when a new privilege is added type PrivilegeAdded struct { Email string `json:"email"` CompanyID string `json:"companyId"` Privilege Privilege `json:"privilege"` SequenceNo int `json:"sequenceNo"` } // PrivilegeRemoved is the event sent when a privilege is removed type PrivilegeRemoved struct { Email string `json:"email"` CompanyID string `json:"companyId"` Privilege Privilege `json:"privilege"` SequenceNo int `json:"sequenceNo"` }