#ifndef UBCONFIG_QUOTAS_H
#define UBCONFIG_QUOTAS_H

#include "../../my_type.h"
#include "../../project_lib.h"

class Ubconfig_quota
{
private:
    map_str_str* map_gui_cfg = NULL;
    map_str_str* map_global_cfg = NULL;
    map_str_str* map_system_cfg = NULL;
    vector<string>* vec_param_names = NULL;
    struct Size {
        int size_0;
        int size_1;
        int size_2;
        int size_3;
        int size_4;
        int size_5;
    };
    struct User {
        bool active;
        string device;
        vector<string> users;
        struct Size obj_size;
    };
    struct Group {
        bool active;
        string device;
        vector<string> groups;
        struct Size obj_size;
    };
    struct Prjquota {
        bool active;
        string device;
        vector<string> prjquota_name;
        struct Size obj_size;
    };
    struct Quotas  {
        struct User obj_user;
        struct Group obj_group;
        struct Prjquota obj_prjquota;
    };
public:
    Ubconfig_quota(/* args */);
    ~Ubconfig_quota();
    void set_map_gui(map_str_str* map_gui_cfg);
    void set_map_global(map_str_str* map_global_cfg);
    void set_map_local(map_str_str* map_system_cfg);
    void set_vec_key(vector<string>* vec_param_names);
    void remove_key_to_vec(string key);
    void add_key_to_vec(string key);
    void format_data();
    
};

#endif