package client // UserAdded is the event sent when a new user is added to a company type UserAdded struct { Email string `json:"email"` CompanyID string `json:"companyId"` } // UserRemoved is the event sent when a user is removed from a company type UserRemoved struct { Email string `json:"email"` CompanyID string `json:"companyId"` } // 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"` } // 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"` }