# 1. Goal The campsite "Lakeside" must store the bookings of its pitches in a database table. The reception desk, a nightly list and an OData service read this table, so the structure of the table must be fixed. # 2. Open questions None. # 3. Context - The campsite rents numbered pitches to guests. - A booking has a booking number. A booking number occurs only once. - The campsite runs in one client. The table is client-dependent. # 4. Contract - Create the transparent table {{P}}PITCH in package $TMP. - Fields: - client (abap.clnt): the client. Key field. - booking_id (abap.char(10)): the booking number. Key field. - pitch_no (abap.numc(4)): the number of the rented pitch. - guest_name (abap.char(30)): the name of the guest. - arrival_date (abap.dats): the first night of the stay. - departure_date (abap.dats): the day of departure. - persons (abap.int4): the number of persons. - power_hookup (abap.char(1)): 'X' when a power hookup is booked. - rate_per_night (abap.dec(9,2)): the price for one night. # 5. Business rules 1. One row of the table is one booking. The key of the table is client and booking_id. A booking number occurs only once. 2. booking_id has 10 characters. 3. pitch_no has 4 characters. The characters are digits. 4. guest_name has 30 characters. 5. arrival_date and departure_date are dates. arrival_date is the first night of the stay. departure_date is the day of departure. 6. persons is a whole number. 7. power_hookup has 1 character. The value is 'X' when the guest booked a power hookup. Otherwise the value is empty. 8. rate_per_night has 9 digits and 2 decimals. It is the price for one night. 9. The table has exactly these 9 fields. # 6. Constraints - Release target: SAP_BASIS 816 (ABAP Platform 2025). - Use Clean ABAP. - Out of scope: no other objects. # 7. Acceptance - The table {{P}}PITCH is active and has no syntax error. - The hidden tests pass. - Write ABAP Unit tests in a global test class. Use CL_OSQL_TEST_ENVIRONMENT for the database access.