| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- import { Model, Query } from 'pinia-orm'
- import { Ability } from '@casl/ability'
- import { Store } from 'pinia'
- import { Context } from '@nuxt/types/app'
- 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, SUBMIT_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,
- children?: ItemsMenu,
- isExternalLink?: boolean,
- actions?: ItemsMenu,
- }
- interface ItemsMenu extends 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 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 baseOrganizationState {
- id: number|null,
- name: string|null,
- website?: string|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>,
- }
- interface AnyJson extends Record<string, any> {}
- interface AnyStore extends 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
- }
- interface DataDeleterArgs extends UrlArgs {}
- interface EnumChoices extends 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 ApiResponse{
- data: AnyJson,
- metadata: HydraMetadata
- }
- interface HydraMetadata {
- readonly totalItems?: number,
- firstPage?: number,
- lastPage?: number,
- nextPage?: number,
- previousPage?: number,
- type?: METADATA_TYPE
- }
- interface MercureEntityUpdate {
- iri: string,
- operation: 'create' | 'delete' | 'update',
- data: any
- }
- interface sseState {
- connected: boolean,
- events: Array<MercureEntityUpdate>,
- }
|