export interface User {
    id?: number;
    prename: string;
    name?: string;
    username: string;
    shortname?: string;
    email?: string;
    language?: string;
    comment?: string;
    deleted?: boolean;
    dateFormat?: string;
    addedWho?: string;
    changedWho?: string;
    active?: boolean;
}


export interface Group {
    id?: number;
    name?: string;
    adSync?: boolean;
    internal?: boolean;
    active?: boolean;
    comment?: string;
    addedWho?: string;
    changedWho?: string;
}

export interface Module {
    id: number;
    name?: string;
    shortName?: string;
}

export interface ModuleOfUser {
    id?: number;
    userId: number;
    moduleId: number;
    isAdmin?: boolean;
    comment?: string;
    addedWho?: string;
    changedWho?: string;
    module?: Module;
}

export interface GroupOfUser {
    id?: number;
    userId: number;
    groupId: number;
    comment?: string;
    addedWho?: string;
    changedWho?: string;
    user?: User,
    group?: Group
}

export interface UserRep {
    id?: number,
    userId: number,
    repGroupId?: number,
    groupId?: number,
    addedWho: string,
    repUserId?: number,
    user?: User,
    repGroup?: Group,
    group?: Group,
    repUser?: User
}

export interface DirGroup {
    samaccountname: Array<string>;
}

export interface DirUser {
    samaccountname?: Array<string>;
    givenname?: Array<string>;
    sn?: Array<string>;
    mail?: string;
    addedWho?: string;
}