1 /* 2 * Copyright 2019, Andrew Lindesay <apl@lindesay.co.nz>. 3 * 4 * All rights reserved. Distributed under the terms of the MIT License. 5 */ 6 #ifndef USER_DETAIL_H 7 #define USER_DETAIL_H 8 9 #include <stdio.h> 10 11 #include <Archivable.h> 12 #include <String.h> 13 14 #include "DateTime.h" 15 16 17 class UserUsageConditionsAgreement : public BArchivable { 18 public: 19 UserUsageConditionsAgreement(BMessage* from); 20 UserUsageConditionsAgreement(); 21 virtual ~UserUsageConditionsAgreement(); 22 23 const BString& Code() const; 24 const uint64 TimestampAgreed() const; 25 const bool IsLatest() const; 26 27 void SetCode(const BString& value); 28 void SetTimestampAgreed(uint64 value); 29 void SetIsLatest(const bool value); 30 31 UserUsageConditionsAgreement& 32 operator=( 33 const UserUsageConditionsAgreement& other); 34 35 status_t Archive(BMessage* into, bool deep = true) const; 36 private: 37 BString fCode; 38 uint64 fTimestampAgreed; 39 // milliseconds since epoc 40 bool fIsLatest; 41 }; 42 43 44 /*! This objects represents a user in the HaikuDepotServer system. 45 */ 46 47 class UserDetail : public BArchivable { 48 public: 49 UserDetail(BMessage* from); 50 UserDetail(); 51 virtual ~UserDetail(); 52 53 const BString& Nickname() const; 54 const UserUsageConditionsAgreement& 55 Agreement() const; 56 57 void SetNickname(const BString& value); 58 void SetAgreement( 59 const UserUsageConditionsAgreement& value); 60 61 UserDetail& operator=(const UserDetail& other); 62 63 status_t Archive(BMessage* into, bool deep = true) const; 64 private: 65 BString fNickname; 66 UserUsageConditionsAgreement 67 fAgreement; 68 }; 69 70 71 #endif // USER_DETAIL_H 72