| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313 |
- import { Model, Query } from 'pinia-orm'
- import { Ability } from '@casl/ability'
- import { Store } from 'pinia'
- import DataPersister from '~/services/data/dataPersister'
- import DataProvider from '~/services/data/dataProvider'
- import DataDeleter from '~/services/data/dataDeleter'
- import {
- ABILITIES,
- FORM_STATUS,
- GENDER,
- METADATA_TYPE,
- QUERY_TYPE,
- TYPE_ALERT,
- } from '~/types/enums'
- /**
- * Upgrade du @nuxt/types pour TypeScript
- */
- declare module '@nuxt/types' {
- interface Context {
- $ability: Ability
- $dataPersister: DataPersister
- $dataProvider: DataProvider
- $dataDeleter: DataDeleter
- }
- }
- declare module '@vuex-orm/core' {
- interface Query {
- getAllRelations: () => Array<string>
- }
- }
- interface IconItem {
- name?: string
- avatarId?: number | null
- avatarByDefault?: string
- }
- interface ItemMenu {
- title: string
- icon?: IconItem
- avatar?: number
- to?: string
- // eslint-disable-next-line no-use-before-define
- children?: ItemsMenu
- isExternalLink?: boolean
- // eslint-disable-next-line no-use-before-define
- actions?: ItemsMenu
- }
- type ItemsMenu = Array<ItemMenu>
- interface Menu {
- getMenu: () => ItemMenu | null
- getHeaderMenu: () => ItemMenu | null
- }
- interface AbilitiesType {
- action: ABILITIES
- subject: string
- /** an array of fields to which user has (or not) access */
- fields?: string[]
- /** an object of conditions which restricts the rule scope */
- conditions?: any
- /** indicates whether rule allows or forbids something */
- inverted?: boolean
- /** message which explains why rule is forbidden */
- reason?: string
- }
- interface formState {
- violations: Array<string>
- readonly: boolean
- formStatus: FORM_STATUS
- dirty: boolean
- showConfirmToLeave: boolean
- goAfterLeave: string | null
- }
- interface Alert {
- type: TYPE_ALERT
- messages: Array<string>
- }
- interface pageState {
- alerts: Array<Alert>
- }
- interface Historical {
- future?: boolean
- past?: boolean
- present?: boolean
- dateStart?: string
- dateEnd?: string
- }
- interface baseAccessState {
- id: number | null
- name: string | null
- givenName: string | null
- gender: GENDER | null
- avatarId: number | null
- }
- interface baseOrganizationState {
- id: number | null
- name: string | null
- website?: string | null
- }
- interface OrignalAccessState extends baseAccessState {
- isSuperAdminAccess: boolean
- organization: baseOrganizationState
- }
- interface accessState extends baseAccessState {
- bearer: string | null
- switchId: number | null
- activityYear: number | null
- historical: Historical | Array<string>
- roles: Array<string>
- abilities: Array<AbilitiesType>
- isAdminAccess: boolean | null
- isSuperAdminAccess: boolean | null
- isAdmin: boolean | null
- isAdministratifManager: boolean | null
- isPedagogicManager: boolean | null
- isFinancialManager: boolean | null
- isCaMember: boolean | null
- isStudent: boolean | null
- isTeacher: boolean | null
- isMember: boolean | null
- isOther: boolean | null
- isGuardian: boolean | null
- isPayor: boolean | null
- hasLateralMenu: boolean | null
- hasConfigurationMenu: boolean | null
- hasAccessesMenu: boolean | null
- hasFamilyMenu: boolean | null
- multiAccesses: Array<baseOrganizationState>
- familyAccesses: Array<baseAccessState>
- originalAccess: OrignalAccessState | null
- }
- interface organizationState extends baseOrganizationState {
- id: number | null
- parametersId: number | null
- name: string | null
- product?: string | null
- currentActivityYear?: number | null
- modules?: Array<string>
- hasChildren?: boolean | null
- showAdherentList?: boolean | null
- legalStatus?: string | null
- networks: Array<string>
- parents: Array<baseOrganizationState>
- }
- type AnyJson = Record<string, any>
- type AnyStore = Store<any>
- interface EnumChoice {
- value: string
- label: string
- }
- interface UrlArgs {
- readonly type: QUERY_TYPE
- readonly url?: string
- readonly baseUrl?: string
- readonly enumType?: string
- readonly model?: typeof Model
- readonly rootModel?: typeof Model
- readonly id?: any
- readonly idTemp?: any
- readonly rootId?: number
- readonly showProgress?: boolean
- readonly hook?: string
- readonly params?: AnyJson
- }
- interface ImageArgs {
- readonly id: number
- readonly height: number
- readonly width: number
- }
- interface FileArgs {
- readonly fileId: number
- }
- interface Filter {
- readonly key: string
- readonly value: string | boolean | number
- }
- interface ListArgs {
- readonly itemsPerPage?: number
- readonly page?: number
- readonly filters?: Array<Filter>
- }
- interface DataProviderArgs extends UrlArgs {
- imgArgs?: ImageArgs
- listArgs?: ListArgs
- fileArgs?: FileArgs
- }
- interface DataPersisterArgs extends UrlArgs {
- data?: AnyJson
- query?: Query
- file?: string
- }
- type DataDeleterArgs = UrlArgs
- type EnumChoices = Array<EnumChoice>
- interface DataManager {
- invoke(args: UrlArgs): Promise<any>
- }
- interface HookProvider {
- invoke(args: DataProviderArgs): Promise<any>
- }
- interface HookPersister {
- invoke(args: DataPersisterArgs): Promise<any>
- }
- interface HookDeleter {
- invoke(args: DataDeleterArgs): Promise<any>
- }
- interface Processor {
- process(data: AnyJson): Promise<any>
- }
- interface Normalizer {
- normalize(args: DataPersisterArgs): any
- }
- interface Denormalizer {
- denormalize(data: any): any
- }
- interface DolibarrContractLine {
- id: number
- contractId: number
- dateStart: Date
- dateEnd: Date
- serviceRef: string
- serviceLabel: string
- }
- interface DolibarrContract {
- ref: string
- socId: number
- lines: Array<DolibarrContractLine>
- }
- interface DolibarrBill {
- id: number
- ref: string
- socId: number
- date: Date
- taxExcludedAmount: number
- taxIncludedAmount: number
- paid: boolean
- }
- interface DolibarrAccount {
- organizationId: number
- socId: number
- clientNumber: string
- product:
- | 'PRODUCT_ARTIST'
- | 'PRODUCT_ARTIST_PREMIUM'
- | 'PRODUCT_SCHOOL'
- | 'PRODUCT_SCHOOL_PREMIUM'
- | 'PRODUCT_MANAGER'
- contract: DolibarrContract
- bills: Array<DolibarrBill>
- }
- interface MobytUserStatus {
- organizationId: number
- active: boolean
- amount: number
- money: number
- }
- interface HydraMetadata {
- readonly totalItems?: number
- firstPage?: number
- lastPage?: number
- nextPage?: number
- previousPage?: number
- type?: METADATA_TYPE
- }
- interface ApiResponse {
- data: AnyJson
- metadata: HydraMetadata
- }
- interface MercureEntityUpdate {
- iri: string
- operation: 'create' | 'delete' | 'update'
- data: any
- }
- interface sseState {
- connected: boolean
- events: Array<MercureEntityUpdate>
- }
|