#ifndef MY_TYPE_H
#define MY_TYPE_H

#include "project_lib.h"
#include <string>

using namespace std;

typedef unsigned long max_num_T;

struct users_grups{
        string name;
        bool state;
        max_num_T size_data;
        max_num_T soft_limit_size;
        max_num_T severe_restriction_size;
        max_num_T postponement_size_brat;
        max_num_T hard_limit_activation_time_size;
        max_num_T file;
        max_num_T soft_file_limitation;
        max_num_T hard_file_restriction;
        max_num_T postponement_hard_file_restriction;
        max_num_T hard_limit_activation_time;
        };
struct Mount {
        std::string device;
        std::string destination;
        std::string fstype;
        std::string options;
        std::string dump;
        std::string pass;
};
struct partition_cmd {
        string device;
        string cmd;
};
struct struct_quotas {
        string device;
        string cmd;
        string type_quotas;
        string name;
};
struct status_quotas {
        bool user;
        bool group;
        bool project;
        bool status;
};
struct data_all_quotas {
        string username;
        string status;
        string block_used;
        string block_soft;
        string block_hard;  
        string block_grace;
        string file_used;
        string file_soft;
        string file_hard;
        string file_grace;
        bool is_validate;
};
struct tv_g_u_p {
        string name;
        string quotas;
        string size;
        string soft_limit_size;
        string hard_limit_size;
        string deferring_size;
        string files;
        string soft_limit_files;
        string hard_limit_delay;
        string deferring_files;
};

typedef struct users_grups USER_GRUPS;
typedef map <string, string> map_str_str;
typedef map <string, string>* map_s_s_ptr;
typedef std::map<std::string, Mount> map_str_device;
#endif