[Pharo] Personal fitness tracker web app.
MFTDescriptorSystem draft.
src/MyFitnessTracker/MFTDescriptorSystem.class.st
@@ -0,0 +1,58 @@
1
Added:
Class {
2
Added:
#name : #MFTDescriptorSystem,
3
Added:
#superclass : #DescriptorSystem,
4
Added:
#category : #'MyFitnessTracker-Model'
5
Added:
}
6
Added:
7
Added:
{ #category : #accessing }
8
Added:
MFTDescriptorSystem >> allTableNames [
9
Added:
"Return a list of all the table names that this system uses."
10
Added:
11
Added:
^ #( 'Users' )
12
Added:
]
13
Added:
14
Added:
{ #category : #'class membership' }
15
Added:
MFTDescriptorSystem >> classModelForUser: aClassModel [
16
Added:
17
Added:
aClassModel newAttributeNamed: #id.
18
Added:
aClassModel newAttributeNamed: #username.
19
Added:
aClassModel newAttributeNamed: #passwordHash.
20
Added:
aClassModel newAttributeNamed: #dateOfBirth.
21
Added:
aClassModel newAttributeNamed: #realFirstName.
22
Added:
aClassModel newAttributeNamed: #realLastName
23
Added:
]
24
Added:
25
Added:
{ #category : #'as yet unclassified' }
26
Added:
MFTDescriptorSystem >> descriptorForUser: aDescriptor [
27
Added:
28
Added:
| table |
29
Added:
table := self tableNamed: 'User'.
30
Added:
aDescriptor table: table.
31
Added:
aDescriptor directMappingFor: #id.
32
Added:
(aDescriptor newMapping: DirectMapping)
33
Added:
from: #username
34
Added:
to: (table fieldNamed: 'username').
35
Added:
(aDescriptor newMapping: DirectMapping)
36
Added:
from: #passwordHash
37
Added:
to: (table fieldNamed: 'passwordHash').
38
Added:
(aDescriptor newMapping: DirectMapping)
39
Added:
from: #firstName
40
Added:
to: (table fieldNamed: 'firstName').
41
Added:
(aDescriptor newMapping: DirectMapping)
42
Added:
from: #lastName
43
Added:
to: (table fieldNamed: 'lastName').
44
Added:
(aDescriptor newMapping: DirectMapping)
45
Added:
from: #dateOfBirth
46
Added:
to: (table fieldNamed: 'dateOfBirth')
47
Added:
]
48
Added:
49
Added:
{ #category : #tables }
50
Added:
MFTDescriptorSystem >> tableForUser: aTable [
51
Added:
52
Added:
(aTable createFieldNamed: 'id' type: platform serial) bePrimaryKey.
53
Added:
aTable createFieldNamed: 'username' type: (platform varChar: 20).
54
Added:
aTable createFieldNamed: 'passwordHash' type: (platform varChar: 100).
55
Added:
aTable createFieldNamed: 'realFirstName' type: (platform varChar: 20).
56
Added:
aTable createFieldNamed: 'realLastName' type: (platform varChar: 20).
57
Added:
aTable createFieldNamed: 'dateOfBirth' type: platform date
58
Added:
]