// This file is auto-generated by @hey-api/openapi-ts

export type App = {
    title?: string;
};

export type BaseMapStyles = {
    embedded: Array<(string)>;
    external: {
        [key: string]: (string);
    };
};

export type Body_addTree_tree_post = {
    plantekey_id: string;
    picture?: string | null;
    trail_ids?: string | null;
    lng: string;
    lat: string;
    uuid1?: string | null;
    details?: string | null;
};

export type Body_login_for_access_token_token_post = {
    grant_type?: string | null;
    username: string;
    password: string;
    scope?: string;
    client_id?: string | null;
    client_secret?: string | null;
};

export type Body_upload_trail_photo_trail_photo__id___file_name__put = {
    file?: (Blob | File) | null;
};

export type Body_upload_tree_photo_tree_photo__id___file_name__put = {
    file?: (Blob | File) | null;
};

export type Body_upload_upload__type___field___id__post = {
    file: (Blob | File);
};

export type Bootstrap = {
    client: VersionedComponent;
    server: VersionedComponent;
    app: App;
    user: UserWithRoles | null;
    map: Map;
    baseMapStyles: BaseMapStyles;
};

export type HTTPValidationError = {
    detail?: Array<ValidationError>;
};

export type Map = {
    zoom?: number;
    pitch?: number;
    lat?: number;
    lng?: number;
    bearing?: number;
    background?: string;
};

export type MapStyle = {
    id: number;
    layer: string;
    paint: {
    [key: string]: unknown;
} | null;
    layout: {
    [key: string]: unknown;
} | null;
};

export type POI = {
    id: number;
    name: string;
    description?: string | null;
    create_date?: string;
    geom: string;
    photo: string;
    type: string;
    data?: {
        [key: string]: unknown;
    };
};

export type Role = {
    name: string;
};

export type Token = {
    access_token: string;
    token_type: string;
};

export type TreeTrail = {
    tree_id?: string | null;
    trail_id?: number | null;
};

export type UserWithRoles = {
    username: string;
    full_name: string | null;
    email: string | null;
    roles: Array<Role>;
};

export type ValidationError = {
    loc: Array<(string | number)>;
    msg: string;
    type: string;
};

export type VersionedComponent = {
    version: string;
};

export type Zone = {
    id: number;
    name: string;
    description: string;
    create_date?: string;
    geom: string;
    photo: string | null;
    type: string;
    data?: {
    [key: string]: unknown;
} | null;
    viewable_role_id: string | null;
};

export type GetBootstrapBootstrapGetResponse = Bootstrap;

export type LoginForAccessTokenTokenPostData = {
    formData: Body_login_for_access_token_token_post;
};

export type LoginForAccessTokenTokenPostResponse = Token;

export type UploadUploadTypeFieldIdPostData = {
    field: string;
    formData: Body_upload_upload__type___field___id__post;
    id: string;
    type: string;
};

export type UploadUploadTypeFieldIdPostResponse = unknown;

export type MakeAttachmentsTarFileMakeAttachmentsTarFileGetResponse = unknown;

export type LogoutLogoutGetResponse = unknown;

export type GetTrailsTrailGetResponse = unknown;

export type GetTrailAllDetailsTrailDetailsGetResponse = unknown;

export type GetTreeTrailTreeTrailGetResponse = Array<TreeTrail>;

export type GetTreesTreeGetResponse = unknown;

export type AddTreeTreePostData = {
    formData: Body_addTree_tree_post;
};

export type AddTreeTreePostResponse = unknown;

export type GetPoisPoiGetResponse = Array<POI>;

export type GetZonesZoneGetResponse = Array<Zone>;

export type GetStylesStyleGetResponse = Array<MapStyle>;

export type UploadTrailPhotoTrailPhotoIdFileNamePutData = {
    fileName: string;
    formData?: Body_upload_trail_photo_trail_photo__id___file_name__put;
    id: string;
};

export type UploadTrailPhotoTrailPhotoIdFileNamePutResponse = unknown;

export type UploadTreePhotoTreePhotoIdFileNamePutData = {
    fileName: string;
    formData?: Body_upload_tree_photo_tree_photo__id___file_name__put;
    id: string;
};

export type UploadTreePhotoTreePhotoIdFileNamePutResponse = unknown;

export type $OpenApiTs = {
    '/bootstrap': {
        get: {
            res: {
                /**
                 * Successful Response
                 */
                200: Bootstrap;
            };
        };
    };
    '/token': {
        post: {
            req: LoginForAccessTokenTokenPostData;
            res: {
                /**
                 * Successful Response
                 */
                200: Token;
                /**
                 * Validation Error
                 */
                422: HTTPValidationError;
            };
        };
    };
    '/upload/{type}/{field}/{id}': {
        post: {
            req: UploadUploadTypeFieldIdPostData;
            res: {
                /**
                 * Successful Response
                 */
                200: unknown;
                /**
                 * Validation Error
                 */
                422: HTTPValidationError;
            };
        };
    };
    '/makeAttachmentsTarFile': {
        get: {
            res: {
                /**
                 * Successful Response
                 */
                200: unknown;
            };
        };
    };
    '/logout': {
        get: {
            res: {
                /**
                 * Successful Response
                 */
                200: unknown;
            };
        };
    };
    '/trail': {
        get: {
            res: {
                /**
                 * Successful Response
                 */
                200: unknown;
            };
        };
    };
    '/trail/details': {
        get: {
            res: {
                /**
                 * Successful Response
                 */
                200: unknown;
            };
        };
    };
    '/tree-trail': {
        get: {
            res: {
                /**
                 * Successful Response
                 */
                200: Array<TreeTrail>;
            };
        };
    };
    '/tree': {
        get: {
            res: {
                /**
                 * Successful Response
                 */
                200: unknown;
            };
        };
        post: {
            req: AddTreeTreePostData;
            res: {
                /**
                 * Successful Response
                 */
                200: unknown;
                /**
                 * Validation Error
                 */
                422: HTTPValidationError;
            };
        };
    };
    '/poi': {
        get: {
            res: {
                /**
                 * Successful Response
                 */
                200: Array<POI>;
            };
        };
    };
    '/zone': {
        get: {
            res: {
                /**
                 * Successful Response
                 */
                200: Array<Zone>;
            };
        };
    };
    '/style': {
        get: {
            res: {
                /**
                 * Successful Response
                 */
                200: Array<MapStyle>;
            };
        };
    };
    '/trail/photo/{id}/{file_name}': {
        put: {
            req: UploadTrailPhotoTrailPhotoIdFileNamePutData;
            res: {
                /**
                 * Successful Response
                 */
                200: unknown;
                /**
                 * Validation Error
                 */
                422: HTTPValidationError;
            };
        };
    };
    '/tree/photo/{id}/{file_name}': {
        put: {
            req: UploadTreePhotoTreePhotoIdFileNamePutData;
            res: {
                /**
                 * Successful Response
                 */
                200: unknown;
                /**
                 * Validation Error
                 */
                422: HTTPValidationError;
            };
        };
    };
};